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.
- package/.github/workflows/ci.yml +3 -0
- package/README.md +3 -0
- package/README_FOR_AI.md +11 -7
- package/docs/CLI_UX_GUIDE.md +16 -2
- package/docs/COMMANDS.md.template +16 -4
- package/docs/INDEX.md +87 -0
- package/docs/WORKFLOW.md.template +4 -4
- package/docs/reference/commands.md +23 -5
- package/package.json +3 -1
- package/specs/quiver-v33-approval-ux-and-planner-progress/EVIDENCE_REPORT.md +93 -0
- package/specs/quiver-v33-approval-ux-and-planner-progress/EXECUTION_PLAN.md +83 -0
- package/specs/quiver-v33-approval-ux-and-planner-progress/SPEC.md +158 -0
- package/specs/quiver-v33-approval-ux-and-planner-progress/STATUS.md +31 -0
- package/specs/quiver-v33-approval-ux-and-planner-progress/pr.md +109 -0
- package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-00-approval-ux-foundation/CLOSURE_BRIEF.md +30 -0
- package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-00-approval-ux-foundation/EXECUTION_BRIEF.md +56 -0
- package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-00-approval-ux-foundation/slice.json +65 -0
- package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-01-approval-candidates-model/CLOSURE_BRIEF.md +19 -0
- package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-01-approval-candidates-model/EXECUTION_BRIEF.md +51 -0
- package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-01-approval-candidates-model/slice.json +74 -0
- package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-02-approve-interactive-selection/CLOSURE_BRIEF.md +20 -0
- package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-02-approve-interactive-selection/EXECUTION_BRIEF.md +53 -0
- package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-02-approve-interactive-selection/slice.json +79 -0
- package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-03-technical-plan-review-decision-data/CLOSURE_BRIEF.md +19 -0
- package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-03-technical-plan-review-decision-data/EXECUTION_BRIEF.md +50 -0
- package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-03-technical-plan-review-decision-data/slice.json +75 -0
- package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-04-revise-input-guardrails/CLOSURE_BRIEF.md +19 -0
- package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-04-revise-input-guardrails/EXECUTION_BRIEF.md +51 -0
- package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-04-revise-input-guardrails/slice.json +73 -0
- package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-05-provider-progress-alignment/CLOSURE_BRIEF.md +20 -0
- package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-05-provider-progress-alignment/EXECUTION_BRIEF.md +51 -0
- package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-05-provider-progress-alignment/slice.json +91 -0
- package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-06-workflow-surface-integration/CLOSURE_BRIEF.md +20 -0
- package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-06-workflow-surface-integration/EXECUTION_BRIEF.md +53 -0
- package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-06-workflow-surface-integration/slice.json +87 -0
- package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-07-docs-tests-release-readiness/CLOSURE_BRIEF.md +21 -0
- package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-07-docs-tests-release-readiness/EXECUTION_BRIEF.md +55 -0
- package/specs/quiver-v33-approval-ux-and-planner-progress/slices/slice-07-docs-tests-release-readiness/slice.json +97 -0
- package/specs/quiver-v34-cli-dashboard-status/EVIDENCE_REPORT.md +119 -0
- package/specs/quiver-v34-cli-dashboard-status/EXECUTION_PLAN.md +77 -0
- package/specs/quiver-v34-cli-dashboard-status/SPEC.md +152 -0
- package/specs/quiver-v34-cli-dashboard-status/STATUS.md +29 -0
- package/specs/quiver-v34-cli-dashboard-status/pr.md +99 -0
- package/specs/quiver-v34-cli-dashboard-status/slices/slice-00-dashboard-foundation/CLOSURE_BRIEF.md +19 -0
- package/specs/quiver-v34-cli-dashboard-status/slices/slice-00-dashboard-foundation/EXECUTION_BRIEF.md +49 -0
- package/specs/quiver-v34-cli-dashboard-status/slices/slice-00-dashboard-foundation/slice.json +68 -0
- package/specs/quiver-v34-cli-dashboard-status/slices/slice-01-dashboard-report-contract/CLOSURE_BRIEF.md +19 -0
- package/specs/quiver-v34-cli-dashboard-status/slices/slice-01-dashboard-report-contract/EXECUTION_BRIEF.md +53 -0
- package/specs/quiver-v34-cli-dashboard-status/slices/slice-01-dashboard-report-contract/slice.json +78 -0
- package/specs/quiver-v34-cli-dashboard-status/slices/slice-02-dashboard-command-rendering/CLOSURE_BRIEF.md +19 -0
- package/specs/quiver-v34-cli-dashboard-status/slices/slice-02-dashboard-command-rendering/EXECUTION_BRIEF.md +53 -0
- package/specs/quiver-v34-cli-dashboard-status/slices/slice-02-dashboard-command-rendering/slice.json +82 -0
- package/specs/quiver-v34-cli-dashboard-status/slices/slice-03-dashboard-edge-cases-and-guardrails/CLOSURE_BRIEF.md +19 -0
- package/specs/quiver-v34-cli-dashboard-status/slices/slice-03-dashboard-edge-cases-and-guardrails/EXECUTION_BRIEF.md +54 -0
- package/specs/quiver-v34-cli-dashboard-status/slices/slice-03-dashboard-edge-cases-and-guardrails/slice.json +77 -0
- package/specs/quiver-v34-cli-dashboard-status/slices/slice-04-docs-templates-and-scripts/CLOSURE_BRIEF.md +19 -0
- package/specs/quiver-v34-cli-dashboard-status/slices/slice-04-docs-templates-and-scripts/EXECUTION_BRIEF.md +54 -0
- package/specs/quiver-v34-cli-dashboard-status/slices/slice-04-docs-templates-and-scripts/slice.json +88 -0
- package/specs/quiver-v34-cli-dashboard-status/slices/slice-05-tests-smokes-release-readiness/CLOSURE_BRIEF.md +26 -0
- package/specs/quiver-v34-cli-dashboard-status/slices/slice-05-tests-smokes-release-readiness/EXECUTION_BRIEF.md +57 -0
- package/specs/quiver-v34-cli-dashboard-status/slices/slice-05-tests-smokes-release-readiness/slice.json +85 -0
- package/specs/quiver-v35-compact-dashboard-version-ux/EVIDENCE_REPORT.md +43 -0
- package/specs/quiver-v35-compact-dashboard-version-ux/EXECUTION_PLAN.md +85 -0
- package/specs/quiver-v35-compact-dashboard-version-ux/SPEC.md +147 -0
- package/specs/quiver-v35-compact-dashboard-version-ux/STATUS.md +33 -0
- package/specs/quiver-v35-compact-dashboard-version-ux/pr.md +106 -0
- package/specs/quiver-v35-compact-dashboard-version-ux/slices/slice-00-foundation-and-doc-router/CLOSURE_BRIEF.md +19 -0
- package/specs/quiver-v35-compact-dashboard-version-ux/slices/slice-00-foundation-and-doc-router/EXECUTION_BRIEF.md +38 -0
- package/specs/quiver-v35-compact-dashboard-version-ux/slices/slice-00-foundation-and-doc-router/slice.json +64 -0
- package/specs/quiver-v35-compact-dashboard-version-ux/slices/slice-01-dashboard-cli-contract/CLOSURE_BRIEF.md +19 -0
- package/specs/quiver-v35-compact-dashboard-version-ux/slices/slice-01-dashboard-cli-contract/EXECUTION_BRIEF.md +49 -0
- package/specs/quiver-v35-compact-dashboard-version-ux/slices/slice-01-dashboard-cli-contract/slice.json +80 -0
- package/specs/quiver-v35-compact-dashboard-version-ux/slices/slice-02-dashboard-compact-renderer/CLOSURE_BRIEF.md +19 -0
- package/specs/quiver-v35-compact-dashboard-version-ux/slices/slice-02-dashboard-compact-renderer/EXECUTION_BRIEF.md +48 -0
- package/specs/quiver-v35-compact-dashboard-version-ux/slices/slice-02-dashboard-compact-renderer/slice.json +73 -0
- package/specs/quiver-v35-compact-dashboard-version-ux/slices/slice-03-dashboard-details-sections/CLOSURE_BRIEF.md +19 -0
- package/specs/quiver-v35-compact-dashboard-version-ux/slices/slice-03-dashboard-details-sections/EXECUTION_BRIEF.md +48 -0
- package/specs/quiver-v35-compact-dashboard-version-ux/slices/slice-03-dashboard-details-sections/slice.json +72 -0
- package/specs/quiver-v35-compact-dashboard-version-ux/slices/slice-04-version-command/CLOSURE_BRIEF.md +19 -0
- package/specs/quiver-v35-compact-dashboard-version-ux/slices/slice-04-version-command/EXECUTION_BRIEF.md +49 -0
- package/specs/quiver-v35-compact-dashboard-version-ux/slices/slice-04-version-command/slice.json +82 -0
- package/specs/quiver-v35-compact-dashboard-version-ux/slices/slice-05-docs-help-generated-guidance/CLOSURE_BRIEF.md +19 -0
- package/specs/quiver-v35-compact-dashboard-version-ux/slices/slice-05-docs-help-generated-guidance/EXECUTION_BRIEF.md +50 -0
- package/specs/quiver-v35-compact-dashboard-version-ux/slices/slice-05-docs-help-generated-guidance/slice.json +90 -0
- package/specs/quiver-v35-compact-dashboard-version-ux/slices/slice-06-tests-smokes-release-readiness/CLOSURE_BRIEF.md +21 -0
- package/specs/quiver-v35-compact-dashboard-version-ux/slices/slice-06-tests-smokes-release-readiness/EXECUTION_BRIEF.md +51 -0
- package/specs/quiver-v35-compact-dashboard-version-ux/slices/slice-06-tests-smokes-release-readiness/slice.json +85 -0
- package/specs/quiver-v35-compact-dashboard-version-ux/slices/slice-07-package-and-cross-platform-smoke/CLOSURE_BRIEF.md +20 -0
- package/specs/quiver-v35-compact-dashboard-version-ux/slices/slice-07-package-and-cross-platform-smoke/EXECUTION_BRIEF.md +49 -0
- package/specs/quiver-v35-compact-dashboard-version-ux/slices/slice-07-package-and-cross-platform-smoke/slice.json +79 -0
- package/specs/quiver-v36-ai-run-watch-portable/EVIDENCE_REPORT.md +33 -0
- package/specs/quiver-v36-ai-run-watch-portable/EXECUTION_PLAN.md +39 -0
- package/specs/quiver-v36-ai-run-watch-portable/SPEC.md +166 -0
- package/specs/quiver-v36-ai-run-watch-portable/STATUS.md +31 -0
- package/specs/quiver-v36-ai-run-watch-portable/pr.md +78 -0
- package/specs/quiver-v36-ai-run-watch-portable/slices/slice-00-foundation-and-handoffs/CLOSURE_BRIEF.md +19 -0
- package/specs/quiver-v36-ai-run-watch-portable/slices/slice-00-foundation-and-handoffs/EXECUTION_BRIEF.md +43 -0
- package/specs/quiver-v36-ai-run-watch-portable/slices/slice-00-foundation-and-handoffs/slice.json +61 -0
- package/specs/quiver-v36-ai-run-watch-portable/slices/slice-01-run-schema-path-safety/CLOSURE_BRIEF.md +18 -0
- package/specs/quiver-v36-ai-run-watch-portable/slices/slice-01-run-schema-path-safety/EXECUTION_BRIEF.md +43 -0
- package/specs/quiver-v36-ai-run-watch-portable/slices/slice-01-run-schema-path-safety/slice.json +65 -0
- package/specs/quiver-v36-ai-run-watch-portable/slices/slice-02-event-writer-redacted-logs/CLOSURE_BRIEF.md +18 -0
- package/specs/quiver-v36-ai-run-watch-portable/slices/slice-02-event-writer-redacted-logs/EXECUTION_BRIEF.md +43 -0
- package/specs/quiver-v36-ai-run-watch-portable/slices/slice-02-event-writer-redacted-logs/slice.json +66 -0
- package/specs/quiver-v36-ai-run-watch-portable/slices/slice-03-provider-streaming-integration/CLOSURE_BRIEF.md +18 -0
- package/specs/quiver-v36-ai-run-watch-portable/slices/slice-03-provider-streaming-integration/EXECUTION_BRIEF.md +41 -0
- package/specs/quiver-v36-ai-run-watch-portable/slices/slice-03-provider-streaming-integration/slice.json +71 -0
- package/specs/quiver-v36-ai-run-watch-portable/slices/slice-04-ai-run-watch-command/CLOSURE_BRIEF.md +18 -0
- package/specs/quiver-v36-ai-run-watch-portable/slices/slice-04-ai-run-watch-command/EXECUTION_BRIEF.md +44 -0
- package/specs/quiver-v36-ai-run-watch-portable/slices/slice-04-ai-run-watch-command/slice.json +73 -0
- package/specs/quiver-v36-ai-run-watch-portable/slices/slice-05-main-progress-user-guidance/CLOSURE_BRIEF.md +18 -0
- package/specs/quiver-v36-ai-run-watch-portable/slices/slice-05-main-progress-user-guidance/EXECUTION_BRIEF.md +44 -0
- package/specs/quiver-v36-ai-run-watch-portable/slices/slice-05-main-progress-user-guidance/slice.json +71 -0
- package/specs/quiver-v36-ai-run-watch-portable/slices/slice-06-docs-generated-guidance/CLOSURE_BRIEF.md +19 -0
- package/specs/quiver-v36-ai-run-watch-portable/slices/slice-06-docs-generated-guidance/EXECUTION_BRIEF.md +45 -0
- package/specs/quiver-v36-ai-run-watch-portable/slices/slice-06-docs-generated-guidance/slice.json +77 -0
- package/specs/quiver-v36-ai-run-watch-portable/slices/slice-07-tests-cross-platform-readiness/CLOSURE_BRIEF.md +22 -0
- package/specs/quiver-v36-ai-run-watch-portable/slices/slice-07-tests-cross-platform-readiness/EXECUTION_BRIEF.md +46 -0
- package/specs/quiver-v36-ai-run-watch-portable/slices/slice-07-tests-cross-platform-readiness/slice.json +87 -0
- package/src/create-quiver/commands/ai.js +112 -12
- package/src/create-quiver/commands/dashboard.js +31 -0
- package/src/create-quiver/commands/flow.js +74 -12
- package/src/create-quiver/commands/spec.js +8 -1
- package/src/create-quiver/index.js +107 -4
- package/src/create-quiver/lib/ai/approval-candidates.js +86 -0
- package/src/create-quiver/lib/ai/plan-review.js +77 -1
- package/src/create-quiver/lib/ai/run-state.js +21 -4
- package/src/create-quiver/lib/approvals.js +103 -0
- package/src/create-quiver/lib/cli/ux-flags.js +6 -0
- package/src/create-quiver/lib/dashboard.js +896 -0
- package/src/create-quiver/lib/git.js +13 -4
- package/src/create-quiver/lib/init-docs.js +6 -0
- package/src/create-quiver/lib/init-layout.js +2 -0
- package/src/create-quiver/lib/paths.js +45 -3
- package/src/create-quiver/lib/project-state-resolver.js +22 -2
- package/src/create-quiver/lib/version.js +157 -0
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slice_id": "slice-06-workflow-surface-integration",
|
|
3
|
+
"ticket": "QUIVER-33-06",
|
|
4
|
+
"type": "feature",
|
|
5
|
+
"title": "Workflow surface integration",
|
|
6
|
+
"objective": "Use shared approval candidates across status, approval, flow, resume, and spec-create surfaces.",
|
|
7
|
+
"description": "Integrates the shared decision model into `ai approvals`, `flow`, `ai status`, `ai resume`, and `spec create --interactive` so every surface recommends the same safe next step.",
|
|
8
|
+
"git": {
|
|
9
|
+
"branch_type": "feature",
|
|
10
|
+
"base_branch": "main",
|
|
11
|
+
"branch_slug": "v33-workflow-surface-integration",
|
|
12
|
+
"branch_name": "feature/QUIVER-33-06-v33-workflow-surface-integration"
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"src/create-quiver/commands/ai.js",
|
|
16
|
+
"src/create-quiver/commands/flow.js",
|
|
17
|
+
"src/create-quiver/commands/spec.js",
|
|
18
|
+
"src/create-quiver/lib/ai/run-state.js",
|
|
19
|
+
"src/create-quiver/lib/approvals.js",
|
|
20
|
+
"tests/commands/ai-run-state.test.js",
|
|
21
|
+
"tests/commands/flow.test.js",
|
|
22
|
+
"tests/commands/spec-create.test.js"
|
|
23
|
+
],
|
|
24
|
+
"expected_read_paths": [
|
|
25
|
+
"src/create-quiver/commands/ai.js",
|
|
26
|
+
"src/create-quiver/commands/flow.js",
|
|
27
|
+
"src/create-quiver/commands/spec.js",
|
|
28
|
+
"src/create-quiver/lib/ai/run-state.js",
|
|
29
|
+
"src/create-quiver/lib/approvals.js",
|
|
30
|
+
"tests/commands/ai-run-state.test.js",
|
|
31
|
+
"tests/commands/flow.test.js",
|
|
32
|
+
"tests/commands/spec-create.test.js",
|
|
33
|
+
"SPEC.md"
|
|
34
|
+
],
|
|
35
|
+
"allowed_write_paths": [
|
|
36
|
+
"src/create-quiver/commands/ai.js",
|
|
37
|
+
"src/create-quiver/commands/flow.js",
|
|
38
|
+
"src/create-quiver/commands/spec.js",
|
|
39
|
+
"src/create-quiver/lib/ai/run-state.js",
|
|
40
|
+
"src/create-quiver/lib/approvals.js",
|
|
41
|
+
"tests/commands/ai-run-state.test.js",
|
|
42
|
+
"tests/commands/flow.test.js",
|
|
43
|
+
"tests/commands/spec-create.test.js",
|
|
44
|
+
"specs/quiver-v33-approval-ux-and-planner-progress/**"
|
|
45
|
+
],
|
|
46
|
+
"depends_on": [
|
|
47
|
+
"slice-01-approval-candidates-model",
|
|
48
|
+
"slice-02-approve-interactive-selection",
|
|
49
|
+
"slice-03-technical-plan-review-decision-data"
|
|
50
|
+
],
|
|
51
|
+
"parallel_safe": "no",
|
|
52
|
+
"parallel_safe_reason": "This slice touches multiple workflow surfaces and should land after core approval behavior is stable.",
|
|
53
|
+
"must": [
|
|
54
|
+
"Update `ai approvals` to use shared approval candidate data.",
|
|
55
|
+
"Update `flow` recommendations to avoid conflicting approval guidance.",
|
|
56
|
+
"Update `ai status` and `ai resume` next safe commands where approval selection applies.",
|
|
57
|
+
"Update `spec create --interactive` to show reviewed and approved technical-plan input using shared data.",
|
|
58
|
+
"Keep read-only/machine-readable surfaces free of prompts.",
|
|
59
|
+
"Avoid duplicating decision logic in each command."
|
|
60
|
+
],
|
|
61
|
+
"not_included": [
|
|
62
|
+
"Changing execution-plan logic.",
|
|
63
|
+
"Changing spec artifact generation semantics.",
|
|
64
|
+
"Adding new lifecycle phases unless unavoidable."
|
|
65
|
+
],
|
|
66
|
+
"acceptance": [
|
|
67
|
+
"`ai approvals` shows the same recommended approval version as `ai approve`.",
|
|
68
|
+
"`flow` recommends approval commands consistent with candidate state.",
|
|
69
|
+
"`ai status` and `ai resume` do not contradict `ai approvals`.",
|
|
70
|
+
"`spec create --interactive` identifies the reviewed and approved technical plan clearly.",
|
|
71
|
+
"JSON and read-only commands remain prompt-free.",
|
|
72
|
+
"Tests cover drift-prone states."
|
|
73
|
+
],
|
|
74
|
+
"tests": [
|
|
75
|
+
"node --test tests/commands/ai-run-state.test.js tests/commands/flow.test.js tests/commands/spec-create.test.js tests/commands/ai-review-plan.test.js",
|
|
76
|
+
"git diff --check"
|
|
77
|
+
],
|
|
78
|
+
"validation_hints": [
|
|
79
|
+
"Prefer one shared formatting/data helper over duplicated command-specific state checks.",
|
|
80
|
+
"Keep command output stable enough for existing tests unless the visible contract intentionally changes."
|
|
81
|
+
],
|
|
82
|
+
"estimated_hours": 8,
|
|
83
|
+
"status": "completed",
|
|
84
|
+
"blocked_reason": null,
|
|
85
|
+
"actual_hours": 8,
|
|
86
|
+
"completed_at": "2026-05-28"
|
|
87
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# CLOSURE_BRIEF - slice-07 Docs, tests, and release readiness
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
|
|
5
|
+
Completed docs, template alignment, full test validation, smokes, package readiness, evidence, status metadata, and PR body updates for v33.
|
|
6
|
+
|
|
7
|
+
## Validation
|
|
8
|
+
|
|
9
|
+
- [x] Docs are aligned.
|
|
10
|
+
- [x] Full tests pass.
|
|
11
|
+
- [x] Smokes pass.
|
|
12
|
+
- [x] Evidence and PR body are updated.
|
|
13
|
+
|
|
14
|
+
## Pending
|
|
15
|
+
|
|
16
|
+
- None.
|
|
17
|
+
|
|
18
|
+
## Remaining Risks
|
|
19
|
+
|
|
20
|
+
- None critical.
|
|
21
|
+
- This slice does not claim npm publication.
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# EXECUTION_BRIEF - slice-07 Docs, tests, and release readiness
|
|
2
|
+
|
|
3
|
+
## Context
|
|
4
|
+
|
|
5
|
+
This slice closes the spec after implementation slices land. It synchronizes documentation, evidence, and PR readiness.
|
|
6
|
+
|
|
7
|
+
## Objective
|
|
8
|
+
|
|
9
|
+
Update docs and evidence, run validation, and prepare the PR for review without claiming package publication.
|
|
10
|
+
|
|
11
|
+
## Scope
|
|
12
|
+
|
|
13
|
+
- `docs/CLI_UX_GUIDE.md`
|
|
14
|
+
- `docs/reference/commands.md`
|
|
15
|
+
- `README_FOR_AI.md`
|
|
16
|
+
- generated docs templates if affected
|
|
17
|
+
- changelog/roadmap if local release process requires it
|
|
18
|
+
- spec evidence and closure docs
|
|
19
|
+
|
|
20
|
+
## Acceptance Criteria
|
|
21
|
+
|
|
22
|
+
- Public and AI-facing docs match implemented behavior.
|
|
23
|
+
- Generated templates match command guidance.
|
|
24
|
+
- Focused and full tests pass or blockers are explicit.
|
|
25
|
+
- Smoke/package readiness evidence is recorded.
|
|
26
|
+
- Spec status and PR body are updated.
|
|
27
|
+
|
|
28
|
+
## Technical Plan Summary
|
|
29
|
+
|
|
30
|
+
Close documentation after behavior is real. Run focused tests first, then full suite and smokes.
|
|
31
|
+
|
|
32
|
+
## Suggested Steps
|
|
33
|
+
|
|
34
|
+
1. Update docs and templates.
|
|
35
|
+
2. Run focused command tests.
|
|
36
|
+
3. Run full tests and smokes.
|
|
37
|
+
4. Update evidence and status.
|
|
38
|
+
5. Update PR body.
|
|
39
|
+
|
|
40
|
+
## Restrictions
|
|
41
|
+
|
|
42
|
+
- Do not claim npm publication.
|
|
43
|
+
- Do not introduce new behavior beyond documentation/test closure.
|
|
44
|
+
|
|
45
|
+
## Risks
|
|
46
|
+
|
|
47
|
+
- Full smokes can be slow or environment-sensitive; record exact blockers if any fail.
|
|
48
|
+
|
|
49
|
+
## Completion Checklist
|
|
50
|
+
|
|
51
|
+
- [ ] Docs updated.
|
|
52
|
+
- [ ] Focused tests run.
|
|
53
|
+
- [ ] Full tests/smokes run or blockers recorded.
|
|
54
|
+
- [ ] Evidence report updated.
|
|
55
|
+
- [ ] PR body ready.
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slice_id": "slice-07-docs-tests-release-readiness",
|
|
3
|
+
"ticket": "QUIVER-33-07",
|
|
4
|
+
"type": "docs",
|
|
5
|
+
"title": "Docs, tests, and release readiness",
|
|
6
|
+
"objective": "Close documentation, regression coverage, smoke validation, and release readiness for v33.",
|
|
7
|
+
"description": "Updates public and AI-facing docs after implementation, runs full tests and smokes, records evidence, and prepares the PR for review.",
|
|
8
|
+
"git": {
|
|
9
|
+
"branch_type": "feature",
|
|
10
|
+
"base_branch": "main",
|
|
11
|
+
"branch_slug": "v33-docs-tests-release-readiness",
|
|
12
|
+
"branch_name": "feature/QUIVER-33-07-v33-docs-tests-release-readiness"
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"README_FOR_AI.md",
|
|
16
|
+
"docs/CLI_UX_GUIDE.md",
|
|
17
|
+
"docs/reference/commands.md",
|
|
18
|
+
"docs/COMMANDS.md.template",
|
|
19
|
+
"docs/AI_ONBOARDING_PROMPT.md.template",
|
|
20
|
+
"CHANGELOG.md",
|
|
21
|
+
"ROADMAP.md",
|
|
22
|
+
"specs/quiver-v33-approval-ux-and-planner-progress/**"
|
|
23
|
+
],
|
|
24
|
+
"expected_read_paths": [
|
|
25
|
+
"README_FOR_AI.md",
|
|
26
|
+
"README.md",
|
|
27
|
+
"docs/CLI_UX_GUIDE.md",
|
|
28
|
+
"docs/reference/commands.md",
|
|
29
|
+
"docs/COMMANDS.md.template",
|
|
30
|
+
"docs/AI_ONBOARDING_PROMPT.md.template",
|
|
31
|
+
"CHANGELOG.md",
|
|
32
|
+
"ROADMAP.md",
|
|
33
|
+
"SPEC.md",
|
|
34
|
+
"EVIDENCE_REPORT.md"
|
|
35
|
+
],
|
|
36
|
+
"allowed_write_paths": [
|
|
37
|
+
"README_FOR_AI.md",
|
|
38
|
+
"README.md",
|
|
39
|
+
"docs/CLI_UX_GUIDE.md",
|
|
40
|
+
"docs/reference/commands.md",
|
|
41
|
+
"docs/COMMANDS.md.template",
|
|
42
|
+
"docs/AI_ONBOARDING_PROMPT.md.template",
|
|
43
|
+
"CHANGELOG.md",
|
|
44
|
+
"ROADMAP.md",
|
|
45
|
+
"specs/quiver-v33-approval-ux-and-planner-progress/**"
|
|
46
|
+
],
|
|
47
|
+
"depends_on": [
|
|
48
|
+
"slice-02-approve-interactive-selection",
|
|
49
|
+
"slice-03-technical-plan-review-decision-data",
|
|
50
|
+
"slice-04-revise-input-guardrails",
|
|
51
|
+
"slice-05-provider-progress-alignment",
|
|
52
|
+
"slice-06-workflow-surface-integration"
|
|
53
|
+
],
|
|
54
|
+
"parallel_safe": "no",
|
|
55
|
+
"parallel_safe_reason": "Final docs, tests, smoke evidence, and release readiness must close after all implementation slices.",
|
|
56
|
+
"must": [
|
|
57
|
+
"Update CLI UX and command reference docs for approval selectors, revise guardrails, and progress behavior.",
|
|
58
|
+
"Update README_FOR_AI source-of-truth notes.",
|
|
59
|
+
"Update generated templates if command guidance changes.",
|
|
60
|
+
"Run focused tests and full test suite.",
|
|
61
|
+
"Run smoke commands and package readiness checks where feasible.",
|
|
62
|
+
"Update STATUS.md, EVIDENCE_REPORT.md, CLOSURE_BRIEF.md files, and pr.md with final evidence.",
|
|
63
|
+
"Avoid claiming package publication until it actually happens."
|
|
64
|
+
],
|
|
65
|
+
"not_included": [
|
|
66
|
+
"New product behavior beyond closing docs/tests.",
|
|
67
|
+
"Actual npm publication.",
|
|
68
|
+
"Post-merge cleanup."
|
|
69
|
+
],
|
|
70
|
+
"acceptance": [
|
|
71
|
+
"Docs describe TTY approval selection and no-TTY explicit version behavior.",
|
|
72
|
+
"Docs describe planner progress behavior without implying prompts are mandatory.",
|
|
73
|
+
"Generated templates remain aligned.",
|
|
74
|
+
"Focused tests for every changed command pass.",
|
|
75
|
+
"Full test suite passes or documented blockers are explicit.",
|
|
76
|
+
"Smoke/package readiness evidence is recorded.",
|
|
77
|
+
"Spec status and PR body are updated."
|
|
78
|
+
],
|
|
79
|
+
"tests": [
|
|
80
|
+
"node --test tests/**/*.test.js",
|
|
81
|
+
"npm run smoke:create-quiver",
|
|
82
|
+
"npm run smoke:doctor-fixtures",
|
|
83
|
+
"npm run smoke:guided-workflow",
|
|
84
|
+
"npm run package:quiver",
|
|
85
|
+
"git diff --check",
|
|
86
|
+
"node bin/create-quiver.js spec validate specs/quiver-v33-approval-ux-and-planner-progress"
|
|
87
|
+
],
|
|
88
|
+
"validation_hints": [
|
|
89
|
+
"If package smoke is too slow or blocked, record the exact blocker and run the maximal focused test subset.",
|
|
90
|
+
"Do not claim npm release or latest package availability."
|
|
91
|
+
],
|
|
92
|
+
"estimated_hours": 6,
|
|
93
|
+
"status": "completed",
|
|
94
|
+
"blocked_reason": null,
|
|
95
|
+
"actual_hours": 6,
|
|
96
|
+
"completed_at": "2026-05-28"
|
|
97
|
+
}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
# Evidence Report - Quiver v34 CLI Dashboard Status
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
|
|
5
|
+
This report records implementation and validation evidence for the v34 CLI dashboard slices.
|
|
6
|
+
|
|
7
|
+
## slice-00 - Dashboard foundation
|
|
8
|
+
|
|
9
|
+
### Completed
|
|
10
|
+
|
|
11
|
+
- Created v34 spec package with `SPEC.md`, `STATUS.md`, `EXECUTION_PLAN.md`, `EVIDENCE_REPORT.md`, and `pr.md`.
|
|
12
|
+
- Created 6 slice folders with `slice.json`, `EXECUTION_BRIEF.md`, and `CLOSURE_BRIEF.md`.
|
|
13
|
+
- Captured approved acceptance criteria, production review fixes, revised technical plan, slice roadmap, and validation strategy.
|
|
14
|
+
|
|
15
|
+
### Validation
|
|
16
|
+
|
|
17
|
+
- `find specs/quiver-v34-cli-dashboard-status -name 'slice.json' -print -exec node -e "JSON.parse(require('fs').readFileSync(process.argv[1], 'utf8')); console.log('ok', process.argv[1])" {} \;` passed for 6 slice files.
|
|
18
|
+
- `node bin/create-quiver.js spec validate specs/quiver-v34-cli-dashboard-status` passed and reported 6 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
|
+
- A parked backlog entry exists for a local web console, but this spec is intentionally CLI-only and read-only.
|
|
25
|
+
- `ROADMAP.md` lists `create-quiver status dashboard` as polish debt; this spec chooses `dashboard` to avoid ambiguity with `ai status`.
|
|
26
|
+
|
|
27
|
+
## slice-01 - Dashboard report contract
|
|
28
|
+
|
|
29
|
+
### Completed
|
|
30
|
+
|
|
31
|
+
- Added `src/create-quiver/lib/dashboard.js`.
|
|
32
|
+
- Defined `dashboard_schema_version: 1`.
|
|
33
|
+
- Added compact report fields for summary, global progress, visible progress, specs, slices, next-ready work, blockers, warnings, agents, approvals, active-slice state, runs, evidence counts, graph state, and next safe commands.
|
|
34
|
+
- Preserved evidence/log secrecy by exposing counts and slice refs only.
|
|
35
|
+
- Added graph-cycle tolerance by fixing `allowGraphErrors` handling in `project-state-resolver`.
|
|
36
|
+
|
|
37
|
+
### Validation
|
|
38
|
+
|
|
39
|
+
- `node --test tests/lib/dashboard.test.js` passed.
|
|
40
|
+
- Full `node --test` passed and covered `tests/lib/ai-export-state.test.js` plus existing AI export behavior.
|
|
41
|
+
- `git diff --check` passed.
|
|
42
|
+
|
|
43
|
+
## slice-02 - Dashboard command and rendering
|
|
44
|
+
|
|
45
|
+
### Completed
|
|
46
|
+
|
|
47
|
+
- Added `src/create-quiver/commands/dashboard.js`.
|
|
48
|
+
- Added top-level `dashboard` routing, help grouping, usage, examples, and exports.
|
|
49
|
+
- Added human dashboard output and clean JSON mode.
|
|
50
|
+
- Added `dashboard` to the UX flag matrix as a read-only command.
|
|
51
|
+
- Added CLI tests for human output, JSON output, `--spec`, `--include-completed`, missing spec JSON failure, and graph-error output.
|
|
52
|
+
|
|
53
|
+
### Validation
|
|
54
|
+
|
|
55
|
+
- `node --test tests/commands/dashboard.test.js` passed.
|
|
56
|
+
- `node --test tests/commands/cli-contract.test.js tests/commands/ux-flags.test.js` passed.
|
|
57
|
+
- `git diff --check` passed.
|
|
58
|
+
|
|
59
|
+
## slice-03 - Dashboard edge cases and guardrails
|
|
60
|
+
|
|
61
|
+
### Completed
|
|
62
|
+
|
|
63
|
+
- Explicit missing `--spec` returns an actionable error; JSON mode returns parseable schema v1 error output and non-zero exit.
|
|
64
|
+
- Zero-slice specs produce a useful dashboard with `NO_VISIBLE_SLICES`.
|
|
65
|
+
- Graph cycles produce warnings/blockers without crashing dashboard output.
|
|
66
|
+
- Legacy/incomplete layout warnings are surfaced from existing layout diagnostics.
|
|
67
|
+
- Evidence summaries expose only counts and slice refs.
|
|
68
|
+
|
|
69
|
+
### Validation
|
|
70
|
+
|
|
71
|
+
- `node --test tests/lib/dashboard.test.js tests/commands/dashboard.test.js` passed.
|
|
72
|
+
- Full `node --test` passed.
|
|
73
|
+
- `node bin/create-quiver.js dashboard --json --spec quiver-v34-cli-dashboard-status` passed against this repository.
|
|
74
|
+
- `git diff --check` passed.
|
|
75
|
+
|
|
76
|
+
## slice-04 - Docs, templates, and scripts
|
|
77
|
+
|
|
78
|
+
### Completed
|
|
79
|
+
|
|
80
|
+
- Updated `README.md`, `README_FOR_AI.md`, `docs/CLI_UX_GUIDE.md`, and `docs/reference/commands.md`.
|
|
81
|
+
- Updated generated command/workflow templates for `dashboard`.
|
|
82
|
+
- Added root and generated `quiver:dashboard` scripts.
|
|
83
|
+
- Updated init docs and generated script tests.
|
|
84
|
+
|
|
85
|
+
### Validation
|
|
86
|
+
|
|
87
|
+
- `node --test tests/lib/init-docs.test.js tests/lib/init-layout.test.js` passed.
|
|
88
|
+
- `node --test tests/commands/cli-contract.test.js` passed.
|
|
89
|
+
- Full `node --test` passed.
|
|
90
|
+
- `git diff --check` passed.
|
|
91
|
+
|
|
92
|
+
## slice-05 - Tests, smokes, and release readiness
|
|
93
|
+
|
|
94
|
+
### Completed
|
|
95
|
+
|
|
96
|
+
- Ran focused dashboard, CLI contract, UX flag, generated docs/script tests.
|
|
97
|
+
- Ran full test suite.
|
|
98
|
+
- Ran required smokes and package smoke.
|
|
99
|
+
- Updated slice closure briefs, `STATUS.md`, this evidence report, slice metadata, and `pr.md`.
|
|
100
|
+
|
|
101
|
+
### Validation
|
|
102
|
+
|
|
103
|
+
- `node --test tests/lib/dashboard.test.js tests/commands/dashboard.test.js tests/commands/cli-contract.test.js tests/commands/ux-flags.test.js tests/lib/init-layout.test.js tests/lib/init-docs.test.js` passed: 45 tests.
|
|
104
|
+
- `node --test` passed: 511 tests.
|
|
105
|
+
- `npm run smoke:create-quiver` passed.
|
|
106
|
+
- `npm run smoke:doctor-fixtures` passed: 13 states.
|
|
107
|
+
- `npm run smoke:guided-workflow` passed, including package smoke.
|
|
108
|
+
- `npm run package:quiver` passed: `create-quiver-0.15.2.tgz`.
|
|
109
|
+
- `node bin/create-quiver.js dashboard --json --spec quiver-v34-cli-dashboard-status` passed.
|
|
110
|
+
- `find specs/quiver-v34-cli-dashboard-status -name 'slice.json' -print -exec node -e "JSON.parse(require('fs').readFileSync(process.argv[1], 'utf8')); console.log('ok', process.argv[1])" {} \;` passed for 6 slice files.
|
|
111
|
+
- `git diff --check` passed.
|
|
112
|
+
- `node bin/create-quiver.js spec validate specs/quiver-v34-cli-dashboard-status` passed.
|
|
113
|
+
|
|
114
|
+
## Final Notes
|
|
115
|
+
|
|
116
|
+
- No provider credentials were required.
|
|
117
|
+
- No GitHub credentials were required.
|
|
118
|
+
- No npm publication was performed.
|
|
119
|
+
- The repository still reports a legacy-layout warning in dashboard output; this is pre-existing project state and not caused by v34.
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# Execution Plan - Quiver v34 CLI Dashboard Status
|
|
2
|
+
|
|
3
|
+
## Execution Order
|
|
4
|
+
|
|
5
|
+
```mermaid
|
|
6
|
+
flowchart TD
|
|
7
|
+
S00[slice-00: Dashboard foundation]
|
|
8
|
+
S01[slice-01: Dashboard report contract]
|
|
9
|
+
S02[slice-02: Dashboard command and rendering]
|
|
10
|
+
S03[slice-03: Edge cases and guardrails]
|
|
11
|
+
S04[slice-04: Docs, templates, and scripts]
|
|
12
|
+
S05[slice-05: Tests, smokes, and release readiness]
|
|
13
|
+
|
|
14
|
+
S00 --> S01
|
|
15
|
+
S01 --> S02
|
|
16
|
+
S01 --> S03
|
|
17
|
+
S02 --> S03
|
|
18
|
+
S02 --> S04
|
|
19
|
+
S03 --> S04
|
|
20
|
+
S03 --> S05
|
|
21
|
+
S04 --> S05
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Waves
|
|
25
|
+
|
|
26
|
+
### Wave 0 - Foundation
|
|
27
|
+
|
|
28
|
+
1. `slice-00-dashboard-foundation`
|
|
29
|
+
|
|
30
|
+
This slice publishes the approved spec package and does not change product code.
|
|
31
|
+
|
|
32
|
+
### Wave 1 - Report Contract
|
|
33
|
+
|
|
34
|
+
1. `slice-01-dashboard-report-contract`
|
|
35
|
+
|
|
36
|
+
Build the dashboard data contract before adding a public command.
|
|
37
|
+
|
|
38
|
+
### Wave 2 - Public Command
|
|
39
|
+
|
|
40
|
+
1. `slice-02-dashboard-command-rendering`
|
|
41
|
+
|
|
42
|
+
Expose the report through `npx create-quiver dashboard` with human and JSON output.
|
|
43
|
+
|
|
44
|
+
### Wave 3 - Hardening
|
|
45
|
+
|
|
46
|
+
1. `slice-03-dashboard-edge-cases-and-guardrails`
|
|
47
|
+
|
|
48
|
+
Harden missing specs, graph failures, layout states, no-spec projects, blockers, no-color/CI/no-TTY, and sensitive summaries after the command path exists.
|
|
49
|
+
|
|
50
|
+
### Wave 4 - Docs
|
|
51
|
+
|
|
52
|
+
1. `slice-04-docs-templates-and-scripts`
|
|
53
|
+
|
|
54
|
+
Document the command and generated `quiver:dashboard` script after the command contract stabilizes.
|
|
55
|
+
|
|
56
|
+
### Wave 5 - Close
|
|
57
|
+
|
|
58
|
+
1. `slice-05-tests-smokes-release-readiness`
|
|
59
|
+
|
|
60
|
+
Run full validation, update evidence, close slice metadata, and prepare the PR body.
|
|
61
|
+
|
|
62
|
+
## Parallel Safety Notes
|
|
63
|
+
|
|
64
|
+
- Do not implement `slice-02` before `slice-01`; the command must consume a stable report contract.
|
|
65
|
+
- `slice-03` should follow `slice-02` so guardrails can test both model and command behavior.
|
|
66
|
+
- `slice-04` should wait until command flags and output shape are stable.
|
|
67
|
+
- `slice-05` is never parallel-safe because it closes docs, evidence, smokes, and readiness state.
|
|
68
|
+
- Keep JSON cleanliness validated at every implementation slice, not only at final release readiness.
|
|
69
|
+
|
|
70
|
+
## Recommended Commit Order
|
|
71
|
+
|
|
72
|
+
1. `docs: add v34 cli dashboard spec`
|
|
73
|
+
2. `feat: add dashboard report contract`
|
|
74
|
+
3. `feat: add dashboard command rendering`
|
|
75
|
+
4. `fix: harden dashboard edge cases`
|
|
76
|
+
5. `docs: document dashboard command`
|
|
77
|
+
6. `test: close dashboard release readiness`
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
# Quiver v34 - CLI Dashboard Status
|
|
2
|
+
|
|
3
|
+
**Date:** 2026-05-28
|
|
4
|
+
**Status:** Planned
|
|
5
|
+
**Source:** User-approved acceptance criteria and production review for a read-only CLI dashboard that visualizes Quiver project state.
|
|
6
|
+
|
|
7
|
+
Slice numbering resets here. This spec intentionally starts at `slice-00`.
|
|
8
|
+
|
|
9
|
+
## Problem
|
|
10
|
+
|
|
11
|
+
Quiver exposes useful state through `flow`, `plan`, `next`, `ai export`, `ai specs list`, and `ai slices list`, but users still need to combine several commands to understand the whole project at a glance.
|
|
12
|
+
|
|
13
|
+
The gap is especially visible when deciding what to do next:
|
|
14
|
+
|
|
15
|
+
- spec and slice progress are spread across multiple surfaces;
|
|
16
|
+
- blockers, warnings, migration guidance, approvals, agents, active-slice state, runs, and evidence are not shown together;
|
|
17
|
+
- machine-readable export exists, but there is no compact human dashboard optimized for quick project status;
|
|
18
|
+
- a future dashboard must avoid duplicating Quiver state or creating a second source of truth.
|
|
19
|
+
|
|
20
|
+
## Objective
|
|
21
|
+
|
|
22
|
+
Add a read-only CLI dashboard that shows the complete actionable state of a Quiver project without using Ink, a web console, providers, prompts, or writes.
|
|
23
|
+
|
|
24
|
+
The dashboard should answer:
|
|
25
|
+
|
|
26
|
+
- What is the current project state?
|
|
27
|
+
- How many specs and slices exist?
|
|
28
|
+
- What is complete, open, ready, or blocked?
|
|
29
|
+
- What is the next ready slice?
|
|
30
|
+
- What blockers, warnings, approvals, active-slice issues, agent gaps, runs, and evidence exist?
|
|
31
|
+
- What safe commands should the user run next?
|
|
32
|
+
|
|
33
|
+
## Scope
|
|
34
|
+
|
|
35
|
+
### Included
|
|
36
|
+
|
|
37
|
+
- New top-level command: `npx create-quiver dashboard`.
|
|
38
|
+
- `dashboard --json` with a compact stable schema.
|
|
39
|
+
- `dashboard --spec <slug>` filter.
|
|
40
|
+
- `dashboard --include-completed`.
|
|
41
|
+
- Human output that follows `docs/CLI_UX_GUIDE.md`.
|
|
42
|
+
- Distinct global progress and visible progress.
|
|
43
|
+
- Tolerant behavior for legacy, incomplete, uninitialized, no-spec, no-slice, and graph-error states.
|
|
44
|
+
- No evidence/log content in human or compact JSON output.
|
|
45
|
+
- Generated `quiver:dashboard` npm script.
|
|
46
|
+
- Documentation, tests, smokes, and release-readiness evidence.
|
|
47
|
+
|
|
48
|
+
### Excluded
|
|
49
|
+
|
|
50
|
+
- Ink or fullscreen TUI.
|
|
51
|
+
- Browser/web console.
|
|
52
|
+
- Local server.
|
|
53
|
+
- Interactive navigation.
|
|
54
|
+
- Diff viewer.
|
|
55
|
+
- Starting slices from the dashboard.
|
|
56
|
+
- Creating specs, opening PRs, discarding changes, running providers, or writing project state.
|
|
57
|
+
- Changing WDD + SDD semantics.
|
|
58
|
+
|
|
59
|
+
## Approved Acceptance Criteria
|
|
60
|
+
|
|
61
|
+
### Read-only dashboard behavior
|
|
62
|
+
|
|
63
|
+
1. Given a project with Quiver, when the user runs `npx create-quiver dashboard`, then Quiver prints a consolidated read-only dashboard and does not modify files, run providers, open prompts, create worktrees, start slices, or create PRs.
|
|
64
|
+
2. Given specs and slices exist, when the dashboard renders, then it shows spec count, slice count, completed slices, open slices, blocked slices, ready slices, and progress.
|
|
65
|
+
3. Given completed slices are hidden from visible work by default, when the dashboard renders, then it still shows correct global progress across all slices and separately shows visible progress for the current filter.
|
|
66
|
+
4. Given `--include-completed` is passed, then visible progress and visible slice sections include completed slices.
|
|
67
|
+
5. Given `--spec <slug>` is passed, then visible dashboard sections are limited to that spec while global project context remains clear.
|
|
68
|
+
6. Given `--spec <slug>` is passed for a missing spec, then the command fails with actionable guidance instead of silently showing an empty dashboard.
|
|
69
|
+
|
|
70
|
+
### Next ready work and blockers
|
|
71
|
+
|
|
72
|
+
7. Given at least one slice is ready, when the dashboard renders, then it shows the recommended next slice with spec slug, slice id, title, status, path, and start command.
|
|
73
|
+
8. Given multiple slices are ready, then the dashboard shows the recommended first slice and indicates that more ready slices exist.
|
|
74
|
+
9. Given blockers or warnings exist, then the dashboard shows their refs, reasons, and next commands where available.
|
|
75
|
+
10. Given the slice graph is invalid, then the dashboard does not crash; it reports the graph issue and still renders the rest of the available state.
|
|
76
|
+
|
|
77
|
+
### Workflow state
|
|
78
|
+
|
|
79
|
+
11. Given planner approvals exist or are missing, then the dashboard shows `acceptance`, `technical-plan`, and `plan-review` status.
|
|
80
|
+
12. Given agent profiles exist or are missing, then the dashboard shows planner, executor, reviewer, and doctor configuration without exposing credentials or secrets.
|
|
81
|
+
13. Given active-slice state exists, then the dashboard shows active-slice sources, reconciliation decision, reason, and risks if any.
|
|
82
|
+
14. Given runs or evidence exist, then the dashboard shows counts and refs only, not raw logs, command output, or evidence contents.
|
|
83
|
+
|
|
84
|
+
### Output contracts
|
|
85
|
+
|
|
86
|
+
15. Given `dashboard --json`, then stdout is parseable JSON with no colors, prompts, spinners, or human prose.
|
|
87
|
+
16. Given `dashboard --json`, then the payload uses `dashboard_schema_version: 1` and includes `summary`, `global_progress`, `visible_progress`, `next_ready`, `specs`, `slices`, `agents`, `approvals`, `active_slice`, `blockers`, `warnings`, and `next_steps`.
|
|
88
|
+
17. Given human output, then it follows the Quiver CLI UX standard: clear hierarchy, next safe commands, no color-only status, ASCII/no-color fallback, and no prompts.
|
|
89
|
+
18. Given unsupported UX flags such as `--interactive`, `--review`, or `--with-planner` are passed, then Quiver rejects them through the existing UX flag guardrails.
|
|
90
|
+
|
|
91
|
+
### Documentation and validation
|
|
92
|
+
|
|
93
|
+
19. Given the command is public, then README, `README_FOR_AI.md`, command reference, CLI UX guide, generated templates, and package scripts are updated.
|
|
94
|
+
20. Given implementation is complete, then tests cover human output, JSON cleanliness, `--spec`, missing spec, `--include-completed`, no specs, graph errors, legacy/incomplete layout, agent gaps, blockers, no-color, CI/no-TTY, and no evidence/log leakage.
|
|
95
|
+
21. Given every slice is created, then each slice has `slice.json`, `EXECUTION_BRIEF.md`, and `CLOSURE_BRIEF.md`.
|
|
96
|
+
|
|
97
|
+
## Approved Technical Plan
|
|
98
|
+
|
|
99
|
+
1. Inventory the current state surfaces and tests before implementation.
|
|
100
|
+
2. Add a dashboard report contract that consumes existing state from `collectLifecycleExport()` and related internal helpers without shelling out to the CLI.
|
|
101
|
+
3. Calculate `global_progress` from all slices and `visible_progress` from filtered visible slices.
|
|
102
|
+
4. Derive `next_ready` from graph/plan state when the graph is valid; degrade safely with a warning when graph state is invalid.
|
|
103
|
+
5. Define a compact JSON schema with `dashboard_schema_version: 1`; do not return the full lifecycle export from `dashboard --json`.
|
|
104
|
+
6. Add human formatting with existing Quiver UX/theme helpers and no prompt/spinner behavior.
|
|
105
|
+
7. Add top-level `dashboard` routing, help text, examples, and UX-flag support matrix behavior.
|
|
106
|
+
8. Add `quiver:dashboard` to generated project scripts and docs.
|
|
107
|
+
9. Add focused tests for report construction, command output, JSON cleanliness, filters, missing specs, graph errors, legacy/no-spec states, no-color/CI/no-TTY, and secret-safe evidence summaries.
|
|
108
|
+
10. Update docs, templates, smoke coverage, PR body, status, and evidence only after command contract is stable.
|
|
109
|
+
|
|
110
|
+
## Slice Roadmap
|
|
111
|
+
|
|
112
|
+
| Slice | Title | Status | Dependencies |
|
|
113
|
+
|---|---|---|---|
|
|
114
|
+
| slice-00 | Dashboard foundation | completed | none |
|
|
115
|
+
| slice-01 | Dashboard report contract | ready | slice-00 |
|
|
116
|
+
| slice-02 | Dashboard command and rendering | planned | slice-01 |
|
|
117
|
+
| slice-03 | Dashboard edge cases and guardrails | planned | slice-01, slice-02 |
|
|
118
|
+
| slice-04 | Docs, templates, and scripts | planned | slice-02, slice-03 |
|
|
119
|
+
| slice-05 | Tests, smokes, and release readiness | planned | slice-03, slice-04 |
|
|
120
|
+
|
|
121
|
+
## Validation Strategy
|
|
122
|
+
|
|
123
|
+
- `node --test tests/lib/dashboard.test.js`
|
|
124
|
+
- `node --test tests/commands/dashboard.test.js`
|
|
125
|
+
- `node --test tests/commands/cli-contract.test.js tests/commands/ux-flags.test.js`
|
|
126
|
+
- `node --test tests/lib/ai-export-state.test.js tests/commands/ai-export.test.js`
|
|
127
|
+
- `node --test tests/lib/init-docs.test.js tests/lib/init-layout.test.js`
|
|
128
|
+
- `node --test tests/**/*.test.js`
|
|
129
|
+
- `npm run smoke:create-quiver`
|
|
130
|
+
- `npm run smoke:doctor-fixtures`
|
|
131
|
+
- `npm run smoke:guided-workflow`
|
|
132
|
+
- `npm run package:quiver`
|
|
133
|
+
- `git diff --check`
|
|
134
|
+
- `node bin/create-quiver.js spec validate specs/quiver-v34-cli-dashboard-status`
|
|
135
|
+
|
|
136
|
+
## Risks
|
|
137
|
+
|
|
138
|
+
- Progress can be misleading if visible filters hide completed slices; global and visible progress must remain distinct.
|
|
139
|
+
- A dashboard can become another source of truth if it rebuilds state independently; reuse existing resolver/export state.
|
|
140
|
+
- Graph errors can break naive `next_ready` logic; the dashboard must degrade safely.
|
|
141
|
+
- A missing `--spec` filter can hide typos if empty output is treated as success.
|
|
142
|
+
- Evidence and runs can contain sensitive command output; the dashboard must summarize counts and refs only.
|
|
143
|
+
- Human formatting can contaminate JSON if output paths are not tested separately.
|
|
144
|
+
|
|
145
|
+
## Resolved Decisions
|
|
146
|
+
|
|
147
|
+
- Use `dashboard`, not top-level `status`, to avoid ambiguity with `ai status`.
|
|
148
|
+
- Do not use Ink for the MVP.
|
|
149
|
+
- Do not add interactive behavior in this spec.
|
|
150
|
+
- Do not add write actions from the dashboard.
|
|
151
|
+
- `dashboard --json` has a compact schema, not the full `ai export` schema.
|
|
152
|
+
- The command must be useful in legacy and incomplete layouts.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Status - Quiver v34 CLI Dashboard Status
|
|
2
|
+
|
|
3
|
+
**Overall status:** Completed
|
|
4
|
+
**Created:** 2026-05-28
|
|
5
|
+
**Completed:** 2026-05-28
|
|
6
|
+
**Current slice:** All slices completed
|
|
7
|
+
|
|
8
|
+
## Summary
|
|
9
|
+
|
|
10
|
+
This spec added a read-only CLI dashboard for Quiver project state. The dashboard consolidates specs, slices, progress, blockers, warnings, approvals, agents, active-slice state, runs, evidence counts, and next safe commands without introducing Ink, prompts, providers, writes, or a second source of truth.
|
|
11
|
+
|
|
12
|
+
## Slice Status
|
|
13
|
+
|
|
14
|
+
| Slice | Status | Notes |
|
|
15
|
+
|---|---|---|
|
|
16
|
+
| slice-00-dashboard-foundation | Completed | Spec package, execution plan, PR body, evidence skeleton, and slice briefs created. |
|
|
17
|
+
| slice-01-dashboard-report-contract | Completed | Added compact schema v1 report with global/visible progress, next-ready state, summaries, and evidence redaction. |
|
|
18
|
+
| slice-02-dashboard-command-rendering | Completed | Added top-level command routing, help, human rendering, JSON output, and UX guardrails. |
|
|
19
|
+
| slice-03-dashboard-edge-cases-and-guardrails | Completed | Hardened missing specs, zero-slice specs, graph cycles, JSON failure output, and evidence leakage. |
|
|
20
|
+
| slice-04-docs-templates-and-scripts | Completed | Updated public docs, generated templates, init docs, package scripts, and generated script tests. |
|
|
21
|
+
| slice-05-tests-smokes-release-readiness | Completed | Completed focused tests, full tests, smokes, package smoke, spec validation, and evidence closure. |
|
|
22
|
+
|
|
23
|
+
## Current Blockers
|
|
24
|
+
|
|
25
|
+
- None.
|
|
26
|
+
|
|
27
|
+
## Next Step
|
|
28
|
+
|
|
29
|
+
Open review/PR and package publication only after normal release approval. npm publication was not performed in this spec.
|