create-quiver 0.12.1 → 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 +27 -0
- package/README.md +24 -9
- package/README_FOR_AI.md +15 -6
- package/ROADMAP.md +15 -2
- package/docs/COMMANDS.md.template +12 -3
- package/docs/TROUBLESHOOTING.md.template +29 -0
- package/docs/WORKFLOW.md.template +13 -12
- package/package.json +2 -1
- package/specs/quiver-v26-0121-smoke-hardening/SPEC.md +2 -2
- package/specs/quiver-v26-0121-smoke-hardening/STATUS.md +5 -5
- package/specs/quiver-v27-reliability-ai-workflow-hardening/AUDIT_V24_V25_V26.md +67 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/COMMAND_CONTRACTS.md +125 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/COVERAGE_MATRIX.md +74 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/EVIDENCE_REPORT.md +179 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/EXECUTION_PLAN.md +71 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/SPEC.md +176 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/STATUS.md +37 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/pr.md +132 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/slices/slice-00-docs-audit-coverage-and-contracts/CLOSURE_BRIEF.md +36 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/slices/slice-00-docs-audit-coverage-and-contracts/EXECUTION_BRIEF.md +56 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/slices/slice-00-docs-audit-coverage-and-contracts/slice.json +75 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/slices/slice-01-core-state-resolver-and-canonical-statuses/CLOSURE_BRIEF.md +37 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/slices/slice-01-core-state-resolver-and-canonical-statuses/EXECUTION_BRIEF.md +54 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/slices/slice-01-core-state-resolver-and-canonical-statuses/slice.json +79 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/slices/slice-02-json-export-contract-and-machine-output/CLOSURE_BRIEF.md +34 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/slices/slice-02-json-export-contract-and-machine-output/EXECUTION_BRIEF.md +54 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/slices/slice-02-json-export-contract-and-machine-output/slice.json +75 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/slices/slice-03-approved-plan-to-spec-create/CLOSURE_BRIEF.md +36 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/slices/slice-03-approved-plan-to-spec-create/EXECUTION_BRIEF.md +55 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/slices/slice-03-approved-plan-to-spec-create/slice.json +78 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/slices/slice-04-ai-artifact-storage-redaction-and-token-compaction/CLOSURE_BRIEF.md +31 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/slices/slice-04-ai-artifact-storage-redaction-and-token-compaction/EXECUTION_BRIEF.md +55 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/slices/slice-04-ai-artifact-storage-redaction-and-token-compaction/slice.json +77 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/slices/slice-05-worktree-lifecycle-locks-and-recovery/CLOSURE_BRIEF.md +31 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/slices/slice-05-worktree-lifecycle-locks-and-recovery/EXECUTION_BRIEF.md +55 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/slices/slice-05-worktree-lifecycle-locks-and-recovery/slice.json +84 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/slices/slice-06-validation-gates-and-scope-safety/CLOSURE_BRIEF.md +32 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/slices/slice-06-validation-gates-and-scope-safety/EXECUTION_BRIEF.md +57 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/slices/slice-06-validation-gates-and-scope-safety/slice.json +99 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/slices/slice-07-context-analysis-and-doctor-flow/CLOSURE_BRIEF.md +31 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/slices/slice-07-context-analysis-and-doctor-flow/EXECUTION_BRIEF.md +57 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/slices/slice-07-context-analysis-and-doctor-flow/slice.json +88 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/slices/slice-08-cross-platform-help-auth-and-dx/CLOSURE_BRIEF.md +31 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/slices/slice-08-cross-platform-help-auth-and-dx/EXECUTION_BRIEF.md +56 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/slices/slice-08-cross-platform-help-auth-and-dx/slice.json +85 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/slices/slice-09-fixtures-smoke-docs-and-release-readiness/CLOSURE_BRIEF.md +32 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/slices/slice-09-fixtures-smoke-docs-and-release-readiness/EXECUTION_BRIEF.md +56 -0
- package/specs/quiver-v27-reliability-ai-workflow-hardening/slices/slice-09-fixtures-smoke-docs-and-release-readiness/slice.json +91 -0
- 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 +563 -21
- package/src/create-quiver/commands/flow.js +52 -4
- package/src/create-quiver/commands/graph.js +7 -7
- package/src/create-quiver/commands/plan.js +6 -15
- package/src/create-quiver/commands/spec.js +292 -0
- package/src/create-quiver/index.js +125 -25
- package/src/create-quiver/lib/agent-profiles.js +15 -3
- package/src/create-quiver/lib/ai/artifacts.js +318 -0
- package/src/create-quiver/lib/ai/context-packs.js +2 -2
- package/src/create-quiver/lib/ai/execution-plan.js +9 -0
- package/src/create-quiver/lib/ai/executor.js +3 -2
- package/src/create-quiver/lib/ai/export-state.js +287 -95
- package/src/create-quiver/lib/ai/github.js +93 -4
- package/src/create-quiver/lib/ai/plan-review.js +161 -0
- package/src/create-quiver/lib/ai/run-state.js +17 -2
- package/src/create-quiver/lib/ai/spec-generator.js +87 -13
- package/src/create-quiver/lib/ai/spec-templates.js +72 -12
- package/src/create-quiver/lib/analyze.js +2 -2
- package/src/create-quiver/lib/approvals.js +14 -2
- package/src/create-quiver/lib/doctor.js +79 -0
- package/src/create-quiver/lib/git.js +40 -1
- package/src/create-quiver/lib/handoff.js +43 -1
- package/src/create-quiver/lib/init-docs.js +11 -7
- package/src/create-quiver/lib/init-layout.js +1 -0
- package/src/create-quiver/lib/lifecycle.js +52 -3
- package/src/create-quiver/lib/locks.js +134 -0
- package/src/create-quiver/lib/package-safety.js +7 -0
- package/src/create-quiver/lib/paths.js +74 -0
- package/src/create-quiver/lib/project-scan.js +74 -0
- package/src/create-quiver/lib/project-state-resolver.js +430 -0
- package/src/create-quiver/lib/readiness.js +48 -7
- package/src/create-quiver/lib/scope.js +2 -1
- package/src/create-quiver/lib/slice.js +8 -4
- package/src/create-quiver/lib/spec-worktrees.js +169 -38
- package/src/create-quiver/lib/statuses.js +115 -0
|
@@ -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
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# CLOSURE BRIEF - slice-02: Structured technical plan contract and repair flow
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
|
|
5
|
+
Completed the structured technical-plan contract and repair flow. Technical plans now explicitly prompt for `spec.slices[]`, approval blocks invalid technical-plan drafts before writing `approved.md`, and legacy approved plans missing structure can be repaired into a new draft with `ai repair-plan` while preserving the original approved artifact.
|
|
6
|
+
|
|
7
|
+
## Validation
|
|
8
|
+
|
|
9
|
+
Passed:
|
|
10
|
+
|
|
11
|
+
- `node --test tests/commands/ai-plan.test.js tests/commands/ai-plan-spec-phase.test.js tests/commands/spec-create.test.js`
|
|
12
|
+
- `node --test tests/commands/ai-review-plan.test.js tests/commands/flow.test.js tests/commands/cli-contract.test.js`
|
|
13
|
+
- `node --test tests/lib/ai-spec-generator.test.js tests/lib/approvals.test.js`
|
|
14
|
+
|
|
15
|
+
## Relevant Changes
|
|
16
|
+
|
|
17
|
+
- `src/create-quiver/commands/ai.js` now validates technical-plan drafts before approval and implements `ai repair-plan`.
|
|
18
|
+
- `src/create-quiver/lib/ai/spec-generator.js` exposes a shared technical-plan contract validator.
|
|
19
|
+
- `src/create-quiver/index.js` registers and documents `ai repair-plan`.
|
|
20
|
+
- `tests/commands/ai-plan.test.js` covers approval blocking, repair dry-run, repair execution, and approved artifact preservation.
|
|
21
|
+
- Existing spec generation and flow tests were updated to use valid structured technical plans when approval is expected.
|
|
22
|
+
|
|
23
|
+
## Pending Work
|
|
24
|
+
|
|
25
|
+
None for this slice.
|
|
26
|
+
|
|
27
|
+
## Remaining Risks
|
|
28
|
+
|
|
29
|
+
- `ai repair-plan` depends on provider output quality. Invalid repair output is rejected and raw evidence is preserved, but no draft is written until the provider returns a valid structured contract.
|
|
30
|
+
|
|
31
|
+
## Future Recommendations
|
|
32
|
+
|
|
33
|
+
- Consider adding machine-readable repair metadata to `ai inspect` once slice-03 reconciles lifecycle state.
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# EXECUTION BRIEF - slice-02: Structured technical plan contract and repair flow
|
|
2
|
+
|
|
3
|
+
## Context
|
|
4
|
+
|
|
5
|
+
Pixel Quiver reached an approved technical plan but `spec create` failed because the plan lacked a structured `spec.slices[]` array.
|
|
6
|
+
|
|
7
|
+
## Objective
|
|
8
|
+
|
|
9
|
+
Make the structured technical-plan contract explicit, validated, and repairable before spec creation.
|
|
10
|
+
|
|
11
|
+
## Scope
|
|
12
|
+
|
|
13
|
+
- Technical-plan prompts and validation.
|
|
14
|
+
- Spec generation from approved plans.
|
|
15
|
+
- Approval repair path.
|
|
16
|
+
- Tests for valid, invalid, missing, and repaired structures.
|
|
17
|
+
|
|
18
|
+
## Acceptance Criteria
|
|
19
|
+
|
|
20
|
+
- Missing `spec.slices[]` is caught before writing spec files.
|
|
21
|
+
- A valid plan creates the intended spec package.
|
|
22
|
+
- A repair flow creates a derived draft without mutating the approved artifact.
|
|
23
|
+
- Repaired drafts require review and approval.
|
|
24
|
+
|
|
25
|
+
## Technical Plan Summary
|
|
26
|
+
|
|
27
|
+
Add a formal minimum contract for `spec.slices[]`, validate it at approval/spec creation boundaries, and add a repair command or flow that preserves auditability.
|
|
28
|
+
|
|
29
|
+
## Suggested Execution Steps
|
|
30
|
+
|
|
31
|
+
1. Read final `slice-00` assignments.
|
|
32
|
+
2. Add failing tests for missing `spec.slices[]`.
|
|
33
|
+
3. Add schema/contract validation.
|
|
34
|
+
4. Add repair flow.
|
|
35
|
+
5. Validate dry-run no-write behavior.
|
|
36
|
+
|
|
37
|
+
## Restrictions
|
|
38
|
+
|
|
39
|
+
- Do not loosen approval gates.
|
|
40
|
+
- Do not generate fallback generic slices silently.
|
|
41
|
+
- Do not publish npm.
|
|
42
|
+
|
|
43
|
+
## Risks
|
|
44
|
+
|
|
45
|
+
- Planner output can vary; validation must produce helpful errors without requiring fragile formatting beyond the explicit contract.
|
|
46
|
+
|
|
47
|
+
## Completion Checklist
|
|
48
|
+
|
|
49
|
+
- [ ] Contract tests pass.
|
|
50
|
+
- [ ] Repair tests pass.
|
|
51
|
+
- [ ] Spec-create invalid input writes no files.
|
|
52
|
+
- [ ] Closure evidence updated.
|
|
53
|
+
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slice_id": "slice-02-structured-technical-plan-contract-and-repair-flow",
|
|
3
|
+
"ticket": "QUIVER-28-02",
|
|
4
|
+
"type": "feature",
|
|
5
|
+
"title": "Structured technical plan contract and repair flow",
|
|
6
|
+
"objective": "Require a parseable technical-plan slice contract before spec creation and provide a safe repair path for approved plans with missing structure.",
|
|
7
|
+
"description": "Prevents spec creation from failing after human approval by validating `spec.slices[]` before approval/spec creation and by allowing a traceable derived repair draft.",
|
|
8
|
+
"git": {
|
|
9
|
+
"branch_type": "feature",
|
|
10
|
+
"base_branch": "main",
|
|
11
|
+
"branch_slug": "v28-structured-plan-contract-repair-flow",
|
|
12
|
+
"branch_name": "feature/QUIVER-28-02-v28-structured-plan-contract-repair-flow"
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"src/create-quiver/commands/ai.js",
|
|
16
|
+
"src/create-quiver/commands/spec.js",
|
|
17
|
+
"src/create-quiver/lib/ai/prompts.js",
|
|
18
|
+
"src/create-quiver/lib/ai/spec-generator.js",
|
|
19
|
+
"src/create-quiver/lib/ai/spec-templates.js",
|
|
20
|
+
"src/create-quiver/lib/approvals.js",
|
|
21
|
+
"tests/commands/ai-plan.test.js",
|
|
22
|
+
"tests/commands/ai-plan-spec-phase.test.js",
|
|
23
|
+
"tests/commands/spec-create.test.js",
|
|
24
|
+
"tests/lib/ai-spec-generator.test.js",
|
|
25
|
+
"tests/lib/approvals.test.js",
|
|
26
|
+
"specs/quiver-v28-pixel-quiver-feedback-reconciliation/**"
|
|
27
|
+
],
|
|
28
|
+
"expected_read_paths": [
|
|
29
|
+
"src/create-quiver/lib/ai/**",
|
|
30
|
+
"src/create-quiver/commands/ai.js",
|
|
31
|
+
"src/create-quiver/commands/spec.js",
|
|
32
|
+
"tests/commands/ai-*.test.js",
|
|
33
|
+
"tests/commands/spec-create.test.js",
|
|
34
|
+
"tests/lib/ai-spec-generator.test.js"
|
|
35
|
+
],
|
|
36
|
+
"allowed_write_paths": [
|
|
37
|
+
"src/create-quiver/commands/ai.js",
|
|
38
|
+
"src/create-quiver/commands/spec.js",
|
|
39
|
+
"src/create-quiver/lib/ai/prompts.js",
|
|
40
|
+
"src/create-quiver/lib/ai/spec-generator.js",
|
|
41
|
+
"src/create-quiver/lib/ai/spec-templates.js",
|
|
42
|
+
"src/create-quiver/lib/approvals.js",
|
|
43
|
+
"tests/commands/ai-plan.test.js",
|
|
44
|
+
"tests/commands/ai-plan-spec-phase.test.js",
|
|
45
|
+
"tests/commands/spec-create.test.js",
|
|
46
|
+
"tests/lib/ai-spec-generator.test.js",
|
|
47
|
+
"tests/lib/approvals.test.js",
|
|
48
|
+
"specs/quiver-v28-pixel-quiver-feedback-reconciliation/**"
|
|
49
|
+
],
|
|
50
|
+
"depends_on": [
|
|
51
|
+
"slice-00-reconciliation-and-evidence-freeze",
|
|
52
|
+
"slice-01-ai-run-state-approvals-and-clean-output"
|
|
53
|
+
],
|
|
54
|
+
"parallel_safe": "after_dependencies",
|
|
55
|
+
"parallel_safe_reason": "Can run after run/approval state is clarified.",
|
|
56
|
+
"must": [
|
|
57
|
+
"Define the minimum `spec.slices[]` contract.",
|
|
58
|
+
"Block approval or spec creation when required structure is missing.",
|
|
59
|
+
"Fail before writing files when the contract is invalid.",
|
|
60
|
+
"Provide a traceable repair path that creates a derived draft requiring review and approval."
|
|
61
|
+
],
|
|
62
|
+
"not_included": [
|
|
63
|
+
"Active-slice reconciliation.",
|
|
64
|
+
"Worktree lifecycle changes.",
|
|
65
|
+
"Publishing npm."
|
|
66
|
+
],
|
|
67
|
+
"acceptance": [
|
|
68
|
+
"A valid structured plan can create the expected spec/slices/handoffs.",
|
|
69
|
+
"An invalid approved plan fails before writing files with an actionable error.",
|
|
70
|
+
"Repairing an approved plan preserves the original and creates a derived draft.",
|
|
71
|
+
"Repair output requires review and approval before spec creation."
|
|
72
|
+
],
|
|
73
|
+
"tests": [
|
|
74
|
+
"node --test tests/commands/ai-plan.test.js tests/commands/ai-plan-spec-phase.test.js tests/commands/spec-create.test.js",
|
|
75
|
+
"node --test tests/lib/ai-spec-generator.test.js tests/lib/approvals.test.js"
|
|
76
|
+
],
|
|
77
|
+
"validation_hints": [
|
|
78
|
+
"Test both dry-run and real write modes.",
|
|
79
|
+
"Assert no files are written on invalid structure."
|
|
80
|
+
],
|
|
81
|
+
"estimated_hours": 10,
|
|
82
|
+
"actual_hours": 10,
|
|
83
|
+
"status": "completed",
|
|
84
|
+
"completed_at": "2026-05-25T21:50:35Z"
|
|
85
|
+
}
|