create-quiver 0.15.0 → 0.15.2

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 (96) hide show
  1. package/.github/workflows/ci.yml +3 -0
  2. package/CHANGELOG.md +6 -0
  3. package/README.md +33 -0
  4. package/README_FOR_AI.md +13 -6
  5. package/ROADMAP.md +5 -0
  6. package/docs/AI_CONTEXT.md.template +4 -0
  7. package/docs/AI_ONBOARDING_PROMPT.md.template +8 -0
  8. package/docs/CLI_UX_GUIDE.md +31 -2
  9. package/docs/COMMANDS.md.template +16 -5
  10. package/docs/TROUBLESHOOTING.md +70 -0
  11. package/docs/TROUBLESHOOTING.md.template +20 -0
  12. package/docs/WORKFLOW.md.template +2 -2
  13. package/docs/getting-started/installation.md +86 -0
  14. package/docs/reference/commands.md +39 -5
  15. package/package.json +1 -1
  16. package/specs/quiver-v31-ai-model-catalog-agent-selection/EVIDENCE_REPORT.md +185 -0
  17. package/specs/quiver-v31-ai-model-catalog-agent-selection/EXECUTION_PLAN.md +85 -0
  18. package/specs/quiver-v31-ai-model-catalog-agent-selection/SPEC.md +337 -0
  19. package/specs/quiver-v31-ai-model-catalog-agent-selection/STATUS.md +30 -0
  20. package/specs/quiver-v31-ai-model-catalog-agent-selection/pr.md +98 -0
  21. package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-00-spec-foundation/CLOSURE_BRIEF.md +30 -0
  22. package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-00-spec-foundation/EXECUTION_BRIEF.md +51 -0
  23. package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-00-spec-foundation/slice.json +62 -0
  24. package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-01-model-catalog-alias-normalization/CLOSURE_BRIEF.md +32 -0
  25. package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-01-model-catalog-alias-normalization/EXECUTION_BRIEF.md +53 -0
  26. package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-01-model-catalog-alias-normalization/slice.json +72 -0
  27. package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-02-interactive-agent-set-selectors/CLOSURE_BRIEF.md +36 -0
  28. package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-02-interactive-agent-set-selectors/EXECUTION_BRIEF.md +56 -0
  29. package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-02-interactive-agent-set-selectors/slice.json +78 -0
  30. package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-03-agent-doctor-repair/CLOSURE_BRIEF.md +36 -0
  31. package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-03-agent-doctor-repair/EXECUTION_BRIEF.md +57 -0
  32. package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-03-agent-doctor-repair/slice.json +77 -0
  33. package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-04-shared-preflight-provider-errors/CLOSURE_BRIEF.md +35 -0
  34. package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-04-shared-preflight-provider-errors/EXECUTION_BRIEF.md +55 -0
  35. package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-04-shared-preflight-provider-errors/slice.json +84 -0
  36. package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-05-ai-models-list/CLOSURE_BRIEF.md +32 -0
  37. package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-05-ai-models-list/EXECUTION_BRIEF.md +52 -0
  38. package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-05-ai-models-list/slice.json +72 -0
  39. package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-06-docs-templates-alignment/CLOSURE_BRIEF.md +33 -0
  40. package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-06-docs-templates-alignment/EXECUTION_BRIEF.md +58 -0
  41. package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-06-docs-templates-alignment/slice.json +84 -0
  42. package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-07-tests-smokes-release-readiness/CLOSURE_BRIEF.md +32 -0
  43. package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-07-tests-smokes-release-readiness/EXECUTION_BRIEF.md +59 -0
  44. package/specs/quiver-v31-ai-model-catalog-agent-selection/slices/slice-07-tests-smokes-release-readiness/slice.json +94 -0
  45. package/specs/quiver-v32-npx-installation-guidance/EVIDENCE_REPORT.md +26 -0
  46. package/specs/quiver-v32-npx-installation-guidance/SPEC.md +55 -0
  47. package/specs/quiver-v32-npx-installation-guidance/STATUS.md +23 -0
  48. package/specs/quiver-v32-npx-installation-guidance/pr.md +72 -0
  49. package/specs/quiver-v32-npx-installation-guidance/slices/slice-00-installation-docs/CLOSURE_BRIEF.md +31 -0
  50. package/specs/quiver-v32-npx-installation-guidance/slices/slice-00-installation-docs/EXECUTION_BRIEF.md +56 -0
  51. package/specs/quiver-v32-npx-installation-guidance/slices/slice-00-installation-docs/slice.json +75 -0
  52. package/specs/quiver-v33-approval-ux-and-planner-progress/EVIDENCE_REPORT.md +93 -0
  53. package/specs/quiver-v33-approval-ux-and-planner-progress/EXECUTION_PLAN.md +83 -0
  54. package/specs/quiver-v33-approval-ux-and-planner-progress/SPEC.md +158 -0
  55. package/specs/quiver-v33-approval-ux-and-planner-progress/STATUS.md +31 -0
  56. package/specs/quiver-v33-approval-ux-and-planner-progress/pr.md +109 -0
  57. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-00-approval-ux-foundation/CLOSURE_BRIEF.md +30 -0
  58. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-00-approval-ux-foundation/EXECUTION_BRIEF.md +56 -0
  59. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-00-approval-ux-foundation/slice.json +65 -0
  60. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-01-approval-candidates-model/CLOSURE_BRIEF.md +19 -0
  61. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-01-approval-candidates-model/EXECUTION_BRIEF.md +51 -0
  62. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-01-approval-candidates-model/slice.json +74 -0
  63. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-02-approve-interactive-selection/CLOSURE_BRIEF.md +20 -0
  64. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-02-approve-interactive-selection/EXECUTION_BRIEF.md +53 -0
  65. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-02-approve-interactive-selection/slice.json +79 -0
  66. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-03-technical-plan-review-decision-data/CLOSURE_BRIEF.md +19 -0
  67. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-03-technical-plan-review-decision-data/EXECUTION_BRIEF.md +50 -0
  68. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-03-technical-plan-review-decision-data/slice.json +75 -0
  69. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-04-revise-input-guardrails/CLOSURE_BRIEF.md +19 -0
  70. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-04-revise-input-guardrails/EXECUTION_BRIEF.md +51 -0
  71. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-04-revise-input-guardrails/slice.json +73 -0
  72. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-05-provider-progress-alignment/CLOSURE_BRIEF.md +20 -0
  73. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-05-provider-progress-alignment/EXECUTION_BRIEF.md +51 -0
  74. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-05-provider-progress-alignment/slice.json +91 -0
  75. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-06-workflow-surface-integration/CLOSURE_BRIEF.md +20 -0
  76. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-06-workflow-surface-integration/EXECUTION_BRIEF.md +53 -0
  77. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-06-workflow-surface-integration/slice.json +87 -0
  78. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-07-docs-tests-release-readiness/CLOSURE_BRIEF.md +21 -0
  79. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-07-docs-tests-release-readiness/EXECUTION_BRIEF.md +55 -0
  80. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-07-docs-tests-release-readiness/slice.json +97 -0
  81. package/src/create-quiver/commands/ai.js +561 -46
  82. package/src/create-quiver/commands/flow.js +76 -14
  83. package/src/create-quiver/commands/spec.js +8 -1
  84. package/src/create-quiver/index.js +36 -12
  85. package/src/create-quiver/lib/agent-profiles.js +332 -4
  86. package/src/create-quiver/lib/ai/approval-candidates.js +86 -0
  87. package/src/create-quiver/lib/ai/execution-plan.js +7 -2
  88. package/src/create-quiver/lib/ai/executor.js +9 -2
  89. package/src/create-quiver/lib/ai/model-catalog.js +333 -0
  90. package/src/create-quiver/lib/ai/plan-review.js +77 -1
  91. package/src/create-quiver/lib/ai/providers.js +143 -4
  92. package/src/create-quiver/lib/ai/run-state.js +21 -4
  93. package/src/create-quiver/lib/approvals.js +103 -0
  94. package/src/create-quiver/lib/cli/selectors.js +53 -0
  95. package/src/create-quiver/lib/git.js +13 -4
  96. package/src/create-quiver/lib/paths.js +45 -3
