create-quiver 0.15.1 → 0.15.3

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 (136) hide show
  1. package/.github/workflows/ci.yml +3 -0
  2. package/README.md +3 -0
  3. package/README_FOR_AI.md +11 -7
  4. package/docs/CLI_UX_GUIDE.md +16 -2
  5. package/docs/COMMANDS.md.template +16 -4
  6. package/docs/INDEX.md +87 -0
  7. package/docs/WORKFLOW.md.template +4 -4
  8. package/docs/reference/commands.md +23 -5
  9. package/package.json +3 -1
  10. package/specs/quiver-v33-approval-ux-and-planner-progress/EVIDENCE_REPORT.md +93 -0
  11. package/specs/quiver-v33-approval-ux-and-planner-progress/EXECUTION_PLAN.md +83 -0
  12. package/specs/quiver-v33-approval-ux-and-planner-progress/SPEC.md +158 -0
  13. package/specs/quiver-v33-approval-ux-and-planner-progress/STATUS.md +31 -0
  14. package/specs/quiver-v33-approval-ux-and-planner-progress/pr.md +109 -0
  15. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-00-approval-ux-foundation/CLOSURE_BRIEF.md +30 -0
  16. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-00-approval-ux-foundation/EXECUTION_BRIEF.md +56 -0
  17. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-00-approval-ux-foundation/slice.json +65 -0
  18. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-01-approval-candidates-model/CLOSURE_BRIEF.md +19 -0
  19. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-01-approval-candidates-model/EXECUTION_BRIEF.md +51 -0
  20. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-01-approval-candidates-model/slice.json +74 -0
  21. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-02-approve-interactive-selection/CLOSURE_BRIEF.md +20 -0
  22. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-02-approve-interactive-selection/EXECUTION_BRIEF.md +53 -0
  23. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-02-approve-interactive-selection/slice.json +79 -0
  24. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-03-technical-plan-review-decision-data/CLOSURE_BRIEF.md +19 -0
  25. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-03-technical-plan-review-decision-data/EXECUTION_BRIEF.md +50 -0
  26. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-03-technical-plan-review-decision-data/slice.json +75 -0
  27. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-04-revise-input-guardrails/CLOSURE_BRIEF.md +19 -0
  28. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-04-revise-input-guardrails/EXECUTION_BRIEF.md +51 -0
  29. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-04-revise-input-guardrails/slice.json +73 -0
  30. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-05-provider-progress-alignment/CLOSURE_BRIEF.md +20 -0
  31. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-05-provider-progress-alignment/EXECUTION_BRIEF.md +51 -0
  32. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-05-provider-progress-alignment/slice.json +91 -0
  33. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-06-workflow-surface-integration/CLOSURE_BRIEF.md +20 -0
  34. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-06-workflow-surface-integration/EXECUTION_BRIEF.md +53 -0
  35. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-06-workflow-surface-integration/slice.json +87 -0
  36. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-07-docs-tests-release-readiness/CLOSURE_BRIEF.md +21 -0
  37. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-07-docs-tests-release-readiness/EXECUTION_BRIEF.md +55 -0
  38. package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-07-docs-tests-release-readiness/slice.json +97 -0
  39. package/specs/quiver-v34-cli-dashboard-status/EVIDENCE_REPORT.md +119 -0
  40. package/specs/quiver-v34-cli-dashboard-status/EXECUTION_PLAN.md +77 -0
  41. package/specs/quiver-v34-cli-dashboard-status/SPEC.md +152 -0
  42. package/specs/quiver-v34-cli-dashboard-status/STATUS.md +29 -0
  43. package/specs/quiver-v34-cli-dashboard-status/pr.md +99 -0
  44. package/specs/quiver-v34-cli-dashboard-status/slices/slice-00-dashboard-foundation/CLOSURE_BRIEF.md +19 -0
  45. package/specs/quiver-v34-cli-dashboard-status/slices/slice-00-dashboard-foundation/EXECUTION_BRIEF.md +49 -0
  46. package/specs/quiver-v34-cli-dashboard-status/slices/slice-00-dashboard-foundation/slice.json +68 -0
  47. package/specs/quiver-v34-cli-dashboard-status/slices/slice-01-dashboard-report-contract/CLOSURE_BRIEF.md +19 -0
  48. package/specs/quiver-v34-cli-dashboard-status/slices/slice-01-dashboard-report-contract/EXECUTION_BRIEF.md +53 -0
  49. package/specs/quiver-v34-cli-dashboard-status/slices/slice-01-dashboard-report-contract/slice.json +78 -0
  50. package/specs/quiver-v34-cli-dashboard-status/slices/slice-02-dashboard-command-rendering/CLOSURE_BRIEF.md +19 -0
  51. package/specs/quiver-v34-cli-dashboard-status/slices/slice-02-dashboard-command-rendering/EXECUTION_BRIEF.md +53 -0
  52. package/specs/quiver-v34-cli-dashboard-status/slices/slice-02-dashboard-command-rendering/slice.json +82 -0
  53. package/specs/quiver-v34-cli-dashboard-status/slices/slice-03-dashboard-edge-cases-and-guardrails/CLOSURE_BRIEF.md +19 -0
  54. package/specs/quiver-v34-cli-dashboard-status/slices/slice-03-dashboard-edge-cases-and-guardrails/EXECUTION_BRIEF.md +54 -0
  55. package/specs/quiver-v34-cli-dashboard-status/slices/slice-03-dashboard-edge-cases-and-guardrails/slice.json +77 -0
  56. package/specs/quiver-v34-cli-dashboard-status/slices/slice-04-docs-templates-and-scripts/CLOSURE_BRIEF.md +19 -0
  57. package/specs/quiver-v34-cli-dashboard-status/slices/slice-04-docs-templates-and-scripts/EXECUTION_BRIEF.md +54 -0
  58. package/specs/quiver-v34-cli-dashboard-status/slices/slice-04-docs-templates-and-scripts/slice.json +88 -0
  59. package/specs/quiver-v34-cli-dashboard-status/slices/slice-05-tests-smokes-release-readiness/CLOSURE_BRIEF.md +26 -0
  60. package/specs/quiver-v34-cli-dashboard-status/slices/slice-05-tests-smokes-release-readiness/EXECUTION_BRIEF.md +57 -0
  61. package/specs/quiver-v34-cli-dashboard-status/slices/slice-05-tests-smokes-release-readiness/slice.json +85 -0
  62. package/specs/quiver-v35-compact-dashboard-version-ux/EVIDENCE_REPORT.md +43 -0
  63. package/specs/quiver-v35-compact-dashboard-version-ux/EXECUTION_PLAN.md +85 -0
  64. package/specs/quiver-v35-compact-dashboard-version-ux/SPEC.md +147 -0
  65. package/specs/quiver-v35-compact-dashboard-version-ux/STATUS.md +33 -0
  66. package/specs/quiver-v35-compact-dashboard-version-ux/pr.md +106 -0
  67. package/specs/quiver-v35-compact-dashboard-version-ux/slices/slice-00-foundation-and-doc-router/CLOSURE_BRIEF.md +19 -0
  68. package/specs/quiver-v35-compact-dashboard-version-ux/slices/slice-00-foundation-and-doc-router/EXECUTION_BRIEF.md +38 -0
  69. package/specs/quiver-v35-compact-dashboard-version-ux/slices/slice-00-foundation-and-doc-router/slice.json +64 -0
  70. package/specs/quiver-v35-compact-dashboard-version-ux/slices/slice-01-dashboard-cli-contract/CLOSURE_BRIEF.md +19 -0
  71. package/specs/quiver-v35-compact-dashboard-version-ux/slices/slice-01-dashboard-cli-contract/EXECUTION_BRIEF.md +49 -0
  72. package/specs/quiver-v35-compact-dashboard-version-ux/slices/slice-01-dashboard-cli-contract/slice.json +80 -0
  73. package/specs/quiver-v35-compact-dashboard-version-ux/slices/slice-02-dashboard-compact-renderer/CLOSURE_BRIEF.md +19 -0
  74. package/specs/quiver-v35-compact-dashboard-version-ux/slices/slice-02-dashboard-compact-renderer/EXECUTION_BRIEF.md +48 -0
  75. package/specs/quiver-v35-compact-dashboard-version-ux/slices/slice-02-dashboard-compact-renderer/slice.json +73 -0
  76. package/specs/quiver-v35-compact-dashboard-version-ux/slices/slice-03-dashboard-details-sections/CLOSURE_BRIEF.md +19 -0
  77. package/specs/quiver-v35-compact-dashboard-version-ux/slices/slice-03-dashboard-details-sections/EXECUTION_BRIEF.md +48 -0
  78. package/specs/quiver-v35-compact-dashboard-version-ux/slices/slice-03-dashboard-details-sections/slice.json +72 -0
  79. package/specs/quiver-v35-compact-dashboard-version-ux/slices/slice-04-version-command/CLOSURE_BRIEF.md +19 -0
  80. package/specs/quiver-v35-compact-dashboard-version-ux/slices/slice-04-version-command/EXECUTION_BRIEF.md +49 -0
  81. package/specs/quiver-v35-compact-dashboard-version-ux/slices/slice-04-version-command/slice.json +82 -0
  82. package/specs/quiver-v35-compact-dashboard-version-ux/slices/slice-05-docs-help-generated-guidance/CLOSURE_BRIEF.md +19 -0
  83. package/specs/quiver-v35-compact-dashboard-version-ux/slices/slice-05-docs-help-generated-guidance/EXECUTION_BRIEF.md +50 -0
  84. package/specs/quiver-v35-compact-dashboard-version-ux/slices/slice-05-docs-help-generated-guidance/slice.json +90 -0
  85. package/specs/quiver-v35-compact-dashboard-version-ux/slices/slice-06-tests-smokes-release-readiness/CLOSURE_BRIEF.md +21 -0
  86. package/specs/quiver-v35-compact-dashboard-version-ux/slices/slice-06-tests-smokes-release-readiness/EXECUTION_BRIEF.md +51 -0
  87. package/specs/quiver-v35-compact-dashboard-version-ux/slices/slice-06-tests-smokes-release-readiness/slice.json +85 -0
  88. package/specs/quiver-v35-compact-dashboard-version-ux/slices/slice-07-package-and-cross-platform-smoke/CLOSURE_BRIEF.md +20 -0
  89. package/specs/quiver-v35-compact-dashboard-version-ux/slices/slice-07-package-and-cross-platform-smoke/EXECUTION_BRIEF.md +49 -0
  90. package/specs/quiver-v35-compact-dashboard-version-ux/slices/slice-07-package-and-cross-platform-smoke/slice.json +79 -0
  91. package/specs/quiver-v36-ai-run-watch-portable/EVIDENCE_REPORT.md +33 -0
  92. package/specs/quiver-v36-ai-run-watch-portable/EXECUTION_PLAN.md +39 -0
  93. package/specs/quiver-v36-ai-run-watch-portable/SPEC.md +166 -0
  94. package/specs/quiver-v36-ai-run-watch-portable/STATUS.md +31 -0
  95. package/specs/quiver-v36-ai-run-watch-portable/pr.md +78 -0
  96. package/specs/quiver-v36-ai-run-watch-portable/slices/slice-00-foundation-and-handoffs/CLOSURE_BRIEF.md +19 -0
  97. package/specs/quiver-v36-ai-run-watch-portable/slices/slice-00-foundation-and-handoffs/EXECUTION_BRIEF.md +43 -0
  98. package/specs/quiver-v36-ai-run-watch-portable/slices/slice-00-foundation-and-handoffs/slice.json +61 -0
  99. package/specs/quiver-v36-ai-run-watch-portable/slices/slice-01-run-schema-path-safety/CLOSURE_BRIEF.md +18 -0
  100. package/specs/quiver-v36-ai-run-watch-portable/slices/slice-01-run-schema-path-safety/EXECUTION_BRIEF.md +43 -0
  101. package/specs/quiver-v36-ai-run-watch-portable/slices/slice-01-run-schema-path-safety/slice.json +65 -0
  102. package/specs/quiver-v36-ai-run-watch-portable/slices/slice-02-event-writer-redacted-logs/CLOSURE_BRIEF.md +18 -0
  103. package/specs/quiver-v36-ai-run-watch-portable/slices/slice-02-event-writer-redacted-logs/EXECUTION_BRIEF.md +43 -0
  104. package/specs/quiver-v36-ai-run-watch-portable/slices/slice-02-event-writer-redacted-logs/slice.json +66 -0
  105. package/specs/quiver-v36-ai-run-watch-portable/slices/slice-03-provider-streaming-integration/CLOSURE_BRIEF.md +18 -0
  106. package/specs/quiver-v36-ai-run-watch-portable/slices/slice-03-provider-streaming-integration/EXECUTION_BRIEF.md +41 -0
  107. package/specs/quiver-v36-ai-run-watch-portable/slices/slice-03-provider-streaming-integration/slice.json +71 -0
  108. package/specs/quiver-v36-ai-run-watch-portable/slices/slice-04-ai-run-watch-command/CLOSURE_BRIEF.md +18 -0
  109. package/specs/quiver-v36-ai-run-watch-portable/slices/slice-04-ai-run-watch-command/EXECUTION_BRIEF.md +44 -0
  110. package/specs/quiver-v36-ai-run-watch-portable/slices/slice-04-ai-run-watch-command/slice.json +73 -0
  111. package/specs/quiver-v36-ai-run-watch-portable/slices/slice-05-main-progress-user-guidance/CLOSURE_BRIEF.md +18 -0
  112. package/specs/quiver-v36-ai-run-watch-portable/slices/slice-05-main-progress-user-guidance/EXECUTION_BRIEF.md +44 -0
  113. package/specs/quiver-v36-ai-run-watch-portable/slices/slice-05-main-progress-user-guidance/slice.json +71 -0
  114. package/specs/quiver-v36-ai-run-watch-portable/slices/slice-06-docs-generated-guidance/CLOSURE_BRIEF.md +19 -0
  115. package/specs/quiver-v36-ai-run-watch-portable/slices/slice-06-docs-generated-guidance/EXECUTION_BRIEF.md +45 -0
  116. package/specs/quiver-v36-ai-run-watch-portable/slices/slice-06-docs-generated-guidance/slice.json +77 -0
  117. package/specs/quiver-v36-ai-run-watch-portable/slices/slice-07-tests-cross-platform-readiness/CLOSURE_BRIEF.md +22 -0
  118. package/specs/quiver-v36-ai-run-watch-portable/slices/slice-07-tests-cross-platform-readiness/EXECUTION_BRIEF.md +46 -0
  119. package/specs/quiver-v36-ai-run-watch-portable/slices/slice-07-tests-cross-platform-readiness/slice.json +87 -0
  120. package/src/create-quiver/commands/ai.js +112 -12
  121. package/src/create-quiver/commands/dashboard.js +31 -0
  122. package/src/create-quiver/commands/flow.js +74 -12
  123. package/src/create-quiver/commands/spec.js +8 -1
  124. package/src/create-quiver/index.js +107 -4
  125. package/src/create-quiver/lib/ai/approval-candidates.js +86 -0
  126. package/src/create-quiver/lib/ai/plan-review.js +77 -1
  127. package/src/create-quiver/lib/ai/run-state.js +21 -4
  128. package/src/create-quiver/lib/approvals.js +103 -0
  129. package/src/create-quiver/lib/cli/ux-flags.js +6 -0
  130. package/src/create-quiver/lib/dashboard.js +896 -0
  131. package/src/create-quiver/lib/git.js +13 -4
  132. package/src/create-quiver/lib/init-docs.js +6 -0
  133. package/src/create-quiver/lib/init-layout.js +2 -0
  134. package/src/create-quiver/lib/paths.js +45 -3
  135. package/src/create-quiver/lib/project-state-resolver.js +22 -2
  136. package/src/create-quiver/lib/version.js +157 -0
