create-quiver 0.15.2 → 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/README.md +1 -0
- package/README_FOR_AI.md +6 -4
- package/docs/CLI_UX_GUIDE.md +1 -1
- package/docs/COMMANDS.md.template +14 -3
- package/docs/INDEX.md +87 -0
- package/docs/WORKFLOW.md.template +2 -2
- package/docs/reference/commands.md +13 -1
- package/package.json +3 -1
- 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/dashboard.js +31 -0
- package/src/create-quiver/index.js +97 -2
- 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/init-docs.js +6 -0
- package/src/create-quiver/lib/init-layout.js +2 -0
- package/src/create-quiver/lib/project-state-resolver.js +22 -2
- package/src/create-quiver/lib/version.js +157 -0
|
@@ -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.
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
## Title
|
|
2
|
+
|
|
3
|
+
Quiver v34: CLI dashboard status
|
|
4
|
+
|
|
5
|
+
## Summary
|
|
6
|
+
|
|
7
|
+
- Adds a read-only `dashboard` command for consolidated Quiver project state.
|
|
8
|
+
- Shows specs, slices, global progress, visible progress, next ready work, blockers, warnings, approvals, agents, active-slice state, runs, evidence counts, and next safe commands.
|
|
9
|
+
- Keeps the dashboard CLI-first and script-safe: no Ink, no prompts, no provider execution, no writes.
|
|
10
|
+
- Adds compact `dashboard --json` output with a stable schema.
|
|
11
|
+
- Adds docs, generated scripts, tests, smokes, and release-readiness evidence.
|
|
12
|
+
|
|
13
|
+
## Scope
|
|
14
|
+
|
|
15
|
+
- Dashboard report contract.
|
|
16
|
+
- Human and JSON dashboard output.
|
|
17
|
+
- Top-level CLI command routing and help.
|
|
18
|
+
- Edge-case handling for missing specs, invalid graphs, legacy/incomplete layouts, no-spec states, no-color, CI/no-TTY, and evidence/log redaction.
|
|
19
|
+
- Docs, generated templates, package scripts, tests, and evidence.
|
|
20
|
+
|
|
21
|
+
## Files
|
|
22
|
+
|
|
23
|
+
- `README.md`
|
|
24
|
+
- `README_FOR_AI.md`
|
|
25
|
+
- `docs/CLI_UX_GUIDE.md`
|
|
26
|
+
- `docs/reference/commands.md`
|
|
27
|
+
- `src/create-quiver/commands/dashboard.js`
|
|
28
|
+
- `src/create-quiver/index.js`
|
|
29
|
+
- `src/create-quiver/lib/dashboard.js`
|
|
30
|
+
- `src/create-quiver/lib/init-docs.js`
|
|
31
|
+
- `tests/commands/dashboard.test.js`
|
|
32
|
+
- `tests/commands/cli-contract.test.js`
|
|
33
|
+
- `tests/commands/ux-flags.test.js`
|
|
34
|
+
- `tests/lib/dashboard.test.js`
|
|
35
|
+
- `tests/lib/init-docs.test.js`
|
|
36
|
+
- `tests/lib/init-layout.test.js`
|
|
37
|
+
- `specs/quiver-v34-cli-dashboard-status/**`
|
|
38
|
+
|
|
39
|
+
## How to Test (DETAILED - REQUIRED)
|
|
40
|
+
|
|
41
|
+
### Required Environment
|
|
42
|
+
|
|
43
|
+
- Node.js and npm.
|
|
44
|
+
- No provider credentials are required.
|
|
45
|
+
- No GitHub credentials are required.
|
|
46
|
+
|
|
47
|
+
### Worktree Access
|
|
48
|
+
|
|
49
|
+
- One dedicated branch/worktree for `quiver-v34-cli-dashboard-status`.
|
|
50
|
+
- One commit per slice.
|
|
51
|
+
|
|
52
|
+
### Use Cases
|
|
53
|
+
|
|
54
|
+
- Run `npx create-quiver dashboard` in a project with specs and slices.
|
|
55
|
+
- Run `npx create-quiver dashboard --json` and parse stdout as JSON.
|
|
56
|
+
- Run `npx create-quiver dashboard --spec <slug>` for an existing spec.
|
|
57
|
+
- Run `npx create-quiver dashboard --spec missing-spec` and verify actionable failure.
|
|
58
|
+
- Run `npx create-quiver dashboard --include-completed` and verify completed slices are visible while global progress remains correct.
|
|
59
|
+
- Run in legacy/incomplete/no-spec/no-slice fixtures and verify useful output without crashes.
|
|
60
|
+
- Run with no-color/CI/no-TTY conditions and verify no prompts, spinners, or color-only semantics.
|
|
61
|
+
|
|
62
|
+
### Technical Verification
|
|
63
|
+
|
|
64
|
+
- `node --test tests/lib/dashboard.test.js`
|
|
65
|
+
- `node --test tests/commands/dashboard.test.js`
|
|
66
|
+
- `node --test tests/commands/cli-contract.test.js tests/commands/ux-flags.test.js`
|
|
67
|
+
- `node --test tests/lib/ai-export-state.test.js tests/commands/ai-export.test.js`
|
|
68
|
+
- `node --test tests/lib/init-docs.test.js tests/lib/init-layout.test.js`
|
|
69
|
+
- `node --test tests/**/*.test.js`
|
|
70
|
+
- `npm run smoke:create-quiver`
|
|
71
|
+
- `npm run smoke:doctor-fixtures`
|
|
72
|
+
- `npm run smoke:guided-workflow`
|
|
73
|
+
- `npm run package:quiver`
|
|
74
|
+
- `git diff --check`
|
|
75
|
+
- `node bin/create-quiver.js spec validate specs/quiver-v34-cli-dashboard-status`
|
|
76
|
+
|
|
77
|
+
## Evidence
|
|
78
|
+
|
|
79
|
+
- `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.
|
|
80
|
+
- `node --test` passed: 511 tests.
|
|
81
|
+
- `npm run smoke:create-quiver` passed.
|
|
82
|
+
- `npm run smoke:doctor-fixtures` passed: 13 states.
|
|
83
|
+
- `npm run smoke:guided-workflow` passed.
|
|
84
|
+
- `npm run package:quiver` passed: `create-quiver-0.15.2.tgz`.
|
|
85
|
+
- `node bin/create-quiver.js dashboard --json --spec quiver-v34-cli-dashboard-status` passed.
|
|
86
|
+
- `git diff --check` passed.
|
|
87
|
+
- `node bin/create-quiver.js spec validate specs/quiver-v34-cli-dashboard-status` passed.
|
|
88
|
+
|
|
89
|
+
## Rollback
|
|
90
|
+
|
|
91
|
+
Revert slice commits in reverse order. The dashboard is additive and read-only, so rollback should not affect existing workflow commands if done by slice.
|
|
92
|
+
|
|
93
|
+
## Risks / Notes
|
|
94
|
+
|
|
95
|
+
- Dashboard progress must distinguish global progress from visible filtered progress.
|
|
96
|
+
- `dashboard --json` must stay compact and must not duplicate the full `ai export` contract.
|
|
97
|
+
- Graph errors must not break the entire dashboard.
|
|
98
|
+
- Evidence/log content must not be printed.
|
|
99
|
+
- This PR does not publish npm.
|
package/specs/quiver-v34-cli-dashboard-status/slices/slice-00-dashboard-foundation/CLOSURE_BRIEF.md
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# CLOSURE_BRIEF - slice-00 Dashboard foundation
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
|
|
5
|
+
Created the v34 spec package for the CLI dashboard status feature. This foundation is documentation-only and does not implement product behavior.
|
|
6
|
+
|
|
7
|
+
## Validation
|
|
8
|
+
|
|
9
|
+
- [x] Slice JSON parse command passed for 6 slice files.
|
|
10
|
+
- [x] `node bin/create-quiver.js spec validate specs/quiver-v34-cli-dashboard-status` passed.
|
|
11
|
+
- [x] `git diff --check` passed.
|
|
12
|
+
|
|
13
|
+
## Pending
|
|
14
|
+
|
|
15
|
+
- Execute `slice-01-dashboard-report-contract`.
|
|
16
|
+
|
|
17
|
+
## Remaining Risks
|
|
18
|
+
|
|
19
|
+
- None critical for the foundation package.
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# EXECUTION_BRIEF - slice-00 Dashboard foundation
|
|
2
|
+
|
|
3
|
+
## Context
|
|
4
|
+
|
|
5
|
+
The user approved a read-only CLI dashboard initiative after acceptance criteria and production-plan review. The repository already has lifecycle export state and CLI UX rules, so this foundation slice only creates the durable spec package.
|
|
6
|
+
|
|
7
|
+
## Objective
|
|
8
|
+
|
|
9
|
+
Create the v34 spec package for `quiver dashboard` without changing product code.
|
|
10
|
+
|
|
11
|
+
## Scope
|
|
12
|
+
|
|
13
|
+
- `specs/quiver-v34-cli-dashboard-status/**`
|
|
14
|
+
|
|
15
|
+
## Acceptance Criteria
|
|
16
|
+
|
|
17
|
+
- `SPEC.md`, `STATUS.md`, `EVIDENCE_REPORT.md`, `EXECUTION_PLAN.md`, and `pr.md` exist.
|
|
18
|
+
- Every slice has `slice.json`, `EXECUTION_BRIEF.md`, and `CLOSURE_BRIEF.md`.
|
|
19
|
+
- The approved acceptance criteria and reviewed technical plan are captured.
|
|
20
|
+
- No product code is modified.
|
|
21
|
+
|
|
22
|
+
## Technical Plan Summary
|
|
23
|
+
|
|
24
|
+
Create a complete spec package following the existing `specs/quiver-vNN-*` pattern. Mark this foundation slice completed and leave implementation slices ready/planned.
|
|
25
|
+
|
|
26
|
+
## Suggested Steps
|
|
27
|
+
|
|
28
|
+
1. Create the spec directory and top-level documents.
|
|
29
|
+
2. Create all slice directories and handoffs.
|
|
30
|
+
3. Validate every `slice.json`.
|
|
31
|
+
4. Validate the spec package.
|
|
32
|
+
5. Record evidence.
|
|
33
|
+
|
|
34
|
+
## Restrictions
|
|
35
|
+
|
|
36
|
+
- Do not implement the dashboard.
|
|
37
|
+
- Do not update root README or command docs in this slice.
|
|
38
|
+
- Do not claim npm publication.
|
|
39
|
+
|
|
40
|
+
## Risks
|
|
41
|
+
|
|
42
|
+
- Missing handoffs would block future executor agents.
|
|
43
|
+
|
|
44
|
+
## Completion Checklist
|
|
45
|
+
|
|
46
|
+
- [ ] Spec package created.
|
|
47
|
+
- [ ] Slice handoffs created.
|
|
48
|
+
- [ ] Slice JSON files parse.
|
|
49
|
+
- [ ] Spec validation passes.
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slice_id": "slice-00-dashboard-foundation",
|
|
3
|
+
"ticket": "QUIVER-34-00",
|
|
4
|
+
"type": "docs",
|
|
5
|
+
"title": "Dashboard foundation",
|
|
6
|
+
"objective": "Create the v34 spec package for the read-only CLI dashboard status feature.",
|
|
7
|
+
"description": "Publishes the approved spec, execution plan, PR body, status, evidence report, slice definitions, and handoffs without changing product code.",
|
|
8
|
+
"git": {
|
|
9
|
+
"branch_type": "feature",
|
|
10
|
+
"base_branch": "main",
|
|
11
|
+
"branch_slug": "v34-dashboard-foundation",
|
|
12
|
+
"branch_name": "feature/QUIVER-34-00-v34-dashboard-foundation"
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"specs/quiver-v34-cli-dashboard-status/**"
|
|
16
|
+
],
|
|
17
|
+
"expected_read_paths": [
|
|
18
|
+
"README_FOR_AI.md",
|
|
19
|
+
"ROADMAP.md",
|
|
20
|
+
"BACKLOG.md",
|
|
21
|
+
"docs/CLI_UX_GUIDE.md",
|
|
22
|
+
"docs/reference/commands.md",
|
|
23
|
+
"docs/workflows/full-ai-spec-to-pr.md",
|
|
24
|
+
"specs/quiver-v23-guided-flow-productization/**",
|
|
25
|
+
"specs/quiver-v29-planner-prepare-context-cli-ux/**",
|
|
26
|
+
"specs/quiver-v30-interactive-cli-ux-agent-selection/**",
|
|
27
|
+
"specs/quiver-v33-approval-ux-and-planner-progress/**"
|
|
28
|
+
],
|
|
29
|
+
"allowed_write_paths": [
|
|
30
|
+
"specs/quiver-v34-cli-dashboard-status/**"
|
|
31
|
+
],
|
|
32
|
+
"depends_on": [],
|
|
33
|
+
"parallel_safe": "no",
|
|
34
|
+
"parallel_safe_reason": "slice-00 is the foundation barrier for the spec.",
|
|
35
|
+
"must": [
|
|
36
|
+
"Create SPEC.md, STATUS.md, EVIDENCE_REPORT.md, EXECUTION_PLAN.md, and pr.md.",
|
|
37
|
+
"Create slice.json, EXECUTION_BRIEF.md, and CLOSURE_BRIEF.md for every slice.",
|
|
38
|
+
"Capture approved acceptance criteria, review findings, and technical plan.",
|
|
39
|
+
"Avoid product code changes."
|
|
40
|
+
],
|
|
41
|
+
"not_included": [
|
|
42
|
+
"Implementing the dashboard command.",
|
|
43
|
+
"Changing CLI routing.",
|
|
44
|
+
"Updating public docs outside this spec package.",
|
|
45
|
+
"Publishing a package."
|
|
46
|
+
],
|
|
47
|
+
"acceptance": [
|
|
48
|
+
"Spec folder exists under specs/quiver-v34-cli-dashboard-status.",
|
|
49
|
+
"Every slice has slice.json, EXECUTION_BRIEF.md, and CLOSURE_BRIEF.md.",
|
|
50
|
+
"Every slice.json parses successfully.",
|
|
51
|
+
"Spec validation passes.",
|
|
52
|
+
"No product code is modified."
|
|
53
|
+
],
|
|
54
|
+
"tests": [
|
|
55
|
+
"git diff --check",
|
|
56
|
+
"find specs/quiver-v34-cli-dashboard-status -name \"slice.json\" -print -exec node -e \"JSON.parse(require('fs').readFileSync(process.argv[1], 'utf8'))\" {} \\;",
|
|
57
|
+
"node bin/create-quiver.js spec validate specs/quiver-v34-cli-dashboard-status"
|
|
58
|
+
],
|
|
59
|
+
"validation_hints": [
|
|
60
|
+
"Keep this slice documentation-only.",
|
|
61
|
+
"Do not claim implementation or package publication."
|
|
62
|
+
],
|
|
63
|
+
"estimated_hours": 2,
|
|
64
|
+
"status": "completed",
|
|
65
|
+
"blocked_reason": null,
|
|
66
|
+
"actual_hours": 2,
|
|
67
|
+
"completed_at": "2026-05-28"
|
|
68
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# CLOSURE_BRIEF - slice-01 Dashboard report contract
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
|
|
5
|
+
Implemented the compact dashboard report contract in `src/create-quiver/lib/dashboard.js`. The report exposes schema version 1, global vs visible progress, filtered specs/slices, next-ready work, blockers, warnings, agents, approvals, active-slice reconciliation, run summaries, evidence counts, and next safe commands without leaking raw evidence values.
|
|
6
|
+
|
|
7
|
+
## Validation
|
|
8
|
+
|
|
9
|
+
- [x] `node --test tests/lib/dashboard.test.js`
|
|
10
|
+
- [x] `node --test tests/lib/ai-export-state.test.js tests/commands/ai-export.test.js` covered by full `node --test`.
|
|
11
|
+
- [x] `git diff --check`
|
|
12
|
+
|
|
13
|
+
## Pending
|
|
14
|
+
|
|
15
|
+
- None for this slice.
|
|
16
|
+
|
|
17
|
+
## Remaining Risks
|
|
18
|
+
|
|
19
|
+
- None critical.
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# EXECUTION_BRIEF - slice-01 Dashboard report contract
|
|
2
|
+
|
|
3
|
+
## Context
|
|
4
|
+
|
|
5
|
+
`ai export --format json` already exposes lifecycle state and a `dashboard` subobject, but the new public dashboard needs a compact purpose-built contract. It must not become a second source of truth.
|
|
6
|
+
|
|
7
|
+
## Objective
|
|
8
|
+
|
|
9
|
+
Create the dashboard report model that future command rendering can consume.
|
|
10
|
+
|
|
11
|
+
## Scope
|
|
12
|
+
|
|
13
|
+
- `src/create-quiver/lib/dashboard.js`
|
|
14
|
+
- compatible helper extraction in `src/create-quiver/lib/ai/export-state.js` if needed
|
|
15
|
+
- focused model tests
|
|
16
|
+
|
|
17
|
+
## Acceptance Criteria
|
|
18
|
+
|
|
19
|
+
- Report includes `dashboard_schema_version: 1`.
|
|
20
|
+
- Report includes `summary`, `global_progress`, `visible_progress`, `next_ready`, `specs`, `slices`, `agents`, `approvals`, `active_slice`, `blockers`, `warnings`, and `next_steps`.
|
|
21
|
+
- Global progress includes completed slices even when visible work hides them.
|
|
22
|
+
- Visible progress respects `--spec` and `--include-completed`.
|
|
23
|
+
- Evidence and run details are summarized without raw logs or evidence values.
|
|
24
|
+
- Missing data is represented with stable nulls/empty arrays rather than crashes.
|
|
25
|
+
|
|
26
|
+
## Technical Plan Summary
|
|
27
|
+
|
|
28
|
+
Build pure dashboard helpers on top of existing lifecycle export and project-state resolver data. Keep CLI routing and formatting out of this slice.
|
|
29
|
+
|
|
30
|
+
## Suggested Steps
|
|
31
|
+
|
|
32
|
+
1. Define the compact report shape.
|
|
33
|
+
2. Add report construction from existing export state.
|
|
34
|
+
3. Add global vs visible progress calculation.
|
|
35
|
+
4. Add safe evidence/run summaries.
|
|
36
|
+
5. Add next-ready derivation where graph data allows it.
|
|
37
|
+
6. Add model tests for default, include-completed, spec filter, missing data, and evidence safety.
|
|
38
|
+
|
|
39
|
+
## Restrictions
|
|
40
|
+
|
|
41
|
+
- Do not add top-level command routing.
|
|
42
|
+
- Do not add prompts, spinners, writes, providers, or shell-outs.
|
|
43
|
+
- Do not return the full lifecycle export as dashboard JSON.
|
|
44
|
+
|
|
45
|
+
## Risks
|
|
46
|
+
|
|
47
|
+
- Progress can be misleading if global and visible counts are collapsed into one number.
|
|
48
|
+
|
|
49
|
+
## Completion Checklist
|
|
50
|
+
|
|
51
|
+
- [ ] Report contract implemented.
|
|
52
|
+
- [ ] Focused tests added.
|
|
53
|
+
- [ ] Existing `ai export` tests still pass.
|
package/specs/quiver-v34-cli-dashboard-status/slices/slice-01-dashboard-report-contract/slice.json
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slice_id": "slice-01-dashboard-report-contract",
|
|
3
|
+
"ticket": "QUIVER-34-01",
|
|
4
|
+
"type": "feature",
|
|
5
|
+
"title": "Dashboard report contract",
|
|
6
|
+
"objective": "Create a compact read-only dashboard report contract from existing Quiver lifecycle state.",
|
|
7
|
+
"description": "Adds the dashboard data model that separates global progress from visible progress, exposes next-ready work, and summarizes state without duplicating lifecycle export or leaking evidence/log content.",
|
|
8
|
+
"git": {
|
|
9
|
+
"branch_type": "feature",
|
|
10
|
+
"base_branch": "main",
|
|
11
|
+
"branch_slug": "v34-dashboard-report-contract",
|
|
12
|
+
"branch_name": "feature/QUIVER-34-01-v34-dashboard-report-contract"
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"src/create-quiver/lib/dashboard.js",
|
|
16
|
+
"src/create-quiver/lib/ai/export-state.js",
|
|
17
|
+
"tests/lib/dashboard.test.js",
|
|
18
|
+
"tests/lib/ai-export-state.test.js"
|
|
19
|
+
],
|
|
20
|
+
"expected_read_paths": [
|
|
21
|
+
"src/create-quiver/lib/ai/export-state.js",
|
|
22
|
+
"src/create-quiver/lib/project-state-resolver.js",
|
|
23
|
+
"src/create-quiver/commands/plan.js",
|
|
24
|
+
"src/create-quiver/commands/next.js",
|
|
25
|
+
"tests/commands/ai-export.test.js",
|
|
26
|
+
"tests/lib/ai-export-state.test.js",
|
|
27
|
+
"specs/quiver-v34-cli-dashboard-status/SPEC.md"
|
|
28
|
+
],
|
|
29
|
+
"allowed_write_paths": [
|
|
30
|
+
"src/create-quiver/lib/dashboard.js",
|
|
31
|
+
"src/create-quiver/lib/ai/export-state.js",
|
|
32
|
+
"tests/lib/dashboard.test.js",
|
|
33
|
+
"tests/lib/ai-export-state.test.js",
|
|
34
|
+
"specs/quiver-v34-cli-dashboard-status/**"
|
|
35
|
+
],
|
|
36
|
+
"depends_on": [
|
|
37
|
+
"slice-00-dashboard-foundation"
|
|
38
|
+
],
|
|
39
|
+
"parallel_safe": "no",
|
|
40
|
+
"parallel_safe_reason": "The report contract is the dependency for command rendering and edge-case hardening.",
|
|
41
|
+
"must": [
|
|
42
|
+
"Use existing lifecycle/export state as the source of truth.",
|
|
43
|
+
"Define dashboard_schema_version 1.",
|
|
44
|
+
"Return a compact report, not the full ai export payload.",
|
|
45
|
+
"Calculate global_progress from all slices.",
|
|
46
|
+
"Calculate visible_progress from filters such as --spec and --include-completed.",
|
|
47
|
+
"Summarize evidence and runs without raw log or evidence content.",
|
|
48
|
+
"Expose next_ready when graph state allows it.",
|
|
49
|
+
"Preserve existing ai export behavior unless a backwards-compatible helper extraction is needed."
|
|
50
|
+
],
|
|
51
|
+
"not_included": [
|
|
52
|
+
"Top-level CLI routing.",
|
|
53
|
+
"Human formatting.",
|
|
54
|
+
"Generated docs or package scripts.",
|
|
55
|
+
"Interactive behavior."
|
|
56
|
+
],
|
|
57
|
+
"acceptance": [
|
|
58
|
+
"Dashboard report includes dashboard_schema_version, summary, global_progress, visible_progress, next_ready, specs, slices, agents, approvals, active_slice, blockers, warnings, and next_steps.",
|
|
59
|
+
"Completed slices are counted in global_progress even when hidden from visible slices.",
|
|
60
|
+
"Visible progress changes with --include-completed and --spec filters.",
|
|
61
|
+
"Evidence/log content is not included in the compact report.",
|
|
62
|
+
"Report construction does not shell out to the CLI."
|
|
63
|
+
],
|
|
64
|
+
"tests": [
|
|
65
|
+
"node --test tests/lib/dashboard.test.js",
|
|
66
|
+
"node --test tests/lib/ai-export-state.test.js tests/commands/ai-export.test.js",
|
|
67
|
+
"git diff --check"
|
|
68
|
+
],
|
|
69
|
+
"validation_hints": [
|
|
70
|
+
"Prefer pure functions for report construction.",
|
|
71
|
+
"Keep the report easy to snapshot and stable for future consumers."
|
|
72
|
+
],
|
|
73
|
+
"estimated_hours": 5,
|
|
74
|
+
"status": "completed",
|
|
75
|
+
"blocked_reason": null,
|
|
76
|
+
"actual_hours": 5,
|
|
77
|
+
"completed_at": "2026-05-28"
|
|
78
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# CLOSURE_BRIEF - slice-02 Dashboard command and rendering
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
|
|
5
|
+
Added the top-level `dashboard` command, CLI router integration, help/example coverage, human output, JSON output, and UX flag guardrail coverage. The command is read-only, uses no prompts/spinners, and keeps JSON stdout parseable.
|
|
6
|
+
|
|
7
|
+
## Validation
|
|
8
|
+
|
|
9
|
+
- [x] `node --test tests/commands/dashboard.test.js`
|
|
10
|
+
- [x] `node --test tests/commands/cli-contract.test.js tests/commands/ux-flags.test.js`
|
|
11
|
+
- [x] `git diff --check`
|
|
12
|
+
|
|
13
|
+
## Pending
|
|
14
|
+
|
|
15
|
+
- None for this slice.
|
|
16
|
+
|
|
17
|
+
## Remaining Risks
|
|
18
|
+
|
|
19
|
+
- None critical.
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# EXECUTION_BRIEF - slice-02 Dashboard command and rendering
|
|
2
|
+
|
|
3
|
+
## Context
|
|
4
|
+
|
|
5
|
+
The report contract exists from slice-01. This slice makes it available through the CLI.
|
|
6
|
+
|
|
7
|
+
## Objective
|
|
8
|
+
|
|
9
|
+
Add `npx create-quiver dashboard` with human and JSON output.
|
|
10
|
+
|
|
11
|
+
## Scope
|
|
12
|
+
|
|
13
|
+
- `src/create-quiver/commands/dashboard.js`
|
|
14
|
+
- `src/create-quiver/index.js`
|
|
15
|
+
- focused command tests
|
|
16
|
+
|
|
17
|
+
## Acceptance Criteria
|
|
18
|
+
|
|
19
|
+
- `dashboard` is a supported top-level command.
|
|
20
|
+
- `dashboard --json` emits parseable compact JSON.
|
|
21
|
+
- Human output shows project, progress, next ready slice, blockers, approvals, agents, active slice, and next steps where available.
|
|
22
|
+
- `--spec`, `--include-completed`, and `--no-color` are passed to the report/formatting layer.
|
|
23
|
+
- `--interactive`, `--review`, and `--with-planner` are rejected.
|
|
24
|
+
- Help output documents the command.
|
|
25
|
+
|
|
26
|
+
## Technical Plan Summary
|
|
27
|
+
|
|
28
|
+
Add a command wrapper that calls the dashboard report helpers and formats either compact JSON or human output. Integrate the command into the central parser/router/help.
|
|
29
|
+
|
|
30
|
+
## Suggested Steps
|
|
31
|
+
|
|
32
|
+
1. Add `commands/dashboard.js`.
|
|
33
|
+
2. Add `dashboard` to supported modes.
|
|
34
|
+
3. Add usage/help/example entries.
|
|
35
|
+
4. Wire options into `runDashboard`.
|
|
36
|
+
5. Add command tests for human output, JSON, filters, no-color, and unsupported UX flags.
|
|
37
|
+
|
|
38
|
+
## Restrictions
|
|
39
|
+
|
|
40
|
+
- Do not perform writes.
|
|
41
|
+
- Do not start slices.
|
|
42
|
+
- Do not prompt.
|
|
43
|
+
- Do not use Ink.
|
|
44
|
+
|
|
45
|
+
## Risks
|
|
46
|
+
|
|
47
|
+
- Central CLI router changes can regress help or unsupported-command behavior.
|
|
48
|
+
|
|
49
|
+
## Completion Checklist
|
|
50
|
+
|
|
51
|
+
- [ ] Command implemented.
|
|
52
|
+
- [ ] Help updated.
|
|
53
|
+
- [ ] Command tests pass.
|