create-quiver 0.13.0 → 0.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/README.md +9 -2
- package/README_FOR_AI.md +4 -0
- package/ROADMAP.md +6 -0
- package/docs/COMMANDS.md.template +3 -1
- package/docs/TROUBLESHOOTING.md.template +29 -0
- package/docs/WORKFLOW.md.template +13 -12
- package/package.json +1 -1
- package/specs/quiver-v28-pixel-quiver-feedback-reconciliation/COVERAGE_MATRIX.md +117 -0
- package/specs/quiver-v28-pixel-quiver-feedback-reconciliation/EVIDENCE_REPORT.md +200 -0
- package/specs/quiver-v28-pixel-quiver-feedback-reconciliation/EXECUTION_PLAN.md +60 -0
- package/specs/quiver-v28-pixel-quiver-feedback-reconciliation/SPEC.md +132 -0
- package/specs/quiver-v28-pixel-quiver-feedback-reconciliation/STATUS.md +36 -0
- package/specs/quiver-v28-pixel-quiver-feedback-reconciliation/pr.md +128 -0
- package/specs/quiver-v28-pixel-quiver-feedback-reconciliation/slices/slice-00-reconciliation-and-evidence-freeze/CLOSURE_BRIEF.md +44 -0
- package/specs/quiver-v28-pixel-quiver-feedback-reconciliation/slices/slice-00-reconciliation-and-evidence-freeze/EXECUTION_BRIEF.md +56 -0
- package/specs/quiver-v28-pixel-quiver-feedback-reconciliation/slices/slice-00-reconciliation-and-evidence-freeze/slice.json +71 -0
- package/specs/quiver-v28-pixel-quiver-feedback-reconciliation/slices/slice-01-ai-run-state-approvals-and-clean-output/CLOSURE_BRIEF.md +38 -0
- package/specs/quiver-v28-pixel-quiver-feedback-reconciliation/slices/slice-01-ai-run-state-approvals-and-clean-output/EXECUTION_BRIEF.md +53 -0
- package/specs/quiver-v28-pixel-quiver-feedback-reconciliation/slices/slice-01-ai-run-state-approvals-and-clean-output/slice.json +83 -0
- package/specs/quiver-v28-pixel-quiver-feedback-reconciliation/slices/slice-02-structured-technical-plan-contract-and-repair-flow/CLOSURE_BRIEF.md +33 -0
- package/specs/quiver-v28-pixel-quiver-feedback-reconciliation/slices/slice-02-structured-technical-plan-contract-and-repair-flow/EXECUTION_BRIEF.md +53 -0
- package/specs/quiver-v28-pixel-quiver-feedback-reconciliation/slices/slice-02-structured-technical-plan-contract-and-repair-flow/slice.json +85 -0
- package/specs/quiver-v28-pixel-quiver-feedback-reconciliation/slices/slice-03-active-slice-reconciliation-and-ai-inspect/CLOSURE_BRIEF.md +34 -0
- package/specs/quiver-v28-pixel-quiver-feedback-reconciliation/slices/slice-03-active-slice-reconciliation-and-ai-inspect/EXECUTION_BRIEF.md +52 -0
- package/specs/quiver-v28-pixel-quiver-feedback-reconciliation/slices/slice-03-active-slice-reconciliation-and-ai-inspect/slice.json +82 -0
- package/specs/quiver-v28-pixel-quiver-feedback-reconciliation/slices/slice-04-spec-validation-scope-and-worktree-reliability/CLOSURE_BRIEF.md +32 -0
- package/specs/quiver-v28-pixel-quiver-feedback-reconciliation/slices/slice-04-spec-validation-scope-and-worktree-reliability/EXECUTION_BRIEF.md +55 -0
- package/specs/quiver-v28-pixel-quiver-feedback-reconciliation/slices/slice-04-spec-validation-scope-and-worktree-reliability/slice.json +85 -0
- package/specs/quiver-v28-pixel-quiver-feedback-reconciliation/slices/slice-05-review-plan-closure-and-agent-dx/CLOSURE_BRIEF.md +35 -0
- package/specs/quiver-v28-pixel-quiver-feedback-reconciliation/slices/slice-05-review-plan-closure-and-agent-dx/EXECUTION_BRIEF.md +59 -0
- package/specs/quiver-v28-pixel-quiver-feedback-reconciliation/slices/slice-05-review-plan-closure-and-agent-dx/slice.json +94 -0
- package/specs/quiver-v28-pixel-quiver-feedback-reconciliation/slices/slice-06-backward-compatibility-docs-and-release-readiness/CLOSURE_BRIEF.md +40 -0
- package/specs/quiver-v28-pixel-quiver-feedback-reconciliation/slices/slice-06-backward-compatibility-docs-and-release-readiness/EXECUTION_BRIEF.md +56 -0
- package/specs/quiver-v28-pixel-quiver-feedback-reconciliation/slices/slice-06-backward-compatibility-docs-and-release-readiness/slice.json +98 -0
- package/src/create-quiver/commands/ai.js +481 -14
- package/src/create-quiver/commands/spec.js +10 -0
- package/src/create-quiver/index.js +42 -4
- package/src/create-quiver/lib/ai/context-packs.js +2 -2
- package/src/create-quiver/lib/ai/export-state.js +52 -5
- package/src/create-quiver/lib/ai/github.js +14 -2
- package/src/create-quiver/lib/ai/plan-review.js +159 -0
- package/src/create-quiver/lib/ai/run-state.js +17 -2
- package/src/create-quiver/lib/ai/spec-generator.js +15 -0
- package/src/create-quiver/lib/project-state-resolver.js +195 -1
- package/src/create-quiver/lib/spec-worktrees.js +50 -2
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
# Quiver v28 - Pixel Quiver Feedback Reconciliation
|
|
2
|
+
|
|
3
|
+
**Date:** 2026-05-25
|
|
4
|
+
**Status:** Completed
|
|
5
|
+
**Source:** Pixel Quiver dogfooding follow-up after `create-quiver@0.13.0`
|
|
6
|
+
|
|
7
|
+
Slice numbering resets here. This spec intentionally starts at `slice-00`.
|
|
8
|
+
|
|
9
|
+
## Problem
|
|
10
|
+
|
|
11
|
+
Pixel Quiver produced a second set of framework feedback after Quiver v27 shipped in `create-quiver@0.13.0`. The repository source of truth says v27 already covered `QP-001` to `QP-019` and `QIS-001` to `QIS-022`, but the Pixel Quiver files still list several of those items as open and add later issues around `spec create`, repair flows, active-slice reconciliation, worktrees, and `ai inspect`.
|
|
12
|
+
|
|
13
|
+
The risk is implementing duplicate fixes or missing regressions. Quiver needs a reconciliation-first spec that verifies what v27 truly covers, then fixes only the remaining, partial, regressed, or newly observed gaps.
|
|
14
|
+
|
|
15
|
+
## Objective
|
|
16
|
+
|
|
17
|
+
Reconcile Pixel Quiver feedback against the current Quiver implementation, then harden the unresolved workflow gaps across AI runs, approvals, structured technical plans, active-slice state, spec validation, worktrees, plan reviews, agent DX, documentation, and release readiness.
|
|
18
|
+
|
|
19
|
+
## Evidence Sources
|
|
20
|
+
|
|
21
|
+
Primary input files:
|
|
22
|
+
|
|
23
|
+
- `/Users/fabrijk/Documents/Work/Proyectos Personales/nika/Pixel Quiver/QUIVER_PROBLEMS.md`
|
|
24
|
+
- `/Users/fabrijk/Documents/Work/Proyectos Personales/nika/Pixel Quiver/QUIVER_IMPROVEMENT_SUGGESTIONS.md`
|
|
25
|
+
- `/Users/fabrijk/Documents/Work/Proyectos Personales/nika/Pixel Quiver/QUIVER_FRAMEWORK_IMPROVEMENTS.md`
|
|
26
|
+
|
|
27
|
+
Repository source-of-truth files:
|
|
28
|
+
|
|
29
|
+
- `README_FOR_AI.md`
|
|
30
|
+
- `ROADMAP.md`
|
|
31
|
+
- `BACKLOG.md`
|
|
32
|
+
- `specs/quiver-v27-reliability-ai-workflow-hardening/**`
|
|
33
|
+
|
|
34
|
+
## Core Decisions
|
|
35
|
+
|
|
36
|
+
- Do not reimplement v27 behavior blindly.
|
|
37
|
+
- `slice-00` must freeze and reconcile evidence before implementation slices start.
|
|
38
|
+
- Each finding must end as `verified-resolved`, `fixed`, `documented-risk`, `duplicate`, or `out-of-scope-with-reason`.
|
|
39
|
+
- No npm publication or PR creation is included in this spec.
|
|
40
|
+
- Changes must remain backward compatible by default unless a stricter mode is explicitly documented.
|
|
41
|
+
- `--dry-run` behavior must remain read-only.
|
|
42
|
+
- Machine-readable output must be valid without stripping human logs.
|
|
43
|
+
|
|
44
|
+
## Scope
|
|
45
|
+
|
|
46
|
+
### Included
|
|
47
|
+
|
|
48
|
+
- Reconciliation matrix for all supplied Pixel Quiver `QP-*`, `QIS-*`, and framework improvement sections.
|
|
49
|
+
- AI run lifecycle and approval clarity.
|
|
50
|
+
- Clean AI command output and raw provider log persistence.
|
|
51
|
+
- Structured `spec.slices[]` contract for technical plans.
|
|
52
|
+
- Safe repair path for approved technical plans with missing structure.
|
|
53
|
+
- Active-slice multi-source reconciliation.
|
|
54
|
+
- `ai inspect` behavior after manual/fallback spec creation.
|
|
55
|
+
- `spec validate`, `check-slice`, `spec status`, `spec start`, scope, and worktree reliability.
|
|
56
|
+
- Structured `ai review-plan` closure metadata.
|
|
57
|
+
- Agent command DX using `npx --yes create-quiver@<version>`.
|
|
58
|
+
- Cross-platform help, docs, fixtures, tests, smoke coverage, and release readiness.
|
|
59
|
+
|
|
60
|
+
### Excluded
|
|
61
|
+
|
|
62
|
+
- Pixel Quiver application changes.
|
|
63
|
+
- Building a web dashboard inside Quiver core.
|
|
64
|
+
- Publishing npm.
|
|
65
|
+
- Opening a PR.
|
|
66
|
+
- Removing legacy compatibility without migration.
|
|
67
|
+
- Storing provider credentials.
|
|
68
|
+
|
|
69
|
+
## Acceptance Criteria
|
|
70
|
+
|
|
71
|
+
1. Given v27 claims coverage for earlier findings, when `slice-00` completes, then every supplied finding is classified with evidence as resolved, partial, pending, regression, duplicate, or out of scope.
|
|
72
|
+
2. Given a finding is already resolved by v27, when the final matrix is produced, then it is not reimplemented unless a regression test proves it still fails.
|
|
73
|
+
3. Given a finding is pending or partial, when implementation starts, then it is mapped to exactly one primary slice and at least one validation artifact.
|
|
74
|
+
4. Given an AI run is active, when another run is created or inspected, then Quiver avoids mixing scopes and shows the next safe action.
|
|
75
|
+
5. Given approvals exist across multiple runs, when `ai approvals` runs, then active, historical, stale, orphaned, and run-specific approvals are distinguishable.
|
|
76
|
+
6. Given `ai onboard`, `ai plan`, or provider-backed commands run, when output is shown, then useful human output is separated from raw logs and redacted raw artifacts are persisted separately.
|
|
77
|
+
7. Given a technical plan is generated, when it is approved or used by `spec create`, then it contains a parseable structured `spec.slices[]` contract or fails before writing files.
|
|
78
|
+
8. Given an approved plan lacks required structure, when the user requests repair, then Quiver can create a derived draft without mutating the approved artifact and requires review plus approval.
|
|
79
|
+
9. Given active slice state exists in multiple files, when reconciliation runs, then Quiver reports all sources and supports safe dry-run decisions: preserve, close, replace, or block.
|
|
80
|
+
10. Given a spec was created manually or by fallback, when `ai inspect` runs, then it reconciles existing specs and suggests `spec validate`, `next`, or `ai prompt-slice` instead of stale `spec create`.
|
|
81
|
+
11. Given `spec validate` runs, when slices are structurally invalid for execution, then the command detects the relevant `check-slice --local` failures or reports them as strict warnings.
|
|
82
|
+
12. Given a spec worktree path is missing, stale, dirty, or not listed by Git, when `spec status` runs, then the command reports the real state and recovery guidance.
|
|
83
|
+
13. Given `spec start --dry-run` finds a dirty checkout, when it fails, then it lists blocking files and safe options without modifying state.
|
|
84
|
+
14. Given `ai review-plan` runs, when it finishes, then it emits structured metadata for blocking status, approval recommendation, required fixes, optional hardening, and next command.
|
|
85
|
+
15. Given generated examples target agents, when commands are printed, then non-interactive versioned examples use `npx --yes create-quiver@<version>`.
|
|
86
|
+
16. Given docs are updated, when the spec closes, then `README_FOR_AI.md`, `README.md`, `CHANGELOG.md`, and `ROADMAP.md` do not contradict the implemented state.
|
|
87
|
+
17. Given final validation runs, when release readiness is checked, then source tests and package/tarball smoke evidence are recorded.
|
|
88
|
+
|
|
89
|
+
## Technical Plan
|
|
90
|
+
|
|
91
|
+
1. Freeze evidence and create the reconciliation matrix before implementation.
|
|
92
|
+
2. Add focused fixtures for unresolved or regressed cases.
|
|
93
|
+
3. Harden AI run state and approvals before touching spec generation.
|
|
94
|
+
4. Enforce the structured technical-plan contract and repair path.
|
|
95
|
+
5. Add active-slice reconciliation and stale `ai inspect` recovery.
|
|
96
|
+
6. Align validation gates and worktree reporting.
|
|
97
|
+
7. Add plan-review closure metadata and agent-friendly command examples.
|
|
98
|
+
8. Close with compatibility tests, documentation sync, smoke coverage, and release evidence.
|
|
99
|
+
|
|
100
|
+
## Slice Roadmap
|
|
101
|
+
|
|
102
|
+
| Slice | Title | Status | Dependencies |
|
|
103
|
+
|---|---|---|---|
|
|
104
|
+
| slice-00 | Reconciliation and evidence freeze | completed | none |
|
|
105
|
+
| slice-01 | AI run state, approvals, and clean output | completed | slice-00 |
|
|
106
|
+
| slice-02 | Structured technical plan contract and repair flow | completed | slice-00, slice-01 |
|
|
107
|
+
| slice-03 | Active slice reconciliation and AI inspect | completed | slice-00, slice-01 |
|
|
108
|
+
| slice-04 | Spec validation, scope, and worktree reliability | completed | slice-00 |
|
|
109
|
+
| slice-05 | Review-plan closure and agent DX | completed | slice-00, slice-01 |
|
|
110
|
+
| slice-06 | Backward compatibility, docs, and release readiness | completed | slice-01, slice-02, slice-03, slice-04, slice-05 |
|
|
111
|
+
|
|
112
|
+
## Validation Strategy
|
|
113
|
+
|
|
114
|
+
- `node --test tests/**/*.test.js`
|
|
115
|
+
- `npm run smoke:doctor-fixtures`
|
|
116
|
+
- `npm run smoke:guided-workflow`
|
|
117
|
+
- `npm run smoke:create-quiver`
|
|
118
|
+
- `npm run package:quiver`
|
|
119
|
+
- package/tarball smoke from a temporary directory
|
|
120
|
+
- `git diff --check`
|
|
121
|
+
- JSON parse validation for all `slice.json`
|
|
122
|
+
- `npx create-quiver spec validate specs/quiver-v28-pixel-quiver-feedback-reconciliation`
|
|
123
|
+
- `npx create-quiver check-handoff` for each execution and closure brief
|
|
124
|
+
|
|
125
|
+
## Risks
|
|
126
|
+
|
|
127
|
+
- Some findings may already be fixed by v27 and only stale in Pixel Quiver docs.
|
|
128
|
+
- Tightening validation can break older project specs if strict behavior is not gated.
|
|
129
|
+
- AI lifecycle changes can affect existing `.quiver/runs` and `.quiver/approvals` state.
|
|
130
|
+
- Worktree changes can affect users with in-flight branches.
|
|
131
|
+
- Real dogfooding evidence contains absolute local paths and must not be copied into fixtures without sanitization.
|
|
132
|
+
- Local non-package files can accidentally enter npm tarballs unless ignored; v28 added `*.pdf` to `.npmignore` after package dry-run evidence.
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Status - Quiver v28 Pixel Quiver Feedback Reconciliation
|
|
2
|
+
|
|
3
|
+
## Overall Status
|
|
4
|
+
|
|
5
|
+
- Phase: Final validation complete
|
|
6
|
+
- Progress: 100%
|
|
7
|
+
- Current recommended slice: none
|
|
8
|
+
- Source evidence: Pixel Quiver feedback files after `create-quiver@0.13.0`
|
|
9
|
+
|
|
10
|
+
## Slices
|
|
11
|
+
|
|
12
|
+
| Slice | Title | Status | Progress | Dependencies |
|
|
13
|
+
|---|---|---|---:|---|
|
|
14
|
+
| slice-00 | Reconciliation and evidence freeze | completed | 100% | none |
|
|
15
|
+
| slice-01 | AI run state, approvals, and clean output | completed | 100% | slice-00 |
|
|
16
|
+
| slice-02 | Structured technical plan contract and repair flow | completed | 100% | slice-00, slice-01 |
|
|
17
|
+
| slice-03 | Active slice reconciliation and AI inspect | completed | 100% | slice-00, slice-01 |
|
|
18
|
+
| slice-04 | Spec validation, scope, and worktree reliability | completed | 100% | slice-00 |
|
|
19
|
+
| slice-05 | Review-plan closure and agent DX | completed | 100% | slice-00, slice-01 |
|
|
20
|
+
| slice-06 | Backward compatibility, docs, and release readiness | completed | 100% | slice-01, slice-02, slice-03, slice-04, slice-05 |
|
|
21
|
+
|
|
22
|
+
## Blockers
|
|
23
|
+
|
|
24
|
+
- None.
|
|
25
|
+
|
|
26
|
+
## Known Production Concerns
|
|
27
|
+
|
|
28
|
+
- v27 already covers part of the Pixel Quiver feedback; remaining slices must not duplicate verified-resolved work.
|
|
29
|
+
- Pixel Quiver evidence contains absolute local paths and must remain evidence only unless sanitized into fixtures.
|
|
30
|
+
- Backward compatibility for existing `.quiver/runs`, `.quiver/approvals`, active-slice docs, and worktree state is mandatory.
|
|
31
|
+
- Tightening validation must avoid breaking older specs by default; strict behavior should be explicit when needed.
|
|
32
|
+
- A local PDF in the repo root was detected by `npm pack --dry-run`; `.npmignore` now excludes `*.pdf` to avoid accidental package publication.
|
|
33
|
+
|
|
34
|
+
## Next Step
|
|
35
|
+
|
|
36
|
+
Prepare the PR/release decision outside this spec. npm publication and PR creation were intentionally not performed here.
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
# Quiver v28 - Pixel Quiver Feedback Reconciliation
|
|
2
|
+
|
|
3
|
+
## Title
|
|
4
|
+
|
|
5
|
+
Quiver v28 - Pixel Quiver Feedback Reconciliation
|
|
6
|
+
|
|
7
|
+
## Summary
|
|
8
|
+
|
|
9
|
+
- Reconciles Pixel Quiver dogfooding findings against the current Quiver implementation.
|
|
10
|
+
- Fixes unresolved AI lifecycle, approvals, spec creation, active-slice, validation, worktree, plan-review, and agent-DX gaps.
|
|
11
|
+
- Adds regression coverage, documentation updates, smoke evidence, and package-readiness checks.
|
|
12
|
+
- Keeps v28 changes in `Unreleased`; no npm publication is claimed by this PR.
|
|
13
|
+
|
|
14
|
+
## Scope
|
|
15
|
+
|
|
16
|
+
- `slice-00`: evidence freeze and reconciliation matrix.
|
|
17
|
+
- `slice-01`: AI run state, approvals, and clean output.
|
|
18
|
+
- `slice-02`: structured technical-plan contract and repair flow.
|
|
19
|
+
- `slice-03`: active-slice reconciliation and `ai inspect` recovery.
|
|
20
|
+
- `slice-04`: spec validation, scope, and worktree reliability.
|
|
21
|
+
- `slice-05`: review-plan closure and agent DX.
|
|
22
|
+
- `slice-06`: docs, compatibility checks, smoke tests, and release readiness.
|
|
23
|
+
|
|
24
|
+
## Files
|
|
25
|
+
|
|
26
|
+
- `src/create-quiver/commands/ai.js`
|
|
27
|
+
- `src/create-quiver/commands/spec.js`
|
|
28
|
+
- `src/create-quiver/index.js`
|
|
29
|
+
- `src/create-quiver/lib/ai/**`
|
|
30
|
+
- `src/create-quiver/lib/project-state-resolver.js`
|
|
31
|
+
- `src/create-quiver/lib/spec-worktrees.js`
|
|
32
|
+
- `tests/commands/**`
|
|
33
|
+
- `tests/lib/**`
|
|
34
|
+
- `README.md`
|
|
35
|
+
- `README_FOR_AI.md`
|
|
36
|
+
- `CHANGELOG.md`
|
|
37
|
+
- `ROADMAP.md`
|
|
38
|
+
- `docs/*.template`
|
|
39
|
+
- `.npmignore`
|
|
40
|
+
- `specs/quiver-v28-pixel-quiver-feedback-reconciliation/**`
|
|
41
|
+
|
|
42
|
+
## How to Test (DETAILED - REQUIRED)
|
|
43
|
+
|
|
44
|
+
### Required Environment
|
|
45
|
+
|
|
46
|
+
- Node.js and npm available locally.
|
|
47
|
+
- Git repository checkout with access to the Quiver remote.
|
|
48
|
+
- `gh` is required only for PR operations, not for source validation.
|
|
49
|
+
|
|
50
|
+
### Worktree Access
|
|
51
|
+
|
|
52
|
+
Run from the repository root:
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
cd /Users/fabrijk/Documents/Work/Proyectos\ Personales/nika/frameworks/quiver
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### Run the Project
|
|
59
|
+
|
|
60
|
+
This PR changes the `create-quiver` CLI. Use direct Node execution or npm scripts from the repo root:
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
node bin/create-quiver.js --help
|
|
64
|
+
node bin/create-quiver.js ai --help
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### Use Cases
|
|
68
|
+
|
|
69
|
+
Validate the main updated workflows:
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
node bin/create-quiver.js spec validate specs/quiver-v28-pixel-quiver-feedback-reconciliation --strict
|
|
73
|
+
node bin/create-quiver.js next --all-ready --spec quiver-v28-pixel-quiver-feedback-reconciliation
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Expected result:
|
|
77
|
+
|
|
78
|
+
- Spec validation passes.
|
|
79
|
+
- `next --all-ready` reports no ready slices after v28 closure.
|
|
80
|
+
|
|
81
|
+
### Technical Verification
|
|
82
|
+
|
|
83
|
+
Run:
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
node --test tests/**/*.test.js
|
|
87
|
+
npm run smoke:doctor-fixtures
|
|
88
|
+
npm run smoke:guided-workflow
|
|
89
|
+
npm run smoke:create-quiver
|
|
90
|
+
npm run package:quiver
|
|
91
|
+
npm pack --dry-run --json
|
|
92
|
+
git diff --check
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
Expected result:
|
|
96
|
+
|
|
97
|
+
- All tests pass.
|
|
98
|
+
- Smoke commands pass.
|
|
99
|
+
- Package smoke passes.
|
|
100
|
+
- `npm pack --dry-run --json` does not include local PDF files.
|
|
101
|
+
- `git diff --check` returns no whitespace errors.
|
|
102
|
+
|
|
103
|
+
## Evidence
|
|
104
|
+
|
|
105
|
+
Recorded in `specs/quiver-v28-pixel-quiver-feedback-reconciliation/EVIDENCE_REPORT.md`.
|
|
106
|
+
|
|
107
|
+
Latest validation evidence:
|
|
108
|
+
|
|
109
|
+
- `node --test tests/**/*.test.js` passed with `376` tests.
|
|
110
|
+
- `npm run smoke:doctor-fixtures` passed with `13` fixture states.
|
|
111
|
+
- `npm run smoke:guided-workflow` passed.
|
|
112
|
+
- `npm run smoke:create-quiver` passed.
|
|
113
|
+
- `npm run package:quiver` passed.
|
|
114
|
+
- `npm pack --dry-run --json` passed with no `.pdf` files in the package.
|
|
115
|
+
- `git diff --check` passed.
|
|
116
|
+
- `node bin/create-quiver.js spec validate specs/quiver-v28-pixel-quiver-feedback-reconciliation --strict` passed.
|
|
117
|
+
- `node bin/create-quiver.js check-slice --local specs/quiver-v28-pixel-quiver-feedback-reconciliation/slices/slice-06-backward-compatibility-docs-and-release-readiness/slice.json` passed.
|
|
118
|
+
|
|
119
|
+
## Rollback
|
|
120
|
+
|
|
121
|
+
Revert this PR. No migration, npm publication, external service change, or credential storage change is included.
|
|
122
|
+
|
|
123
|
+
## Risks / Notes
|
|
124
|
+
|
|
125
|
+
- v28 tightens validation and approval gates. Backward compatibility was preserved by keeping stricter behavior behind explicit validation and review paths where possible.
|
|
126
|
+
- Existing local `.quiver/` state may expose more precise stale-run or active-slice diagnostics after this change.
|
|
127
|
+
- `.npmignore` now excludes `*.pdf` because package dry-run showed a local requirements PDF would otherwise be included in the npm tarball.
|
|
128
|
+
- npm publication is intentionally out of scope for this PR.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# CLOSURE BRIEF - slice-00: Reconciliation and evidence freeze
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
|
|
5
|
+
Completed the mandatory reconciliation slice for Quiver v28. The Pixel Quiver feedback files were frozen with hashes/timestamps, all supplied `QP-*`, `QIS-*`, and narrative framework-improvement sections were classified, and the execution mapping for remaining slices was updated.
|
|
6
|
+
|
|
7
|
+
## Validation
|
|
8
|
+
|
|
9
|
+
Passed:
|
|
10
|
+
|
|
11
|
+
- `git diff --check`
|
|
12
|
+
- JSON parse validation for v28 `slice.json` files
|
|
13
|
+
- `node bin/create-quiver.js spec validate specs/quiver-v28-pixel-quiver-feedback-reconciliation`
|
|
14
|
+
- `node bin/create-quiver.js spec validate specs/quiver-v28-pixel-quiver-feedback-reconciliation --strict`
|
|
15
|
+
- `node bin/create-quiver.js check-slice --local specs/quiver-v28-pixel-quiver-feedback-reconciliation/slices/slice-00-reconciliation-and-evidence-freeze/slice.json`
|
|
16
|
+
- `node bin/create-quiver.js next --all-ready --spec quiver-v28-pixel-quiver-feedback-reconciliation`
|
|
17
|
+
- `node bin/create-quiver.js plan --spec quiver-v28-pixel-quiver-feedback-reconciliation --json`
|
|
18
|
+
|
|
19
|
+
## Relevant Changes
|
|
20
|
+
|
|
21
|
+
- Replaced the initial planning matrix in `COVERAGE_MATRIX.md` with evidence-backed classifications.
|
|
22
|
+
- Updated `EVIDENCE_REPORT.md` with frozen source hashes, timestamps, inspected evidence, and remaining validation requirements.
|
|
23
|
+
- Updated `STATUS.md` and `SPEC.md` so `slice-00` is completed and Wave 1 slices are ready.
|
|
24
|
+
- Marked `slice-01` and `slice-04` as ready in their `slice.json` files.
|
|
25
|
+
- Expanded `slice-05` scope to own GitHub auth/alias recovery copy, compact executor handoff guidance, and agent-safe command examples.
|
|
26
|
+
|
|
27
|
+
## Pending Work
|
|
28
|
+
|
|
29
|
+
- `slice-01`: AI run state, approvals, and clean output.
|
|
30
|
+
- `slice-04`: spec validation, scope, and worktree reliability.
|
|
31
|
+
- `slice-02`, `slice-03`, and `slice-05` remain blocked until `slice-01` completes.
|
|
32
|
+
- `slice-06` remains the final documentation, compatibility, and release-readiness pass.
|
|
33
|
+
|
|
34
|
+
## Remaining Risks
|
|
35
|
+
|
|
36
|
+
- Some v27-covered findings may still need regression tests if implementation slices touch nearby behavior.
|
|
37
|
+
- Pixel Quiver evidence contains absolute local paths and must not be copied into fixtures without sanitization.
|
|
38
|
+
- Framework ideas such as graph conflict summaries and browser-based visual validation are documented as future work, not v28 blockers.
|
|
39
|
+
|
|
40
|
+
## Future Recommendations
|
|
41
|
+
|
|
42
|
+
- Keep all implementation slices anchored to `COVERAGE_MATRIX.md`.
|
|
43
|
+
- Do not start `slice-02`, `slice-03`, or `slice-05` until `slice-01` clarifies run and approval state.
|
|
44
|
+
- If a later slice finds that a `verified-resolved` item still fails in code, update the matrix before implementing the fix.
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# EXECUTION BRIEF - slice-00: Reconciliation and evidence freeze
|
|
2
|
+
|
|
3
|
+
## Context
|
|
4
|
+
|
|
5
|
+
Pixel Quiver produced a follow-up set of Quiver framework findings after `create-quiver@0.13.0`. `README_FOR_AI.md` says v27 already covered part of that set, so this slice must verify reality before code changes.
|
|
6
|
+
|
|
7
|
+
## Objective
|
|
8
|
+
|
|
9
|
+
Freeze the input evidence and produce the final reconciliation matrix for v28.
|
|
10
|
+
|
|
11
|
+
## Scope
|
|
12
|
+
|
|
13
|
+
- `specs/quiver-v28-pixel-quiver-feedback-reconciliation/**`
|
|
14
|
+
- `README_FOR_AI.md`
|
|
15
|
+
- `ROADMAP.md`
|
|
16
|
+
- `CHANGELOG.md`
|
|
17
|
+
|
|
18
|
+
## Acceptance Criteria
|
|
19
|
+
|
|
20
|
+
- Every finding from the supplied files is classified with evidence.
|
|
21
|
+
- Pending or partial findings map to one implementation slice.
|
|
22
|
+
- Already-resolved findings are not scheduled for duplicate work.
|
|
23
|
+
- No product code changes are made.
|
|
24
|
+
|
|
25
|
+
## Technical Plan Summary
|
|
26
|
+
|
|
27
|
+
Read the supplied Pixel Quiver files, compare them with v27 docs/code/tests, update the coverage matrix, and finalize the slice plan.
|
|
28
|
+
|
|
29
|
+
## Suggested Execution Steps
|
|
30
|
+
|
|
31
|
+
1. Record evidence source paths, timestamps, and hashes where practical.
|
|
32
|
+
2. Compare each finding against v27 docs, source, and tests.
|
|
33
|
+
3. Update `COVERAGE_MATRIX.md`.
|
|
34
|
+
4. Update `STATUS.md`, `EVIDENCE_REPORT.md`, and `CLOSURE_BRIEF.md`.
|
|
35
|
+
5. Validate JSON and spec structure.
|
|
36
|
+
|
|
37
|
+
## Restrictions
|
|
38
|
+
|
|
39
|
+
- Do not modify product code.
|
|
40
|
+
- Do not publish npm.
|
|
41
|
+
- Do not open a PR.
|
|
42
|
+
- Do not mark a finding resolved without evidence.
|
|
43
|
+
|
|
44
|
+
## Risks
|
|
45
|
+
|
|
46
|
+
- Reimplementing v27 behavior would create noise and possible regressions.
|
|
47
|
+
- Pixel Quiver files may be stale relative to the current Quiver source.
|
|
48
|
+
|
|
49
|
+
## Completion Checklist
|
|
50
|
+
|
|
51
|
+
- [ ] Evidence freeze complete.
|
|
52
|
+
- [ ] Matrix final statuses assigned.
|
|
53
|
+
- [ ] Implementation slices adjusted if needed.
|
|
54
|
+
- [ ] JSON validation passed.
|
|
55
|
+
- [ ] Spec validation passed.
|
|
56
|
+
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slice_id": "slice-00-reconciliation-and-evidence-freeze",
|
|
3
|
+
"ticket": "QUIVER-28-00",
|
|
4
|
+
"type": "docs",
|
|
5
|
+
"title": "Reconciliation and evidence freeze",
|
|
6
|
+
"objective": "Freeze Pixel Quiver evidence, reconcile every supplied finding against v27, and produce the final implementation matrix before code changes.",
|
|
7
|
+
"description": "This mandatory documentary slice prevents duplicate fixes by classifying every QP, QIS, and framework improvement as resolved, partial, pending, regression, duplicate, or out of scope with evidence.",
|
|
8
|
+
"git": {
|
|
9
|
+
"branch_type": "feature",
|
|
10
|
+
"base_branch": "main",
|
|
11
|
+
"branch_slug": "v28-reconciliation-evidence-freeze",
|
|
12
|
+
"branch_name": "feature/QUIVER-28-00-v28-reconciliation-evidence-freeze"
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"specs/quiver-v28-pixel-quiver-feedback-reconciliation/**",
|
|
16
|
+
"README_FOR_AI.md",
|
|
17
|
+
"ROADMAP.md",
|
|
18
|
+
"CHANGELOG.md"
|
|
19
|
+
],
|
|
20
|
+
"expected_read_paths": [
|
|
21
|
+
"README_FOR_AI.md",
|
|
22
|
+
"ROADMAP.md",
|
|
23
|
+
"BACKLOG.md",
|
|
24
|
+
"CHANGELOG.md",
|
|
25
|
+
"specs/quiver-v27-reliability-ai-workflow-hardening/**",
|
|
26
|
+
"src/create-quiver/**",
|
|
27
|
+
"tests/**"
|
|
28
|
+
],
|
|
29
|
+
"allowed_write_paths": [
|
|
30
|
+
"specs/quiver-v28-pixel-quiver-feedback-reconciliation/**",
|
|
31
|
+
"README_FOR_AI.md",
|
|
32
|
+
"ROADMAP.md",
|
|
33
|
+
"CHANGELOG.md"
|
|
34
|
+
],
|
|
35
|
+
"depends_on": [],
|
|
36
|
+
"parallel_safe": "no",
|
|
37
|
+
"parallel_safe_reason": "slice-00 is the mandatory foundation and controls what later slices are allowed to fix.",
|
|
38
|
+
"must": [
|
|
39
|
+
"Freeze input evidence with paths, timestamps or hashes, and source notes.",
|
|
40
|
+
"Compare Pixel Quiver findings against v27 implementation, docs, and tests.",
|
|
41
|
+
"Produce the final coverage matrix with one final status per finding.",
|
|
42
|
+
"Update docs only if needed to reflect planned state.",
|
|
43
|
+
"Do not modify product code."
|
|
44
|
+
],
|
|
45
|
+
"not_included": [
|
|
46
|
+
"CLI behavior changes.",
|
|
47
|
+
"New tests beyond documentation validation.",
|
|
48
|
+
"npm publishing.",
|
|
49
|
+
"PR creation."
|
|
50
|
+
],
|
|
51
|
+
"acceptance": [
|
|
52
|
+
"Every supplied QP/QIS/framework improvement is classified with evidence.",
|
|
53
|
+
"Every pending or partial finding is mapped to a primary implementation slice.",
|
|
54
|
+
"Every already-resolved finding has a test, code, or doc reference.",
|
|
55
|
+
"No implementation slice starts before this matrix is complete.",
|
|
56
|
+
"No product code is modified."
|
|
57
|
+
],
|
|
58
|
+
"tests": [
|
|
59
|
+
"git diff --check",
|
|
60
|
+
"find specs/quiver-v28-pixel-quiver-feedback-reconciliation -name \"slice.json\" -print -exec node -e \"JSON.parse(require('fs').readFileSync(process.argv[1], 'utf8'))\" {} \\;",
|
|
61
|
+
"npx create-quiver spec validate specs/quiver-v28-pixel-quiver-feedback-reconciliation"
|
|
62
|
+
],
|
|
63
|
+
"validation_hints": [
|
|
64
|
+
"Do not copy unsanitized absolute paths into fixtures.",
|
|
65
|
+
"Treat v27 claims as hypotheses until verified against code and tests."
|
|
66
|
+
],
|
|
67
|
+
"estimated_hours": 4,
|
|
68
|
+
"actual_hours": 4,
|
|
69
|
+
"completed_at": "2026-05-25T15:19:49Z",
|
|
70
|
+
"status": "completed"
|
|
71
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# CLOSURE BRIEF - slice-01: AI run state, approvals, and clean output
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
|
|
5
|
+
Completed the AI run-state and approval-visibility hardening slice. Successful provider-backed planner commands now print clean extracted output instead of raw stdout/stderr, run-scoped approvals are shown separately from global planner approval files, and stale runs can be closed without deleting evidence.
|
|
6
|
+
|
|
7
|
+
## Validation
|
|
8
|
+
|
|
9
|
+
Passed:
|
|
10
|
+
|
|
11
|
+
- `node --test tests/commands/ai-run-state.test.js tests/commands/ai-plan.test.js tests/commands/ai-export.test.js tests/commands/cli-contract.test.js`
|
|
12
|
+
- `node --test tests/lib/ai-run-state.test.js tests/lib/approvals.test.js tests/lib/ai-export-state.test.js`
|
|
13
|
+
|
|
14
|
+
## Relevant Changes
|
|
15
|
+
|
|
16
|
+
- Updated `src/create-quiver/commands/ai.js`.
|
|
17
|
+
- Updated `src/create-quiver/lib/ai/run-state.js`.
|
|
18
|
+
- Updated `tests/commands/ai-run-state.test.js`.
|
|
19
|
+
- Updated `tests/commands/ai-plan.test.js`.
|
|
20
|
+
- Updated v28 coverage/status/evidence documents.
|
|
21
|
+
|
|
22
|
+
## Pending Work
|
|
23
|
+
|
|
24
|
+
- `slice-02`: enforce and repair structured `spec.slices[]` technical-plan contracts.
|
|
25
|
+
- `slice-03`: reconcile multi-source active-slice state and stale `ai inspect` next commands.
|
|
26
|
+
- `slice-04`: align spec validation, scope, and worktree reliability.
|
|
27
|
+
- `slice-05`: add structured review-plan closure metadata and agent DX improvements.
|
|
28
|
+
|
|
29
|
+
## Remaining Risks
|
|
30
|
+
|
|
31
|
+
- `ai run close` archives by setting phase/status to `closed`; it does not delete or migrate any run artifacts.
|
|
32
|
+
- Existing historical `.quiver/approvals/*` files may still be orphaned by design; the CLI now labels them instead of mutating them.
|
|
33
|
+
- More advanced run replacement UX can be added later if dogfooding shows `close` plus visible open-run warnings are not enough.
|
|
34
|
+
|
|
35
|
+
## Future Recommendations
|
|
36
|
+
|
|
37
|
+
- Keep future planner commands using clean output on success and raw output only on failure diagnostics.
|
|
38
|
+
- Keep approval reports grouped by run when adding new phases or approval types.
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# EXECUTION BRIEF - slice-01: AI run state, approvals, and clean output
|
|
2
|
+
|
|
3
|
+
## Context
|
|
4
|
+
|
|
5
|
+
Pixel Quiver observed stale run state, approval history mixed with active work, and noisy provider output in AI commands.
|
|
6
|
+
|
|
7
|
+
## Objective
|
|
8
|
+
|
|
9
|
+
Make AI run and approval state clear, scoped to the active run when requested, and safe for humans and agents to consume.
|
|
10
|
+
|
|
11
|
+
## Scope
|
|
12
|
+
|
|
13
|
+
- AI command lifecycle and approvals.
|
|
14
|
+
- Clean draft persistence.
|
|
15
|
+
- Raw provider log storage and redaction.
|
|
16
|
+
- Tests for run/approval states.
|
|
17
|
+
|
|
18
|
+
## Acceptance Criteria
|
|
19
|
+
|
|
20
|
+
- Active run and historical approvals are distinguishable.
|
|
21
|
+
- Clean drafts do not include prompt echo or raw provider logs.
|
|
22
|
+
- Raw logs are stored separately and redacted.
|
|
23
|
+
- Existing run/approval data remains readable.
|
|
24
|
+
|
|
25
|
+
## Technical Plan Summary
|
|
26
|
+
|
|
27
|
+
Add or refine run-state and approval helpers, update AI command output, and add fixtures/tests around old and active lifecycle data.
|
|
28
|
+
|
|
29
|
+
## Suggested Execution Steps
|
|
30
|
+
|
|
31
|
+
1. Read `slice-00` final matrix for exact findings assigned here.
|
|
32
|
+
2. Add failing tests for stale/historical approvals and noisy output.
|
|
33
|
+
3. Update run/approval resolution.
|
|
34
|
+
4. Update raw artifact persistence and output formatting.
|
|
35
|
+
5. Run focused tests and update closure evidence.
|
|
36
|
+
|
|
37
|
+
## Restrictions
|
|
38
|
+
|
|
39
|
+
- Do not implement spec generation changes in this slice.
|
|
40
|
+
- Do not change provider credentials handling.
|
|
41
|
+
- Do not store secrets.
|
|
42
|
+
|
|
43
|
+
## Risks
|
|
44
|
+
|
|
45
|
+
- Existing `.quiver/approvals` layouts may vary across versions.
|
|
46
|
+
|
|
47
|
+
## Completion Checklist
|
|
48
|
+
|
|
49
|
+
- [ ] Run-state tests pass.
|
|
50
|
+
- [ ] Approval grouping tests pass.
|
|
51
|
+
- [ ] Clean draft/raw log tests pass.
|
|
52
|
+
- [ ] Documentation evidence updated.
|
|
53
|
+
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slice_id": "slice-01-ai-run-state-approvals-and-clean-output",
|
|
3
|
+
"ticket": "QUIVER-28-01",
|
|
4
|
+
"type": "feature",
|
|
5
|
+
"title": "AI run state, approvals, and clean output",
|
|
6
|
+
"objective": "Harden AI run lifecycle, approval visibility, and provider output persistence so scopes and drafts do not get mixed.",
|
|
7
|
+
"description": "Separates active and historical runs, groups approvals by run, persists clean drafts and raw logs separately, and prevents stale approvals from appearing current.",
|
|
8
|
+
"git": {
|
|
9
|
+
"branch_type": "feature",
|
|
10
|
+
"base_branch": "main",
|
|
11
|
+
"branch_slug": "v28-ai-run-state-approvals-clean-output",
|
|
12
|
+
"branch_name": "feature/QUIVER-28-01-v28-ai-run-state-approvals-clean-output"
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"src/create-quiver/commands/ai.js",
|
|
16
|
+
"src/create-quiver/lib/ai/run-state.js",
|
|
17
|
+
"src/create-quiver/lib/ai/artifacts.js",
|
|
18
|
+
"src/create-quiver/lib/ai/export-state.js",
|
|
19
|
+
"src/create-quiver/lib/approvals.js",
|
|
20
|
+
"tests/commands/ai-run-state.test.js",
|
|
21
|
+
"tests/commands/ai-plan.test.js",
|
|
22
|
+
"tests/commands/ai-export.test.js",
|
|
23
|
+
"tests/lib/ai-run-state.test.js",
|
|
24
|
+
"tests/lib/approvals.test.js",
|
|
25
|
+
"tests/lib/ai-export-state.test.js",
|
|
26
|
+
"specs/quiver-v28-pixel-quiver-feedback-reconciliation/**"
|
|
27
|
+
],
|
|
28
|
+
"expected_read_paths": [
|
|
29
|
+
"src/create-quiver/commands/ai.js",
|
|
30
|
+
"src/create-quiver/lib/ai/**",
|
|
31
|
+
"src/create-quiver/lib/approvals.js",
|
|
32
|
+
"tests/commands/ai-*.test.js",
|
|
33
|
+
"tests/lib/ai-*.test.js"
|
|
34
|
+
],
|
|
35
|
+
"allowed_write_paths": [
|
|
36
|
+
"src/create-quiver/commands/ai.js",
|
|
37
|
+
"src/create-quiver/lib/ai/run-state.js",
|
|
38
|
+
"src/create-quiver/lib/ai/artifacts.js",
|
|
39
|
+
"src/create-quiver/lib/ai/export-state.js",
|
|
40
|
+
"src/create-quiver/lib/approvals.js",
|
|
41
|
+
"tests/commands/ai-run-state.test.js",
|
|
42
|
+
"tests/commands/ai-plan.test.js",
|
|
43
|
+
"tests/commands/ai-export.test.js",
|
|
44
|
+
"tests/lib/ai-run-state.test.js",
|
|
45
|
+
"tests/lib/approvals.test.js",
|
|
46
|
+
"tests/lib/ai-export-state.test.js",
|
|
47
|
+
"specs/quiver-v28-pixel-quiver-feedback-reconciliation/**"
|
|
48
|
+
],
|
|
49
|
+
"depends_on": [
|
|
50
|
+
"slice-00-reconciliation-and-evidence-freeze"
|
|
51
|
+
],
|
|
52
|
+
"parallel_safe": "after_dependencies",
|
|
53
|
+
"parallel_safe_reason": "Can run after slice-00 if no overlap with slice-04 is introduced.",
|
|
54
|
+
"must": [
|
|
55
|
+
"Distinguish active, historical, stale, and orphaned approvals.",
|
|
56
|
+
"Keep clean drafts separate from raw provider logs.",
|
|
57
|
+
"Redact raw logs before persistence.",
|
|
58
|
+
"Avoid breaking existing run directories."
|
|
59
|
+
],
|
|
60
|
+
"not_included": [
|
|
61
|
+
"Technical-plan schema repair.",
|
|
62
|
+
"Active-slice reconciliation.",
|
|
63
|
+
"PR creation."
|
|
64
|
+
],
|
|
65
|
+
"acceptance": [
|
|
66
|
+
"AI commands do not mix current run output with historical approvals.",
|
|
67
|
+
"Raw provider logs are persisted separately from useful drafts.",
|
|
68
|
+
"Tests cover old, current, stale, and incomplete run states.",
|
|
69
|
+
"JSON export remains parseable without human log cleanup."
|
|
70
|
+
],
|
|
71
|
+
"tests": [
|
|
72
|
+
"node --test tests/commands/ai-run-state.test.js tests/commands/ai-plan.test.js tests/commands/ai-export.test.js",
|
|
73
|
+
"node --test tests/lib/ai-run-state.test.js tests/lib/approvals.test.js tests/lib/ai-export-state.test.js"
|
|
74
|
+
],
|
|
75
|
+
"validation_hints": [
|
|
76
|
+
"Add fixtures for old approvals before changing behavior.",
|
|
77
|
+
"Keep backward compatibility for existing .quiver/runs."
|
|
78
|
+
],
|
|
79
|
+
"estimated_hours": 8,
|
|
80
|
+
"actual_hours": 8,
|
|
81
|
+
"completed_at": "2026-05-25T15:19:49Z",
|
|
82
|
+
"status": "completed"
|
|
83
|
+
}
|