@@ -0,0 +1,53 @@
1
+ # EXECUTION_BRIEF - slice-02 Interactive approval selection
2
+
3
+ ## Context
4
+
5
+ Users currently need to run `ai approvals`, inspect versions manually, then pass `--version <n>`. The requested UX should behave like `ai agent set`: guide users in TTY and stay explicit in automation.
6
+
7
+ ## Objective
8
+
9
+ Add TTY approval selection for `ai approve` when `--version` is omitted.
10
+
11
+ ## Scope
12
+
13
+ - `src/create-quiver/commands/ai.js`
14
+ - selector helpers if needed
15
+ - approval tests
16
+
17
+ ## Acceptance Criteria
18
+
19
+ - TTY acceptance approval without `--version` shows candidates.
20
+ - TTY technical-plan approval without `--version` shows review-aware candidates.
21
+ - No-TTY/CI requires `--version`.
22
+ - Explicit `--version` behavior remains stable.
23
+ - Cancellation writes no files.
24
+ - Blocked candidates cannot be approved.
25
+
26
+ ## Technical Plan Summary
27
+
28
+ Resolve candidates from slice-01, use `selectOption` for prompt-capable environments, and pass the selected version into the existing approval path.
29
+
30
+ ## Suggested Steps
31
+
32
+ 1. Add approval selection resolver.
33
+ 2. Wire resolver into `runApprove`.
34
+ 3. Add no-TTY guardrail message.
35
+ 4. Add tests for acceptance and technical-plan.
36
+ 5. Verify explicit version path remains unchanged.
37
+
38
+ ## Restrictions
39
+
40
+ - Do not add `--review` support.
41
+ - Do not weaken technical-plan validation.
42
+ - Do not prompt in CI/no-TTY/JSON.
43
+
44
+ ## Risks
45
+
46
+ - Prompt availability detection must match existing `ai agent set` behavior closely enough to avoid CI hangs.
47
+
48
+ ## Completion Checklist
49
+
50
+ - [ ] TTY selector implemented.
51
+ - [ ] No-TTY guardrail tested.
52
+ - [ ] Cancellation tested.
53
+ - [ ] Explicit `--version` tested.
@@ -0,0 +1,79 @@
1
+ {
2
+ "slice_id": "slice-02-approve-interactive-selection",
3
+ "ticket": "QUIVER-33-02",
4
+ "type": "feature",
5
+ "title": "Interactive approval selection",
6
+ "objective": "Let `ai approve --phase acceptance|technical-plan` guide TTY users when `--version` is omitted while preserving explicit non-interactive behavior.",
7
+ "description": "Adds a selector patterned after `ai agent set`, recommends the current latest draft, blocks unsafe approvals, and keeps CI/no-TTY requiring `--version <n>`.",
8
+ "git": {
9
+ "branch_type": "feature",
10
+ "base_branch": "main",
11
+ "branch_slug": "v33-approve-interactive-selection",
12
+ "branch_name": "feature/QUIVER-33-02-v33-approve-interactive-selection"
13
+ },
14
+ "files": [
15
+ "src/create-quiver/commands/ai.js",
16
+ "src/create-quiver/lib/cli/selectors.js",
17
+ "src/create-quiver/lib/approvals.js",
18
+ "tests/commands/ai-review-plan.test.js",
19
+ "tests/commands/ai-plan.test.js",
20
+ "tests/lib/cli-selectors.test.js"
21
+ ],
22
+ "expected_read_paths": [
23
+ "src/create-quiver/commands/ai.js",
24
+ "src/create-quiver/lib/approvals.js",
25
+ "src/create-quiver/lib/cli/selectors.js",
26
+ "tests/commands/ai-review-plan.test.js",
27
+ "tests/commands/ai-plan.test.js",
28
+ "SPEC.md"
29
+ ],
30
+ "allowed_write_paths": [
31
+ "src/create-quiver/commands/ai.js",
32
+ "src/create-quiver/lib/cli/selectors.js",
33
+ "src/create-quiver/lib/approvals.js",
34
+ "tests/commands/ai-review-plan.test.js",
35
+ "tests/commands/ai-plan.test.js",
36
+ "tests/lib/cli-selectors.test.js",
37
+ "specs/quiver-v33-approval-ux-and-planner-progress/**"
38
+ ],
39
+ "depends_on": [
40
+ "slice-01-approval-candidates-model"
41
+ ],
42
+ "parallel_safe": "no",
43
+ "parallel_safe_reason": "This slice changes approval command behavior and should land before downstream consumers rely on it.",
44
+ "must": [
45
+ "Open a selector only when `--version` is omitted and prompts are available.",
46
+ "Require explicit `--version <n>` in CI/no-TTY.",
47
+ "Keep explicit `--version <n>` behavior backward compatible.",
48
+ "Recommend the current/latest approvable draft.",
49
+ "Show concise useful decision information for each candidate.",
50
+ "Allow cancellation without writes.",
51
+ "Do not approve older or blocked drafts silently."
52
+ ],
53
+ "not_included": [
54
+ "Changing plan-review result derivation.",
55
+ "Changing spec generation.",
56
+ "Adding editor review to approve."
57
+ ],
58
+ "acceptance": [
59
+ "`ai approve --phase acceptance` in TTY without `--version` shows a selector.",
60
+ "`ai approve --phase technical-plan` in TTY without `--version` shows a selector with review context.",
61
+ "No-TTY/CI without `--version` fails actionably.",
62
+ "`--version 1` still approves through the existing path when valid.",
63
+ "Canceling the selector writes no approval.",
64
+ "Older draft versions cannot be approved through the selector."
65
+ ],
66
+ "tests": [
67
+ "node --test tests/commands/ai-plan.test.js tests/commands/ai-review-plan.test.js tests/lib/cli-selectors.test.js",
68
+ "git diff --check"
69
+ ],
70
+ "validation_hints": [
71
+ "Use injected selector helpers in tests; do not require a real terminal.",
72
+ "Test no-TTY and CI explicitly."
73
+ ],
74
+ "estimated_hours": 8,
75
+ "status": "completed",
76
+ "blocked_reason": null,
77
+ "actual_hours": 8,
78
+ "completed_at": "2026-05-28"
79
+ }
@@ -0,0 +1,19 @@
1
+ # CLOSURE_BRIEF - slice-03 Technical-plan review decision data
2
+
3
+ ## Summary
4
+
5
+ Completed technical-plan candidate enrichment so approval decisions reflect review status, approval recommendation, blocking state, required fixes, optional hardening, risks, and next command.
6
+
7
+ ## Validation
8
+
9
+ - [x] Plan-review state tests pass.
10
+ - [x] Revise blocking test passes.
11
+ - [x] Approve-with-risk test passes.
12
+
13
+ ## Pending
14
+
15
+ - None.
16
+
17
+ ## Remaining Risks
18
+
19
+ - None critical; workflow surfaces are integrated in slice-06.
@@ -0,0 +1,50 @@
1
+ # EXECUTION_BRIEF - slice-03 Technical-plan review decision data
2
+
3
+ ## Context
4
+
5
+ Technical-plan approval already has safety checks, but users need visible decision data before approving.
6
+
7
+ ## Objective
8
+
9
+ Surface plan-review state and recommendation consistently during technical-plan approval.
10
+
11
+ ## Scope
12
+
13
+ - `src/create-quiver/lib/ai/plan-review.js`
14
+ - approval candidate helpers
15
+ - `runApprove` selector output if needed
16
+ - focused plan-review tests
17
+
18
+ ## Acceptance Criteria
19
+
20
+ - Missing, stale, unapproved, approve, approve-with-risk, and revise states are distinguishable.
21
+ - Revise blocks approval.
22
+ - Approve-with-risk remains approvable and visible.
23
+ - Required fixes, optional hardening, risks, and next command are shown where relevant.
24
+ - Existing technical-plan approval validation remains intact.
25
+
26
+ ## Technical Plan Summary
27
+
28
+ Extend the shared candidate data with normalized review-decision fields and consume them in the approval selector.
29
+
30
+ ## Suggested Steps
31
+
32
+ 1. Normalize review decision state.
33
+ 2. Add candidate annotations for technical-plan.
34
+ 3. Update selector rendering or approval summaries.
35
+ 4. Add tests for all review states.
36
+
37
+ ## Restrictions
38
+
39
+ - Do not modify provider prompts.
40
+ - Do not change review-result schema unless needed for backward compatibility.
41
+
42
+ ## Risks
43
+
44
+ - Displaying unapproved vs reviewed states incorrectly can lead users to approve the wrong artifact.
45
+
46
+ ## Completion Checklist
47
+
48
+ - [ ] Review states normalized.
49
+ - [ ] Blocking behavior preserved.
50
+ - [ ] Tests cover all review states.
@@ -0,0 +1,75 @@
1
+ {
2
+ "slice_id": "slice-03-technical-plan-review-decision-data",
3
+ "ticket": "QUIVER-33-03",
4
+ "type": "feature",
5
+ "title": "Technical-plan review decision data",
6
+ "objective": "Make technical-plan approval decisions visibly reflect plan-review state and recommendation.",
7
+ "description": "Ensures approval selection and command output distinguish missing, stale, unapproved, approve, approve-with-risk, and revise review states without weakening existing gates.",
8
+ "git": {
9
+ "branch_type": "feature",
10
+ "base_branch": "main",
11
+ "branch_slug": "v33-technical-plan-review-decision-data",
12
+ "branch_name": "feature/QUIVER-33-03-v33-technical-plan-review-decision-data"
13
+ },
14
+ "files": [
15
+ "src/create-quiver/lib/ai/plan-review.js",
16
+ "src/create-quiver/lib/approvals.js",
17
+ "src/create-quiver/commands/ai.js",
18
+ "tests/commands/ai-review-plan.test.js",
19
+ "tests/lib/approvals.test.js"
20
+ ],
21
+ "expected_read_paths": [
22
+ "src/create-quiver/lib/ai/plan-review.js",
23
+ "src/create-quiver/lib/approvals.js",
24
+ "src/create-quiver/commands/ai.js",
25
+ "tests/commands/ai-review-plan.test.js",
26
+ "SPEC.md"
27
+ ],
28
+ "allowed_write_paths": [
29
+ "src/create-quiver/lib/ai/plan-review.js",
30
+ "src/create-quiver/lib/approvals.js",
31
+ "src/create-quiver/commands/ai.js",
32
+ "tests/commands/ai-review-plan.test.js",
33
+ "tests/lib/approvals.test.js",
34
+ "specs/quiver-v33-approval-ux-and-planner-progress/**"
35
+ ],
36
+ "depends_on": [
37
+ "slice-01-approval-candidates-model",
38
+ "slice-02-approve-interactive-selection"
39
+ ],
40
+ "parallel_safe": "yes",
41
+ "parallel_safe_reason": "Can proceed after approval selection if command-file conflicts are coordinated.",
42
+ "must": [
43
+ "Represent plan-review statuses missing, stale, unapproved, reviewed approve, reviewed approve-with-risk, and reviewed revise.",
44
+ "Block approval when recommendation is revise.",
45
+ "Allow approve-with-risk with visible risk context.",
46
+ "Show required fixes count and next command when blocked.",
47
+ "Preserve existing explicit technical-plan approval validation."
48
+ ],
49
+ "not_included": [
50
+ "Changing how reviewers generate review metadata.",
51
+ "Changing structured review schema unless required for display.",
52
+ "Relaxing stale review checks."
53
+ ],
54
+ "acceptance": [
55
+ "Technical-plan selector shows missing review as not ready.",
56
+ "Stale review blocks or redirects to review-plan.",
57
+ "Unapproved review guides to approve with the reviewed version when valid.",
58
+ "Approve-with-risk exposes optional hardening and risks.",
59
+ "Revise recommendation blocks approval.",
60
+ "Explicit version approval still enforces the same blocking rules."
61
+ ],
62
+ "tests": [
63
+ "node --test tests/commands/ai-review-plan.test.js tests/lib/approvals.test.js",
64
+ "git diff --check"
65
+ ],
66
+ "validation_hints": [
67
+ "Reuse existing `reviewBlocksApproval` semantics.",
68
+ "Add tests around every plan-review status."
69
+ ],
70
+ "estimated_hours": 6,
71
+ "status": "completed",
72
+ "blocked_reason": null,
73
+ "actual_hours": 6,
74
+ "completed_at": "2026-05-28"
75
+ }
@@ -0,0 +1,19 @@
1
+ # CLOSURE_BRIEF - slice-04 Revise input guardrails
2
+
3
+ ## Summary
4
+
5
+ Completed revise input guardrails for missing `--input` values, nonexistent feedback files, and accidental extra positional arguments before any provider execution.
6
+
7
+ ## Validation
8
+
9
+ - [x] Missing input tests pass.
10
+ - [x] Nonexistent file tests pass.
11
+ - [x] Valid revise regression tests pass.
12
+
13
+ ## Pending
14
+
15
+ - None.
16
+
17
+ ## Remaining Risks
18
+
19
+ - None critical; broader CLI contract coverage passed in the full suite.
@@ -0,0 +1,51 @@
1
+ # EXECUTION_BRIEF - slice-04 Revise input guardrails
2
+
3
+ ## Context
4
+
5
+ The requirement explicitly called out incomplete `ai revise --phase technical-plan --input` usage and an accidental trailing `s`. Production review expanded the scope to acceptance revise as well.
6
+
7
+ ## Objective
8
+
9
+ Make invalid `ai revise --input` usage fail clearly before provider execution for both planner phases.
10
+
11
+ ## Scope
12
+
13
+ - CLI argument parsing if needed.
14
+ - `runRevise` / `runPlan` input validation.
15
+ - focused command tests.
16
+
17
+ ## Acceptance Criteria
18
+
19
+ - Missing `--input` value is detected for acceptance and technical-plan.
20
+ - Nonexistent feedback files fail before provider execution.
21
+ - Accidental extra arguments are reported or rejected clearly.
22
+ - No-TTY/CI never prompts.
23
+ - Valid revise commands remain unchanged.
24
+
25
+ ## Technical Plan Summary
26
+
27
+ Add explicit guardrails at the parser/command boundary, then test command-level behavior with provider execution disabled or asserted absent.
28
+
29
+ ## Suggested Steps
30
+
31
+ 1. Inspect parse behavior for `--input` without value.
32
+ 2. Add a consistent actionable error.
33
+ 3. Add nonexistent-file regression coverage.
34
+ 4. Add accidental extra-arg coverage if parser supports it.
35
+ 5. Confirm valid revise flows still pass.
36
+
37
+ ## Restrictions
38
+
39
+ - Do not run a provider when input is invalid.
40
+ - Do not auto-create feedback files.
41
+
42
+ ## Risks
43
+
44
+ - Parser changes can affect other commands that use `--input`.
45
+
46
+ ## Completion Checklist
47
+
48
+ - [ ] Missing input covered for both phases.
49
+ - [ ] Nonexistent input covered.
50
+ - [ ] Extra argument behavior covered.
51
+ - [ ] Valid revise flow still passes.
@@ -0,0 +1,73 @@
1
+ {
2
+ "slice_id": "slice-04-revise-input-guardrails",
3
+ "ticket": "QUIVER-33-04",
4
+ "type": "fix",
5
+ "title": "Revise input guardrails",
6
+ "objective": "Handle missing, incomplete, nonexistent, and accidental extra `ai revise --input` usage before provider execution.",
7
+ "description": "Hardens `ai revise` for both acceptance and technical-plan phases so incomplete inputs fail actionably or guide the user in TTY without silently ignoring mistakes.",
8
+ "git": {
9
+ "branch_type": "fix",
10
+ "base_branch": "main",
11
+ "branch_slug": "v33-revise-input-guardrails",
12
+ "branch_name": "fix/QUIVER-33-04-v33-revise-input-guardrails"
13
+ },
14
+ "files": [
15
+ "src/create-quiver/index.js",
16
+ "src/create-quiver/commands/ai.js",
17
+ "tests/commands/ai-plan.test.js",
18
+ "tests/commands/cli-contract.test.js"
19
+ ],
20
+ "expected_read_paths": [
21
+ "src/create-quiver/index.js",
22
+ "src/create-quiver/commands/ai.js",
23
+ "tests/commands/ai-plan.test.js",
24
+ "tests/commands/cli-contract.test.js",
25
+ "SPEC.md"
26
+ ],
27
+ "allowed_write_paths": [
28
+ "src/create-quiver/index.js",
29
+ "src/create-quiver/commands/ai.js",
30
+ "tests/commands/ai-plan.test.js",
31
+ "tests/commands/cli-contract.test.js",
32
+ "specs/quiver-v33-approval-ux-and-planner-progress/**"
33
+ ],
34
+ "depends_on": [
35
+ "slice-01-approval-candidates-model"
36
+ ],
37
+ "parallel_safe": "yes",
38
+ "parallel_safe_reason": "Can run after slice-01, but coordinate command-file conflicts with slice-02 and slice-05.",
39
+ "must": [
40
+ "Detect `ai revise --phase acceptance --input` without a value.",
41
+ "Detect `ai revise --phase technical-plan --input` without a value.",
42
+ "Fail before provider execution for missing or nonexistent files.",
43
+ "Handle accidental trailing args such as `s` with a clear error or documented parse behavior.",
44
+ "In no-TTY/CI, show an explicit corrected command.",
45
+ "In TTY, show focused guidance or selector only if useful artifacts exist."
46
+ ],
47
+ "not_included": [
48
+ "Generating feedback files automatically.",
49
+ "Running providers when input is invalid.",
50
+ "Changing revise prompt semantics."
51
+ ],
52
+ "acceptance": [
53
+ "`ai revise --phase acceptance --input` fails before provider execution with a useful next command.",
54
+ "`ai revise --phase technical-plan --input` fails before provider execution with a useful next command.",
55
+ "Nonexistent feedback input fails before provider execution.",
56
+ "Accidental extra args are not silently accepted.",
57
+ "No-TTY/CI does not prompt.",
58
+ "Existing valid revise commands still work."
59
+ ],
60
+ "tests": [
61
+ "node --test tests/commands/ai-plan.test.js tests/commands/cli-contract.test.js",
62
+ "git diff --check"
63
+ ],
64
+ "validation_hints": [
65
+ "Cover parser-level missing value behavior and command-level missing file behavior separately.",
66
+ "Avoid provider mocks for invalid input paths because provider execution should not start."
67
+ ],
68
+ "estimated_hours": 6,
69
+ "status": "completed",
70
+ "blocked_reason": null,
71
+ "actual_hours": 6,
72
+ "completed_at": "2026-05-28"
73
+ }
@@ -0,0 +1,20 @@
1
+ # CLOSURE_BRIEF - slice-05 Provider progress alignment
2
+
3
+ ## Summary
4
+
5
+ Completed provider progress alignment for planner/reviewer flows. `ai plan`, `ai revise`, `ai review-plan`, and `ai repair-plan` now use real preparation checks and provider spinner behavior in human TTY mode.
6
+
7
+ ## Validation
8
+
9
+ - [x] Planner progress tests pass.
10
+ - [x] Review-plan progress tests pass.
11
+ - [x] Repair-plan progress tests pass.
12
+ - [x] Machine-output cleanliness tests pass.
13
+
14
+ ## Pending
15
+
16
+ - None.
17
+
18
+ ## Remaining Risks
19
+
20
+ - None critical; final smoke and package readiness passed.
@@ -0,0 +1,51 @@
1
+ # EXECUTION_BRIEF - slice-05 Provider progress alignment
2
+
3
+ ## Context
4
+
5
+ `ai prepare-context --with-planner` provides the UX baseline. Planner and reviewer commands must look alive during real provider execution without affecting machine output.
6
+
7
+ ## Objective
8
+
9
+ Align progress/loaders for `ai plan`, `ai revise`, `ai review-plan`, and `ai repair-plan`, and audit existing long-running flows.
10
+
11
+ ## Scope
12
+
13
+ - `src/create-quiver/commands/ai.js`
14
+ - existing CLI UX helpers if needed
15
+ - focused progress tests
16
+
17
+ ## Acceptance Criteria
18
+
19
+ - Live provider-backed planner/reviewer commands show progress in human TTY.
20
+ - Dry-run and print-prompt do not show loaders.
21
+ - JSON/no-TTY/CI/no-color stay clean.
22
+ - Provider failure stops the spinner.
23
+ - Existing compliant flows are protected by regression tests or noted.
24
+
25
+ ## Technical Plan Summary
26
+
27
+ Reuse `createCommandUx`, `shouldShowHumanProgress`, `writeProgressChecks`, and `runProviderWithProgress`. Avoid new abstractions unless real duplication appears.
28
+
29
+ ## Suggested Steps
30
+
31
+ 1. Audit current progress usage.
32
+ 2. Add missing progress stages.
33
+ 3. Add tests with injected spinner/UX helpers.
34
+ 4. Add no-color/no-TTY regression coverage where gaps exist.
35
+
36
+ ## Restrictions
37
+
38
+ - Do not change provider prompts.
39
+ - Do not add progress to JSON output.
40
+ - Do not mark fake work as completed.
41
+
42
+ ## Risks
43
+
44
+ - Progress output can be hard to test if implementation is coupled to terminal rendering.
45
+
46
+ ## Completion Checklist
47
+
48
+ - [ ] Planner progress covered.
49
+ - [ ] Review-plan progress covered.
50
+ - [ ] Repair-plan progress covered.
51
+ - [ ] Machine-output cleanliness covered.
@@ -0,0 +1,91 @@
1
+ {
2
+ "slice_id": "slice-05-provider-progress-alignment",
3
+ "ticket": "QUIVER-33-05",
4
+ "type": "feature",
5
+ "title": "Provider progress alignment",
6
+ "objective": "Align progress messages and loaders for provider-backed planner and reviewer commands.",
7
+ "description": "Ensures `ai plan`, `ai revise`, `ai review-plan`, and `ai repair-plan` use the same production-safe progress contract as `ai prepare-context --with-planner`, while auditing existing long-running flows.",
8
+ "git": {
9
+ "branch_type": "feature",
10
+ "base_branch": "main",
11
+ "branch_slug": "v33-provider-progress-alignment",
12
+ "branch_name": "feature/QUIVER-33-05-v33-provider-progress-alignment"
13
+ },
14
+ "files": [
15
+ "src/create-quiver/commands/ai.js",
16
+ "src/create-quiver/lib/ai/executor.js",
17
+ "src/create-quiver/lib/ai/execution-plan.js",
18
+ "src/create-quiver/lib/cli/ux.js",
19
+ "tests/commands/ai-plan.test.js",
20
+ "tests/commands/ai-review-plan.test.js",
21
+ "tests/commands/ai-prepare-context-planner.test.js",
22
+ "tests/commands/ai-execute-slice.test.js",
23
+ "tests/commands/ai-execute-plan.test.js",
24
+ "tests/commands/ai-pr.test.js",
25
+ "tests/lib/cli-ux.test.js"
26
+ ],
27
+ "expected_read_paths": [
28
+ "src/create-quiver/commands/ai.js",
29
+ "src/create-quiver/lib/ai/executor.js",
30
+ "src/create-quiver/lib/ai/execution-plan.js",
31
+ "src/create-quiver/lib/cli/ux.js",
32
+ "tests/commands/ai-prepare-context-planner.test.js",
33
+ "tests/lib/cli-ux.test.js",
34
+ "SPEC.md"
35
+ ],
36
+ "allowed_write_paths": [
37
+ "src/create-quiver/commands/ai.js",
38
+ "src/create-quiver/lib/ai/executor.js",
39
+ "src/create-quiver/lib/ai/execution-plan.js",
40
+ "src/create-quiver/lib/cli/ux.js",
41
+ "tests/commands/ai-plan.test.js",
42
+ "tests/commands/ai-review-plan.test.js",
43
+ "tests/commands/ai-prepare-context-planner.test.js",
44
+ "tests/commands/ai-execute-slice.test.js",
45
+ "tests/commands/ai-execute-plan.test.js",
46
+ "tests/commands/ai-pr.test.js",
47
+ "tests/lib/cli-ux.test.js",
48
+ "specs/quiver-v33-approval-ux-and-planner-progress/**"
49
+ ],
50
+ "depends_on": [
51
+ "slice-01-approval-candidates-model"
52
+ ],
53
+ "parallel_safe": "yes",
54
+ "parallel_safe_reason": "Can run after slice-01, but command-file conflicts with approval slices should be coordinated.",
55
+ "must": [
56
+ "Show human progress for `ai plan --phase acceptance` live provider execution.",
57
+ "Show human progress for `ai plan --phase technical-plan` live provider execution.",
58
+ "Show human progress for `ai revise` live provider execution through the shared plan path.",
59
+ "Show human progress for `ai review-plan` live provider execution.",
60
+ "Show human progress for `ai repair-plan` live provider execution.",
61
+ "Do not show loaders for dry-run or print-prompt.",
62
+ "Do not contaminate JSON, no-color, CI, or no-TTY output.",
63
+ "Audit existing long-running flows and add regression tests only where behavior should remain unchanged."
64
+ ],
65
+ "not_included": [
66
+ "Changing provider prompts.",
67
+ "Changing provider adapters.",
68
+ "Adding new UX dependencies."
69
+ ],
70
+ "acceptance": [
71
+ "Planner commands show real staged progress in human mode.",
72
+ "Reviewer and repair-plan commands show real staged progress in human mode.",
73
+ "Dry-run and print-prompt remain provider-free and loader-free.",
74
+ "Provider failure stops spinner and surfaces actionable context.",
75
+ "Existing prepare-context, onboard, execute-slice, execute-plan, and pr progress behavior is covered by regression tests or explicitly documented as already compliant."
76
+ ],
77
+ "tests": [
78
+ "node --test tests/commands/ai-plan.test.js tests/commands/ai-review-plan.test.js tests/commands/ai-prepare-context-planner.test.js tests/lib/cli-ux.test.js",
79
+ "node --test tests/commands/ai-execute-slice.test.js tests/commands/ai-execute-plan.test.js tests/commands/ai-pr.test.js",
80
+ "git diff --check"
81
+ ],
82
+ "validation_hints": [
83
+ "Use injected spinner helpers in tests.",
84
+ "Avoid fake progress checks that claim completed work before it happens."
85
+ ],
86
+ "estimated_hours": 8,
87
+ "status": "completed",
88
+ "blocked_reason": null,
89
+ "actual_hours": 8,
90
+ "completed_at": "2026-05-28"
91
+ }
@@ -0,0 +1,20 @@
1
+ # CLOSURE_BRIEF - slice-06 Workflow surface integration
2
+
3
+ ## Summary
4
+
5
+ Completed workflow surface integration through shared approval-candidate helpers. `ai approvals`, `flow`, `ai status`, `ai resume`, and `spec create --interactive` now align on recommended approval versions and blocked review guidance.
6
+
7
+ ## Validation
8
+
9
+ - [x] Approval status tests pass.
10
+ - [x] Flow tests pass.
11
+ - [x] Run-state tests pass.
12
+ - [x] Spec create tests pass.
13
+
14
+ ## Pending
15
+
16
+ - None.
17
+
18
+ ## Remaining Risks
19
+
20
+ - None critical; drift-prone surfaces are covered by focused tests and full suite.
@@ -0,0 +1,53 @@
1
+ # EXECUTION_BRIEF - slice-06 Workflow surface integration
2
+
3
+ ## Context
4
+
5
+ After approval selection and review-decision data exist, other workflow surfaces must consume the same source of truth to prevent contradictory next steps.
6
+
7
+ ## Objective
8
+
9
+ Integrate shared approval candidates into `ai approvals`, `flow`, `ai status`, `ai resume`, and `spec create --interactive`.
10
+
11
+ ## Scope
12
+
13
+ - `src/create-quiver/commands/ai.js`
14
+ - `src/create-quiver/commands/flow.js`
15
+ - `src/create-quiver/commands/spec.js`
16
+ - `src/create-quiver/lib/ai/run-state.js`
17
+ - focused tests
18
+
19
+ ## Acceptance Criteria
20
+
21
+ - `ai approvals` and `ai approve` recommend the same current version.
22
+ - `flow` points to safe next steps consistent with candidates.
23
+ - `ai status` and `ai resume` do not contradict approval guidance.
24
+ - `spec create --interactive` shows reviewed and approved technical-plan input clearly.
25
+ - Read-only outputs remain prompt-free.
26
+
27
+ ## Technical Plan Summary
28
+
29
+ Replace duplicated next-command decisions with the shared candidate model where approval phases are involved.
30
+
31
+ ## Suggested Steps
32
+
33
+ 1. Update approval status output.
34
+ 2. Update flow decision points.
35
+ 3. Update run-state next-command guidance.
36
+ 4. Update spec create interactive summary.
37
+ 5. Add drift-prevention tests.
38
+
39
+ ## Restrictions
40
+
41
+ - Do not prompt from read-only commands.
42
+ - Do not change spec generation semantics.
43
+
44
+ ## Risks
45
+
46
+ - Existing snapshot-style output tests may need precise updates.
47
+
48
+ ## Completion Checklist
49
+
50
+ - [ ] `ai approvals` integrated.
51
+ - [ ] `flow` integrated.
52
+ - [ ] `ai status/resume` integrated.
53
+ - [ ] `spec create --interactive` integrated.