@@ -0,0 +1,72 @@
1
+ ## Title
2
+
3
+ Quiver v32: clarify npx vs local installation
4
+
5
+ ## Summary
6
+
7
+ - Explains why `npx --yes create-quiver@latest` does not install Quiver into project `node_modules`.
8
+ - Adds a dedicated installation guide for `npx` vs local `devDependency` usage.
9
+ - Adds troubleshooting guidance for users who expect Quiver in `node_modules`.
10
+ - Aligns generated docs templates and `README_FOR_AI.md`.
11
+
12
+ ## Scope
13
+
14
+ - Public README guidance.
15
+ - Installation guide under `docs/getting-started/`.
16
+ - Troubleshooting entry.
17
+ - Command reference and generated docs template notes.
18
+ - Documentation-only WDD/SDD traceability.
19
+
20
+ ## Files
21
+
22
+ - `README.md`
23
+ - `README_FOR_AI.md`
24
+ - `docs/getting-started/installation.md`
25
+ - `docs/reference/commands.md`
26
+ - `docs/TROUBLESHOOTING.md`
27
+ - `docs/TROUBLESHOOTING.md.template`
28
+ - `docs/COMMANDS.md.template`
29
+ - `specs/quiver-v32-npx-installation-guidance/**`
30
+
31
+ ## How to Test (DETAILED - REQUIRED)
32
+
33
+ ### Required Environment
34
+
35
+ - Node.js and npm.
36
+ - Local Quiver source checkout.
37
+
38
+ ### Worktree Access
39
+
40
+ - Use a dedicated docs branch for this PR.
41
+ - No product-code changes are expected.
42
+
43
+ ### Run the Project
44
+
45
+ This is a documentation-only change. No app runtime is needed.
46
+
47
+ ### Use Cases
48
+
49
+ - Read the README and confirm it explains why `npx` does not populate `node_modules`.
50
+ - Read `docs/getting-started/installation.md` and confirm it explains when to use `npx` and when to install `create-quiver` as a `devDependency`.
51
+ - Read `docs/TROUBLESHOOTING.md` and confirm it covers the `node_modules` confusion.
52
+ - Inspect templates to confirm generated projects inherit the same explanation.
53
+
54
+ ### Technical Verification
55
+
56
+ - `git diff --check`
57
+ - `node bin/create-quiver.js spec validate specs/quiver-v32-npx-installation-guidance`
58
+
59
+ ## Evidence
60
+
61
+ - Documentation updated in public, reference, troubleshooting, template, and AI source-of-truth surfaces.
62
+ - `git diff --check` passed.
63
+ - `node bin/create-quiver.js spec validate specs/quiver-v32-npx-installation-guidance` passed.
64
+
65
+ ## Rollback
66
+
67
+ Revert this documentation slice commit. No runtime behavior or package installation behavior changed.
68
+
69
+ ## Risks / Notes
70
+
71
+ - This PR does not change how `init` or `migrate` may install local dev dependencies.
72
+ - The guidance intentionally keeps `npx --yes create-quiver@latest` as the recommended bootstrap path.
@@ -0,0 +1,31 @@
1
+ # Closure Brief - slice-00-installation-docs
2
+
3
+ ## Resumen de lo realizado
4
+
5
+ Se agregó documentación para explicar que `npx --yes create-quiver@latest` ejecuta Quiver desde la caché de npm y no instala el paquete dentro de `node_modules`. También se documentó cuándo conviene instalar `create-quiver` como `devDependency`.
6
+
7
+ ## Validación contra criterios de aceptación
8
+
9
+ - README incluye explicación breve y link a la guía.
10
+ - `docs/getting-started/installation.md` explica `npx`, caché de npm, `node_modules` y `devDependency`.
11
+ - `docs/TROUBLESHOOTING.md` cubre la confusión de `node_modules`.
12
+ - Templates generados fueron alineados.
13
+ - `README_FOR_AI.md` fue actualizado como fuente de verdad.
14
+
15
+ ## Cambios relevantes
16
+
17
+ - Public documentation now covers `npx` vs local install.
18
+ - Generated project templates inherit the key guidance.
19
+ - Spec package and PR body were created for traceability.
20
+
21
+ ## Pendientes
22
+
23
+ - Abrir el PR.
24
+
25
+ ## Riesgos remanentes
26
+
27
+ - Ninguno crítico. Esta spec no cambia comportamiento de producto.
28
+
29
+ ## Recomendaciones futuras
30
+
31
+ - Consider adding `npx` cache behavior to `create-quiver --help` only if more users hit the same confusion.
@@ -0,0 +1,56 @@
1
+ # Execution Brief - slice-00-installation-docs
2
+
3
+ ## Context
4
+
5
+ Users can run Quiver with `npx --yes create-quiver@latest` and expect the package to appear in project `node_modules`. The expected npm behavior is that `npx` runs the CLI from npm's execution cache unless the package is explicitly installed locally.
6
+
7
+ ## Objective
8
+
9
+ Document the `npx` vs local installation behavior clearly across public docs, troubleshooting, templates, and AI source-of-truth guidance.
10
+
11
+ ## Scope
12
+
13
+ - Root README summary.
14
+ - Dedicated installation guide.
15
+ - Troubleshooting entry.
16
+ - Command reference note.
17
+ - Generated docs template note.
18
+ - `README_FOR_AI.md` synchronization.
19
+
20
+ ## Criterios de aceptación
21
+
22
+ - README includes a concise explanation of why Quiver may not appear in `node_modules`.
23
+ - Installation guide explains `npx`, npm cache execution, and `devDependency` installation.
24
+ - Troubleshooting covers the user confusion as a recoverable expected behavior.
25
+ - Templates include the same guidance for generated projects.
26
+ - No product code is modified.
27
+
28
+ ## Plan técnico resumido
29
+
30
+ 1. Add the public README section and link.
31
+ 2. Add `docs/getting-started/installation.md`.
32
+ 3. Add `docs/TROUBLESHOOTING.md`.
33
+ 4. Update generated troubleshooting and command templates.
34
+ 5. Update `README_FOR_AI.md`.
35
+ 6. Validate docs and spec package.
36
+
37
+ ## Restricciones
38
+
39
+ - Do not recommend global installation.
40
+ - Do not change runtime behavior.
41
+ - Do not change npm package metadata.
42
+
43
+ ## Riesgos
44
+
45
+ - Duplicating too much setup guidance in the root README.
46
+ - Confusing `npx create-quiver` local resolution with `npx --yes create-quiver@latest` latest resolution.
47
+
48
+ ## Checklist de finalización
49
+
50
+ - [x] README updated.
51
+ - [x] Installation guide added.
52
+ - [x] Troubleshooting added.
53
+ - [x] Templates updated.
54
+ - [x] `README_FOR_AI.md` updated.
55
+ - [x] Validation commands run.
56
+ - [ ] PR opened.
@@ -0,0 +1,75 @@
1
+ {
2
+ "slice_id": "slice-00-installation-docs",
3
+ "ticket": "QUIVER-32-00",
4
+ "type": "documentation",
5
+ "title": "npx and node_modules installation guidance",
6
+ "objective": "Document why Quiver does not appear in project node_modules when executed with npx, and when local devDependency installation is appropriate.",
7
+ "description": "Adds public README guidance, a dedicated installation guide, troubleshooting coverage, generated docs template notes, and AI source-of-truth synchronization.",
8
+ "git": {
9
+ "branch_type": "feature",
10
+ "base_branch": "main",
11
+ "branch_slug": "v32-npx-installation-guidance",
12
+ "branch_name": "docs/npx-node-modules-guidance"
13
+ },
14
+ "files": [
15
+ "README.md",
16
+ "README_FOR_AI.md",
17
+ "docs/getting-started/installation.md",
18
+ "docs/reference/commands.md",
19
+ "docs/TROUBLESHOOTING.md",
20
+ "docs/TROUBLESHOOTING.md.template",
21
+ "docs/COMMANDS.md.template"
22
+ ],
23
+ "expected_read_paths": [
24
+ "README_FOR_AI.md",
25
+ "README.md",
26
+ "docs/reference/commands.md",
27
+ "docs/TROUBLESHOOTING.md.template",
28
+ "docs/COMMANDS.md.template"
29
+ ],
30
+ "allowed_write_paths": [
31
+ "README.md",
32
+ "README_FOR_AI.md",
33
+ "docs/getting-started/installation.md",
34
+ "docs/reference/commands.md",
35
+ "docs/TROUBLESHOOTING.md",
36
+ "docs/TROUBLESHOOTING.md.template",
37
+ "docs/COMMANDS.md.template",
38
+ "specs/quiver-v32-npx-installation-guidance/**"
39
+ ],
40
+ "depends_on": [],
41
+ "parallel_safe": "yes",
42
+ "parallel_safe_reason": "This is the only documentation slice in the spec.",
43
+ "must": [
44
+ "Explain that npx executes Quiver from npm's execution cache.",
45
+ "Explain why node_modules is not populated by npx usage.",
46
+ "Explain when to install create-quiver as a devDependency.",
47
+ "Keep README_FOR_AI synchronized.",
48
+ "Avoid claiming runtime behavior changes."
49
+ ],
50
+ "not_included": [
51
+ "Product code changes.",
52
+ "Package publishing.",
53
+ "Global install guidance."
54
+ ],
55
+ "acceptance": [
56
+ "README includes concise npx vs local install guidance.",
57
+ "A dedicated installation guide explains node_modules expectations.",
58
+ "Troubleshooting covers the missing node_modules symptom.",
59
+ "Generated docs templates include the same contract.",
60
+ "README_FOR_AI contains the source-of-truth explanation."
61
+ ],
62
+ "tests": [
63
+ "git diff --check",
64
+ "node bin/create-quiver.js spec validate specs/quiver-v32-npx-installation-guidance"
65
+ ],
66
+ "validation_hints": [
67
+ "Keep the docs concise and avoid duplicating long workflows in the root README.",
68
+ "Do not recommend global installation."
69
+ ],
70
+ "estimated_hours": 1,
71
+ "status": "completed",
72
+ "blocked_reason": null,
73
+ "actual_hours": 1,
74
+ "completed_at": "2026-05-27"
75
+ }
@@ -0,0 +1,93 @@
1
+ # Evidence Report - Quiver v33 Approval UX and Planner Progress
2
+
3
+ ## Summary
4
+
5
+ This report records implementation and validation evidence for all v33 slices.
6
+
7
+ ## slice-00 - Approval UX foundation
8
+
9
+ ### Completed
10
+
11
+ - Created v33 spec package with `SPEC.md`, `STATUS.md`, `EXECUTION_PLAN.md`, `EVIDENCE_REPORT.md`, and `pr.md`.
12
+ - Created 8 slice folders with `slice.json`, `EXECUTION_BRIEF.md`, and `CLOSURE_BRIEF.md`.
13
+ - Captured the approved acceptance criteria, production review fixes, revised technical plan, and execution order.
14
+
15
+ ### Validation
16
+
17
+ - `find specs/quiver-v33-approval-ux-and-planner-progress -name 'slice.json' -print -exec node -e "JSON.parse(require('fs').readFileSync(process.argv[1], 'utf8')); console.log('ok', process.argv[1])" {} \;` passed for 8 slice files.
18
+ - `node bin/create-quiver.js spec validate specs/quiver-v33-approval-ux-and-planner-progress` passed and reported 8 slices.
19
+ - `git diff --check` passed.
20
+
21
+ ### Risks Observed During Planning
22
+
23
+ - `docs/INDEX.md` is still missing in this repository; onboarding used `docs/INDEX.md.template` plus repo-specific Quiver docs as the documented fallback.
24
+ - The repo branch was already ahead of `origin/main` before this spec package was created.
25
+
26
+ ## slice-01 to slice-03 - Approval candidates and approval selection
27
+
28
+ ### Completed
29
+
30
+ - Slice ids covered: `slice-01-approval-candidates-model`, `slice-02-approve-interactive-selection`, `slice-03-technical-plan-review-decision-data`.
31
+ - Added redacted/truncated approval-candidate data for planner phases.
32
+ - Added technical-plan candidate enrichment with plan-review recommendation, blocking, fixes, hardening, risks, and next command.
33
+ - Added TTY selector flow for `ai approve --phase acceptance|technical-plan` when `--version` is omitted.
34
+ - Preserved explicit `--version <n>` behavior for no-TTY/CI/scripted usage.
35
+
36
+ ### Validation
37
+
38
+ - `node --test tests/lib/approvals.test.js tests/commands/ai-review-plan.test.js` passed during slice execution.
39
+ - `node --test tests/commands/ai-plan.test.js tests/commands/ai-review-plan.test.js tests/lib/approvals.test.js` passed after interactive approval integration.
40
+
41
+ ## slice-04 and slice-05 - Revise guardrails and provider progress
42
+
43
+ ### Completed
44
+
45
+ - Slice ids covered: `slice-04-revise-input-guardrails`, `slice-05-provider-progress-alignment`.
46
+ - Hardened parser/command errors for `ai revise --phase acceptance --input` and `ai revise --phase technical-plan --input`.
47
+ - Added coverage for nonexistent feedback files and accidental trailing positional arguments.
48
+ - Added TTY progress checks and spinner coverage for `ai plan`, `ai review-plan`, and `ai repair-plan`; `ai revise` inherits the shared plan path.
49
+ - Confirmed dry-run and print-prompt remain loader-free.
50
+
51
+ ### Validation
52
+
53
+ - `node --test tests/commands/ai-plan.test.js tests/commands/ai-review-plan.test.js tests/lib/approvals.test.js` passed with 51 tests.
54
+ - Focused progress regressions for `ai prepare-context`, executor, PR, selectors, and UX helpers passed.
55
+
56
+ ## slice-06 - Workflow surface integration
57
+
58
+ ### Completed
59
+
60
+ - Slice id covered: `slice-06-workflow-surface-integration`.
61
+ - Added `src/create-quiver/lib/ai/approval-candidates.js` as the shared formatter/command helper for decision surfaces.
62
+ - Updated `ai approvals`, `flow`, `ai status`, `ai resume`, and `spec create --interactive` to consume shared candidate data.
63
+ - Added drift-prevention tests for current recommended versions and plan-review `revise` blockers.
64
+
65
+ ### Validation
66
+
67
+ - `node --test tests/commands/flow.test.js tests/commands/ai-run-state.test.js tests/commands/spec-create.test.js tests/commands/ai-review-plan.test.js tests/commands/ai-plan.test.js tests/lib/approvals.test.js` passed with 80 tests.
68
+
69
+ ## slice-07 - Docs, tests, and release readiness
70
+
71
+ ### Completed
72
+
73
+ - Slice id covered: `slice-07-docs-tests-release-readiness`.
74
+ - Updated `README.md`, `README_FOR_AI.md`, `docs/CLI_UX_GUIDE.md`, `docs/reference/commands.md`, `docs/COMMANDS.md.template`, and `docs/WORKFLOW.md.template`.
75
+ - Updated all slice `CLOSURE_BRIEF.md` files, slice status metadata, spec `STATUS.md`, and `pr.md`.
76
+
77
+ ### Validation
78
+
79
+ - `git diff --check` passed.
80
+ - `node bin/create-quiver.js spec validate specs/quiver-v33-approval-ux-and-planner-progress` passed.
81
+ - `node --test tests/lib/git.test.js tests/lib/paths.test.js` passed: 12 tests.
82
+ - `node --test tests/lib/paths.test.js` passed: 10 tests.
83
+ - `node --test tests/**/*.test.js` passed: 496 tests, 496 pass.
84
+ - `npm run smoke:create-quiver` passed: `create-quiver smoke test passed`.
85
+ - `npm run smoke:doctor-fixtures` passed: 13 states.
86
+ - `npm run smoke:guided-workflow` passed.
87
+ - `npm run package:quiver` passed: `Package smoke passed: create-quiver-0.15.1.tgz`.
88
+ - `node scripts/ci/smoke-cross-platform.js` passed after adding `npm ci` to the GitHub Actions cross-platform smoke job.
89
+
90
+ ### Remaining Risks
91
+
92
+ - No critical risks remain.
93
+ - This evidence does not claim npm publication.
@@ -0,0 +1,83 @@
1
+ # Execution Plan - Quiver v33 Approval UX and Planner Progress
2
+
3
+ ## Execution Order
4
+
5
+ ```mermaid
6
+ flowchart TD
7
+ S00[slice-00: Approval UX foundation]
8
+ S01[slice-01: Approval candidates model]
9
+ S02[slice-02: Interactive approval selection]
10
+ S03[slice-03: Technical-plan review decision data]
11
+ S04[slice-04: Revise input guardrails]
12
+ S05[slice-05: Provider progress alignment]
13
+ S06[slice-06: Workflow surface integration]
14
+ S07[slice-07: Docs, tests, and release readiness]
15
+
16
+ S00 --> S01
17
+ S01 --> S02
18
+ S01 --> S04
19
+ S01 --> S05
20
+ S02 --> S03
21
+ S01 --> S06
22
+ S02 --> S06
23
+ S03 --> S06
24
+ S02 --> S07
25
+ S03 --> S07
26
+ S04 --> S07
27
+ S05 --> S07
28
+ S06 --> S07
29
+ ```
30
+
31
+ ## Waves
32
+
33
+ ### Wave 0 - Completed Foundation
34
+
35
+ 1. `slice-00-approval-ux-foundation`
36
+
37
+ The foundation slice creates the approved spec package and does not change product code.
38
+
39
+ ### Wave 1 - Core Model
40
+
41
+ 1. `slice-01-approval-candidates-model`
42
+
43
+ Build the shared approval-candidate model before changing command UX.
44
+
45
+ ### Wave 2 - Command UX and Guardrails
46
+
47
+ 1. `slice-02-approve-interactive-selection`
48
+ 2. `slice-04-revise-input-guardrails`
49
+ 3. `slice-05-provider-progress-alignment`
50
+
51
+ These slices can proceed after slice-01. Coordinate conflicts in `src/create-quiver/commands/ai.js`.
52
+
53
+ ### Wave 3 - Technical Review and Workflow Surfaces
54
+
55
+ 1. `slice-03-technical-plan-review-decision-data`
56
+ 2. `slice-06-workflow-surface-integration`
57
+
58
+ Run slice-03 before or alongside slice-06 only if the plan-review decision contract is stable enough to consume.
59
+
60
+ ### Wave 4 - Close
61
+
62
+ 1. `slice-07-docs-tests-release-readiness`
63
+
64
+ This slice is never parallel-safe because it closes docs, tests, smokes, and release evidence.
65
+
66
+ ## Parallel Safety Notes
67
+
68
+ - Do not run any implementation slice before slice-01.
69
+ - Do not add `ai approve` prompts before the shared candidate model exists.
70
+ - Do not weaken `plan-review` blocking behavior while adding selectors.
71
+ - `slice-02`, `slice-04`, and `slice-05` may all touch `src/create-quiver/commands/ai.js`; if conflicts are likely, land them sequentially.
72
+ - Keep all JSON/no-TTY behavior clean at every slice, not only at the final slice.
73
+
74
+ ## Recommended Commit Order
75
+
76
+ 1. `docs: add v33 approval ux spec`
77
+ 2. `feat: add approval candidate model`
78
+ 3. `feat: add interactive approval selection`
79
+ 4. `feat: expose technical plan review decision data`
80
+ 5. `fix: harden ai revise input handling`
81
+ 6. `feat: align planner progress flows`
82
+ 7. `feat: share approval guidance across workflow surfaces`
83
+ 8. `docs: close v33 approval ux readiness`
@@ -0,0 +1,158 @@
1
+ # Quiver v33 - Approval UX and Planner Progress
2
+
3
+ **Date:** 2026-05-28
4
+ **Status:** Completed
5
+ **Source:** User-approved acceptance criteria and production review for approval selectors, planner progress, and consistent decision guidance.
6
+
7
+ Slice numbering resets here. This spec intentionally starts at `slice-00`.
8
+
9
+ ## Problem
10
+
11
+ Quiver already has visible progress and guided selectors in several AI workflow commands, but the experience is incomplete around planner approvals and technical-plan iteration.
12
+
13
+ Three gaps create partial-fix risk:
14
+
15
+ - planner/reviewer commands can still feel inconsistent with `ai prepare-context --with-planner`;
16
+ - `ai approve --phase acceptance|technical-plan` requires users to know the exact draft version instead of guiding them with the same kind of selector used by `ai agent set`;
17
+ - approval recommendations are spread across `ai approve`, `ai approvals`, `flow`, `ai status`, `ai resume`, `spec create --interactive`, and `plan-review` logic, which can produce conflicting or incomplete next-step guidance.
18
+
19
+ ## Objective
20
+
21
+ Make planner approval and revision flows production-safe and consistent:
22
+
23
+ - show real human progress for provider-backed planner/reviewer commands;
24
+ - offer TTY selectors for approval versions when `--version` is omitted;
25
+ - keep CI/no-TTY/JSON/scripted usage clean and explicit;
26
+ - centralize approval candidates and recommendations so every workflow surface presents the same decision state;
27
+ - harden incomplete `ai revise --input` usage for both acceptance and technical-plan phases;
28
+ - keep `plan-review` blocking semantics strict and visible.
29
+
30
+ ## Scope
31
+
32
+ ### Included
33
+
34
+ - Shared approval-candidate model for acceptance, technical-plan, and plan-review decision context.
35
+ - `ai approve --phase acceptance` selector when `--version` is omitted in TTY.
36
+ - `ai approve --phase technical-plan` selector that includes plan-review recommendation, blocking status, required fixes, optional hardening, risks, and next command.
37
+ - No-TTY/CI guardrails for `ai approve` without `--version`.
38
+ - Missing/incomplete `--input` handling for `ai revise --phase acceptance` and `ai revise --phase technical-plan`.
39
+ - Progress/loaders alignment for provider-backed planner commands: `ai plan`, `ai revise`, `ai review-plan`, and `ai repair-plan`.
40
+ - Audit and regression coverage for existing long-running flows: `ai onboard`, `ai prepare-context --with-planner`, `ai execute-slice`, `ai execute-plan --execute`, and `ai pr --create`.
41
+ - Integration of the shared approval-candidate model into `ai approvals`, `flow`, `ai status`, `ai resume`, and `spec create --interactive`.
42
+ - Documentation and tests for human, TTY, no-TTY, CI, JSON, dry-run, print-prompt, no-color, and review-state cases.
43
+
44
+ ### Excluded
45
+
46
+ - Product feature implementation beyond CLI workflow UX and approval state.
47
+ - Replacing the CLI parser.
48
+ - Adding a TUI framework.
49
+ - Making prompts mandatory.
50
+ - Relaxing `plan-review` approval gates.
51
+ - Storing provider credentials or secrets.
52
+ - Changing WDD + SDD semantics.
53
+
54
+ ## Approved Acceptance Criteria
55
+
56
+ ### Provider Progress
57
+
58
+ 1. `ai plan --phase acceptance --input <file>` shows human progress and a spinner when executing the planner in a human TTY, following the pattern of `ai prepare-context --with-planner`.
59
+ 2. `ai plan --phase technical-plan` shows the same progress pattern when executing the planner.
60
+ 3. `ai revise --phase acceptance --input <file>` and `ai revise --phase technical-plan --input <file>` inherit the same progress behavior through the shared planner path.
61
+ 4. `ai review-plan` shows progress for reading the technical plan, preparing context, preparing the prompt, executing the reviewer, and writing review metadata.
62
+ 5. `ai repair-plan` is in scope and shows the same provider-progress standard.
63
+ 6. Existing long-running flows are audited for consistency: `ai onboard`, `ai prepare-context --with-planner`, `ai execute-slice`, `ai execute-plan --execute`, and `ai pr --create`.
64
+ 7. `--dry-run` and `--print-prompt` never execute providers or show fake loaders.
65
+ 8. `--json`, CI/no-TTY, `NO_COLOR`, `TERM=dumb`, and `--no-color` remain clean and script-safe.
66
+
67
+ ### Approval Selection
68
+
69
+ 9. `ai approve --phase acceptance` without `--version` opens a TTY selector when prompts are available.
70
+ 10. `ai approve --phase technical-plan` without `--version` opens a TTY selector when prompts are available and includes plan-review decision data.
71
+ 11. In no-TTY/CI, `ai approve --phase <phase>` without `--version` fails early with an actionable command using `--version <n>`.
72
+ 12. Explicit `--version <n>` preserves existing script-safe behavior.
73
+ 13. Only the latest draft version is approvable. Older versions may be displayed as history but must not be silently approved.
74
+ 14. The selector recommends the current/latest eligible draft and explains why.
75
+ 15. Technical-plan approval distinguishes `plan-review` states: `missing`, `stale`, `unapproved`, `reviewed + approve`, `reviewed + approve-with-risk`, and `reviewed + revise`.
76
+ 16. `reviewed + revise` blocks approval and points to `ai revise --phase technical-plan --input <feedback.md> --dry-run`.
77
+ 17. `reviewed + approve-with-risk` allows explicit approval while showing risks and optional hardening.
78
+ 18. Candidate summaries must be concise, truncated, and redacted through existing utilities before printing draft or review snippets.
79
+
80
+ ### Revise Input Guardrails
81
+
82
+ 19. `ai revise --phase acceptance --input` and `ai revise --phase technical-plan --input` handle a missing input value explicitly.
83
+ 20. Missing input in no-TTY/CI fails with an actionable example.
84
+ 21. Missing input in TTY may show a selector or focused guidance if useful artifacts are available.
85
+ 22. Nonexistent input files fail before provider execution.
86
+ 23. Accidental extra arguments, such as a trailing `s`, are detected or reported clearly instead of being ignored.
87
+
88
+ ### Shared Decision Surfaces
89
+
90
+ 24. A shared approval-candidate model feeds `ai approve`, `ai approvals`, `flow`, `ai status`, `ai resume`, and `spec create --interactive`.
91
+ 25. These surfaces do not duplicate or contradict next-step recommendations.
92
+ 26. `spec create --interactive` shows the reviewed and approved technical-plan source using the same decision data.
93
+ 27. Approval candidates include phase, version, path, created_at, source_file, current/latest flag, review recommendation, blocking state, recommended action, and next command.
94
+
95
+ ### Documentation and Tests
96
+
97
+ 28. `docs/CLI_UX_GUIDE.md`, `docs/reference/commands.md`, and `README_FOR_AI.md` are updated when the visible contract changes.
98
+ 29. Tests cover TTY selector paths, no-TTY/CI failures, explicit `--version`, latest-draft recommendation, stale/blocked plan-review states, `approve-with-risk`, missing `--input`, accidental extra args, dry-run, print-prompt, no-color, and JSON cleanliness.
99
+ 30. Implementation does not log secrets or credentials.
100
+ 31. Every slice in this spec has `slice.json`, `EXECUTION_BRIEF.md`, and `CLOSURE_BRIEF.md`.
101
+
102
+ ## Approved Technical Plan
103
+
104
+ 1. Inventory the real command surface and existing tests before implementation.
105
+ 2. Create a shared approval-candidates module that reads existing approval and plan-review metadata without changing persisted formats unless required.
106
+ 3. Integrate approval candidates into `ai approvals`, `flow`, `ai status`, `ai resume`, and `spec create --interactive`.
107
+ 4. Add TTY approval selection in `ai approve` for acceptance and technical-plan when `--version` is omitted.
108
+ 5. Preserve no-TTY/CI/script behavior by requiring explicit `--version <n>` outside prompts.
109
+ 6. Harden missing/incomplete `--input` handling in `ai revise` for both planner phases.
110
+ 7. Align provider progress in `ai plan`, `ai revise`, `ai review-plan`, and `ai repair-plan`.
111
+ 8. Audit existing progress flows and add regression tests instead of rewriting working behavior unnecessarily.
112
+ 9. Update public docs and AI guidance only after the command contract is implemented.
113
+ 10. Add focused tests and final full-suite/smoke validation.
114
+
115
+ ## Slice Roadmap
116
+
117
+ | Slice | Title | Status | Dependencies |
118
+ |---|---|---|---|
119
+ | slice-00 | Approval UX foundation | completed | none |
120
+ | slice-01 | Approval candidates model | completed | slice-00 |
121
+ | slice-02 | Interactive approval selection | completed | slice-01 |
122
+ | slice-03 | Technical-plan review decision data | completed | slice-01, slice-02 |
123
+ | slice-04 | Revise input guardrails | completed | slice-01 |
124
+ | slice-05 | Provider progress alignment | completed | slice-01 |
125
+ | slice-06 | Workflow surface integration | completed | slice-01, slice-02, slice-03 |
126
+ | slice-07 | Docs, tests, and release readiness | completed | slice-02, slice-03, slice-04, slice-05, slice-06 |
127
+
128
+ ## Validation Strategy
129
+
130
+ - `node --test tests/lib/approvals.test.js tests/commands/ai-run-state.test.js tests/commands/ai-review-plan.test.js`
131
+ - `node --test tests/commands/ai-plan.test.js tests/commands/ai-prepare-context-planner.test.js`
132
+ - `node --test tests/commands/ai-agent.test.js tests/lib/cli-selectors.test.js tests/lib/cli-ux.test.js`
133
+ - `node --test tests/commands/flow.test.js tests/commands/spec-create.test.js`
134
+ - `node --test tests/**/*.test.js`
135
+ - `npm run smoke:create-quiver`
136
+ - `npm run smoke:doctor-fixtures`
137
+ - `npm run smoke:guided-workflow`
138
+ - `npm run package:quiver`
139
+ - `git diff --check`
140
+ - `node bin/create-quiver.js spec validate specs/quiver-v33-approval-ux-and-planner-progress`
141
+
142
+ ## Risks
143
+
144
+ - Approval UX touches critical workflow gates; selector convenience must not weaken plan-review blocking behavior.
145
+ - Prompt behavior can break automation if it is not strictly TTY-gated.
146
+ - Multiple surfaces can drift if candidate data is not shared.
147
+ - Progress output can contaminate JSON or no-TTY output if not centralized.
148
+ - Draft snippets can leak sensitive content unless they are truncated and redacted.
149
+
150
+ ## Resolved Decisions
151
+
152
+ - `ai repair-plan` is in scope.
153
+ - `ai revise --phase acceptance --input` is in scope, not only technical-plan.
154
+ - TTY selection for `ai approve` may happen when `--version` is omitted, but CI/no-TTY must require explicit flags.
155
+ - Only the latest draft is approvable.
156
+ - `plan-review` recommendation `revise` remains blocking.
157
+ - `approve-with-risk` remains approvable with visible risk context.
158
+ - Do not add `--review` to commands that do not need editor review.
@@ -0,0 +1,31 @@
1
+ # Status - Quiver v33 Approval UX and Planner Progress
2
+
3
+ **Overall status:** Completed
4
+ **Created:** 2026-05-28
5
+ **Completed:** 2026-05-28
6
+ **Current slice:** none
7
+
8
+ ## Summary
9
+
10
+ This spec improves planner approval UX, approval decision guidance, incomplete revise input handling, and provider progress consistency across the AI workflow. All planned slices are complete and validated.
11
+
12
+ ## Slice Status
13
+
14
+ | Slice | Status | Notes |
15
+ |---|---|---|
16
+ | slice-00-approval-ux-foundation | Completed | Spec package, execution plan, PR body, evidence skeleton, and slice briefs created. |
17
+ | slice-01-approval-candidates-model | Completed | Added shared approval-candidate data for acceptance and technical-plan review context. |
18
+ | slice-02-approve-interactive-selection | Completed | Added TTY draft selection for `ai approve` when `--version` is omitted and no-TTY guardrails. |
19
+ | slice-03-technical-plan-review-decision-data | Completed | Technical-plan candidates expose review recommendation, blocking, fixes, hardening, risks, and next command. |
20
+ | slice-04-revise-input-guardrails | Completed | Missing `--input`, nonexistent files, and accidental extra args fail before provider execution. |
21
+ | slice-05-provider-progress-alignment | Completed | `ai plan`, `ai revise`, `ai review-plan`, and `ai repair-plan` use real TTY progress and spinner behavior. |
22
+ | slice-06-workflow-surface-integration | Completed | Shared candidates feed `ai approvals`, `flow`, `ai status`, `ai resume`, and `spec create --interactive`. |
23
+ | slice-07-docs-tests-release-readiness | Completed | Docs, templates, tests, smokes, package readiness, evidence, and PR body are updated. |
24
+
25
+ ## Current Blockers
26
+
27
+ - None.
28
+
29
+ ## Next Step
30
+
31
+ Open review/PR with the recorded validation evidence. Do not claim npm publication from this spec.