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,37 @@
|
|
|
1
|
+
# Status - Quiver v27 Reliability and AI Workflow Hardening
|
|
2
|
+
|
|
3
|
+
## Overall Status
|
|
4
|
+
|
|
5
|
+
- Phase: implemented, pending package release
|
|
6
|
+
- Progress: 100%
|
|
7
|
+
- Current recommended slice: none
|
|
8
|
+
- Source evidence: Pixel Quiver final dogfooding traceability (`QP-001` to `QP-019`, `QIS-001` to `QIS-022`)
|
|
9
|
+
|
|
10
|
+
## Slices
|
|
11
|
+
|
|
12
|
+
| Slice | Title | Status | Progress | Dependencies |
|
|
13
|
+
|---|---|---|---:|---|
|
|
14
|
+
| slice-00 | Docs audit, coverage, and contracts | completed | 100% | none |
|
|
15
|
+
| slice-01 | Core state resolver and canonical statuses | completed | 100% | slice-00 |
|
|
16
|
+
| slice-02 | JSON export contract and machine output | completed | 100% | slice-01 |
|
|
17
|
+
| slice-03 | Approved plan to spec create | completed | 100% | slice-01, slice-02 |
|
|
18
|
+
| slice-04 | AI artifact storage, redaction, and token compaction | completed | 100% | slice-01 |
|
|
19
|
+
| slice-05 | Worktree lifecycle, locks, and recovery | completed | 100% | slice-01 |
|
|
20
|
+
| slice-06 | Validation gates and scope safety | completed | 100% | slice-01, slice-05 |
|
|
21
|
+
| slice-07 | Context analysis and doctor flow | completed | 100% | slice-01, slice-06 |
|
|
22
|
+
| slice-08 | Cross-platform help, auth, and DX | completed | 100% | slice-07 |
|
|
23
|
+
| slice-09 | Fixtures, smoke, docs, and release readiness | completed | 100% | slice-02, slice-03, slice-04, slice-05, slice-06, slice-07, slice-08 |
|
|
24
|
+
|
|
25
|
+
## Blockers
|
|
26
|
+
|
|
27
|
+
- No implementation blockers after `slice-09`.
|
|
28
|
+
|
|
29
|
+
## Known Production Concerns
|
|
30
|
+
|
|
31
|
+
- v27 is implemented and validated from source and packaged tarball, but npm publication is not part of this spec.
|
|
32
|
+
- The final Pixel Quiver source files live outside this repo and must remain evidence only; committed fixtures stay sanitized and synthetic.
|
|
33
|
+
- `README_FOR_AI.md`, `ROADMAP.md`, `CHANGELOG.md`, and `README.md` were synchronized with the implemented-but-unpublished state.
|
|
34
|
+
|
|
35
|
+
## Next Step
|
|
36
|
+
|
|
37
|
+
Open the PR or release branch for v27. Publish only after human review and the normal release process.
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
# Quiver v27 - Reliability and AI Workflow Hardening
|
|
2
|
+
|
|
3
|
+
## Title
|
|
4
|
+
|
|
5
|
+
Quiver v27 - Reliability and AI Workflow Hardening
|
|
6
|
+
|
|
7
|
+
## Summary
|
|
8
|
+
|
|
9
|
+
This PR hardens Quiver after Pixel Quiver dogfooding surfaced workflow reliability issues across specs, slices, AI lifecycle commands, validation, worktrees, context diagnostics, and release readiness.
|
|
10
|
+
|
|
11
|
+
Main changes:
|
|
12
|
+
|
|
13
|
+
- Aligns classic and AI command state discovery through a shared resolver and canonical statuses.
|
|
14
|
+
- Stabilizes lifecycle JSON exports for dashboards and agents.
|
|
15
|
+
- Makes `spec create`, AI artifacts, worktrees, validation gates, context commands, and cross-platform DX safer.
|
|
16
|
+
- Adds final fixture, smoke, full-suite, and packaged CLI validation evidence.
|
|
17
|
+
|
|
18
|
+
## Scope
|
|
19
|
+
|
|
20
|
+
- `QP-001` to `QP-019`
|
|
21
|
+
- `QIS-001` to `QIS-022`
|
|
22
|
+
- Specs/slices, AI lifecycle, exports, validators, worktrees, docs, tests, fixtures, and release readiness.
|
|
23
|
+
- npm publication is intentionally out of scope.
|
|
24
|
+
|
|
25
|
+
## Files
|
|
26
|
+
|
|
27
|
+
- `src/create-quiver/**`
|
|
28
|
+
- `bin/create-quiver.js`
|
|
29
|
+
- `docs/**`
|
|
30
|
+
- `docs-template/**`
|
|
31
|
+
- `tests/**`
|
|
32
|
+
- `scripts/**`
|
|
33
|
+
- `package.json`
|
|
34
|
+
- `README.md`
|
|
35
|
+
- `README_FOR_AI.md`
|
|
36
|
+
- `ROADMAP.md`
|
|
37
|
+
- `CHANGELOG.md`
|
|
38
|
+
- `specs/quiver-v27-reliability-ai-workflow-hardening/**`
|
|
39
|
+
|
|
40
|
+
## How to Test (DETAILED - REQUIRED)
|
|
41
|
+
|
|
42
|
+
### Required Environment
|
|
43
|
+
|
|
44
|
+
- Node.js compatible with the current repository test setup.
|
|
45
|
+
- npm available.
|
|
46
|
+
- Git available.
|
|
47
|
+
- No npm publishing credentials are required for this PR.
|
|
48
|
+
|
|
49
|
+
### Worktree Access
|
|
50
|
+
|
|
51
|
+
From the repository root:
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
git status --short --branch
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Expected:
|
|
58
|
+
|
|
59
|
+
- Branch contains the v27 commits.
|
|
60
|
+
- No unrelated tracked changes are required.
|
|
61
|
+
- Untracked local files should not be included unless intentionally staged.
|
|
62
|
+
|
|
63
|
+
### Run the Project
|
|
64
|
+
|
|
65
|
+
This is a CLI framework repository. Validate the CLI directly from source:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
node bin/create-quiver.js --help
|
|
69
|
+
node bin/create-quiver.js flow
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### Use Cases
|
|
73
|
+
|
|
74
|
+
Validate the completed v27 spec:
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
node bin/create-quiver.js spec validate specs/quiver-v27-reliability-ai-workflow-hardening
|
|
78
|
+
node bin/create-quiver.js plan --spec quiver-v27-reliability-ai-workflow-hardening --include-completed
|
|
79
|
+
node bin/create-quiver.js graph --spec quiver-v27-reliability-ai-workflow-hardening --include-completed
|
|
80
|
+
node bin/create-quiver.js next --spec quiver-v27-reliability-ai-workflow-hardening
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
Expected:
|
|
84
|
+
|
|
85
|
+
- Spec validation passes.
|
|
86
|
+
- Plan and graph show all 10 v27 slices as completed.
|
|
87
|
+
- `next` reports no ready slices.
|
|
88
|
+
|
|
89
|
+
### Technical Verification
|
|
90
|
+
|
|
91
|
+
Run:
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
node --test tests/**/*.test.js
|
|
95
|
+
npm run smoke:doctor-fixtures
|
|
96
|
+
npm run smoke:create-quiver
|
|
97
|
+
npm run smoke:guided-workflow
|
|
98
|
+
npm run package:quiver
|
|
99
|
+
git diff --check
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Expected:
|
|
103
|
+
|
|
104
|
+
- Full test suite passes.
|
|
105
|
+
- All smoke suites pass.
|
|
106
|
+
- Package smoke validates the generated tarball.
|
|
107
|
+
- No whitespace errors are reported.
|
|
108
|
+
|
|
109
|
+
## Evidence
|
|
110
|
+
|
|
111
|
+
- `node --test tests/**/*.test.js` passed with 356 tests.
|
|
112
|
+
- `npm run smoke:doctor-fixtures` passed.
|
|
113
|
+
- `npm run smoke:create-quiver` passed.
|
|
114
|
+
- `npm run smoke:guided-workflow` passed.
|
|
115
|
+
- `npm run package:quiver` passed and validated `create-quiver-0.12.1.tgz`.
|
|
116
|
+
- Tarball/package smoke validated installed CLI behavior for help, `flow`, and `ai agent set --dry-run`.
|
|
117
|
+
- `node bin/create-quiver.js spec validate specs/quiver-v27-reliability-ai-workflow-hardening` passed.
|
|
118
|
+
- `node bin/create-quiver.js next --spec quiver-v27-reliability-ai-workflow-hardening` reported no ready slices.
|
|
119
|
+
- `git diff --check` passed.
|
|
120
|
+
|
|
121
|
+
## Rollback
|
|
122
|
+
|
|
123
|
+
Revert the v27 commits from this PR. Since the changes are organized as one spec with one commit per slice, rollback can be done by reverting the affected slice commits in reverse order.
|
|
124
|
+
|
|
125
|
+
If a release has already been published, publish a follow-up patch release after reverting or fixing the affected behavior.
|
|
126
|
+
|
|
127
|
+
## Risks / Notes
|
|
128
|
+
|
|
129
|
+
- Shared resolver changes can affect many commands.
|
|
130
|
+
- Export schema changes require backward-compatible handling or migration notes.
|
|
131
|
+
- Worktree lifecycle changes must preserve existing user workflows.
|
|
132
|
+
- v27 is implemented and release-ready from source/package validation, but npm publication is intentionally outside this spec.
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# CLOSURE BRIEF - slice-00: Docs audit, coverage, and contracts
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
|
|
5
|
+
Completed the documentation foundation for v27 before any product-code implementation.
|
|
6
|
+
|
|
7
|
+
This slice added the full QP/QIS coverage matrix, shared command contracts, and a v24/v25/v26 audit so later slices have a concrete production contract instead of fixing command behavior in isolation.
|
|
8
|
+
|
|
9
|
+
## Validation Against Acceptance Criteria
|
|
10
|
+
|
|
11
|
+
- The v27 spec package exists with `SPEC.md`, `STATUS.md`, `EXECUTION_PLAN.md`, `EVIDENCE_REPORT.md`, `pr.md`, and all slice folders.
|
|
12
|
+
- `COVERAGE_MATRIX.md` maps every `QP-001..QP-019` and `QIS-001..QIS-022` to at least one slice with risk and validation strategy.
|
|
13
|
+
- `COMMAND_CONTRACTS.md` documents exit codes, stdout/stderr behavior, dry-run, write class, idempotency, atomic writes, path safety, root detection, package managers, deterministic ordering, and legacy/strict behavior.
|
|
14
|
+
- `AUDIT_V24_V25_V26.md` documents existing implementation surfaces and remaining dogfooding gaps.
|
|
15
|
+
- `README_FOR_AI.md`, `ROADMAP.md`, and `CHANGELOG.md` were kept aligned with the current state: v26 shipped, v27 active but not published.
|
|
16
|
+
- No product code was modified.
|
|
17
|
+
|
|
18
|
+
## Changes
|
|
19
|
+
|
|
20
|
+
- Added `specs/quiver-v27-reliability-ai-workflow-hardening/COVERAGE_MATRIX.md`.
|
|
21
|
+
- Added `specs/quiver-v27-reliability-ai-workflow-hardening/COMMAND_CONTRACTS.md`.
|
|
22
|
+
- Added `specs/quiver-v27-reliability-ai-workflow-hardening/AUDIT_V24_V25_V26.md`.
|
|
23
|
+
- Updated v27 `SPEC.md`, `STATUS.md`, and `EVIDENCE_REPORT.md` to mark `slice-00` complete and set `slice-01` as the next recommended slice.
|
|
24
|
+
- Updated this closure brief and `slice.json` with completion state.
|
|
25
|
+
|
|
26
|
+
## Remaining Risks
|
|
27
|
+
|
|
28
|
+
- The audit is documentary evidence only. Implementation slices must still add regression tests for each dogfooding failure.
|
|
29
|
+
- Some existing v24/v25/v26 tests may pass while behavior remains insufficient for the exact Pixel Quiver scenarios.
|
|
30
|
+
- Pixel Quiver source files contain local paths and must be sanitized before becoming fixtures.
|
|
31
|
+
|
|
32
|
+
## Follow-up Recommendations
|
|
33
|
+
|
|
34
|
+
- Start `slice-01-core-state-resolver-and-canonical-statuses` next because every later command depends on a shared state resolver.
|
|
35
|
+
- Treat `COMMAND_CONTRACTS.md` as the implementation contract for all later slices.
|
|
36
|
+
- Add fixtures from Pixel Quiver only after replacing personal paths and project-specific values.
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# EXECUTION BRIEF - slice-00: Docs audit, coverage, and contracts
|
|
2
|
+
|
|
3
|
+
## Context
|
|
4
|
+
|
|
5
|
+
Pixel Quiver dogfooding produced `QP-001` to `QP-019` and `QIS-001` to `QIS-022`. Some related Quiver capabilities are documented as shipped in v24, v25, and v26, but real usage showed remaining gaps. This slice creates the foundation and contracts before product code changes.
|
|
6
|
+
|
|
7
|
+
## Objective
|
|
8
|
+
|
|
9
|
+
Create and verify the v27 documentary foundation, coverage matrix, and production command contracts.
|
|
10
|
+
|
|
11
|
+
## Scope
|
|
12
|
+
|
|
13
|
+
- `specs/quiver-v27-reliability-ai-workflow-hardening/**`
|
|
14
|
+
- `README_FOR_AI.md`
|
|
15
|
+
- `ROADMAP.md`
|
|
16
|
+
- `CHANGELOG.md`
|
|
17
|
+
|
|
18
|
+
## Acceptance Criteria
|
|
19
|
+
|
|
20
|
+
- The v27 spec package exists and every slice has `slice.json`, `EXECUTION_BRIEF.md`, and `CLOSURE_BRIEF.md`.
|
|
21
|
+
- Every QP/QIS is mapped to a slice and validation strategy.
|
|
22
|
+
- Cross-command contracts are documented.
|
|
23
|
+
- Source-of-truth docs mention v27 as planned without claiming implementation.
|
|
24
|
+
- No product code changes are made.
|
|
25
|
+
|
|
26
|
+
## Technical Plan Summary
|
|
27
|
+
|
|
28
|
+
Audit existing docs/code/tests, record coverage, and update docs/spec artifacts only.
|
|
29
|
+
|
|
30
|
+
## Suggested Execution Steps
|
|
31
|
+
|
|
32
|
+
1. Inspect v24/v25/v26 docs, implementation, and tests.
|
|
33
|
+
2. Fill the v27 coverage matrix with status per QP/QIS.
|
|
34
|
+
3. Document command contracts and compatibility expectations.
|
|
35
|
+
4. Update source-of-truth docs.
|
|
36
|
+
5. Validate JSON, handoffs, and whitespace.
|
|
37
|
+
|
|
38
|
+
## Restrictions
|
|
39
|
+
|
|
40
|
+
- Do not modify product code.
|
|
41
|
+
- Do not publish npm.
|
|
42
|
+
- Do not open a PR unless explicitly requested.
|
|
43
|
+
|
|
44
|
+
## Risks
|
|
45
|
+
|
|
46
|
+
- Existing docs may overstate implemented behavior; record gaps instead of assuming.
|
|
47
|
+
|
|
48
|
+
## Completion Checklist
|
|
49
|
+
|
|
50
|
+
- [ ] Coverage matrix completed.
|
|
51
|
+
- [ ] Contracts documented.
|
|
52
|
+
- [ ] Source-of-truth docs synced.
|
|
53
|
+
- [ ] JSON validation passed.
|
|
54
|
+
- [ ] Handoff validation passed.
|
|
55
|
+
- [ ] `git diff --check` passed.
|
|
56
|
+
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slice_id": "slice-00-docs-audit-coverage-and-contracts",
|
|
3
|
+
"ticket": "QUIVER-27-00",
|
|
4
|
+
"type": "docs",
|
|
5
|
+
"title": "Docs audit, coverage, and contracts",
|
|
6
|
+
"objective": "Create the v27 documentary foundation, audit existing v24/v25/v26 behavior against Pixel Quiver evidence, and define cross-command contracts before implementation starts.",
|
|
7
|
+
"description": "Audits source-of-truth docs, existing specs, tests, and implementation surfaces; creates a QP/QIS coverage matrix; defines command contracts for exit codes, stdout/stderr, dry-run, write classes, idempotency, atomic writes, path safety, root detection, package managers, deterministic ordering, schema/versioning, and legacy/strict behavior.",
|
|
8
|
+
"git": {
|
|
9
|
+
"branch_type": "feature",
|
|
10
|
+
"base_branch": "main",
|
|
11
|
+
"branch_slug": "v27-docs-audit-coverage-contracts",
|
|
12
|
+
"branch_name": "feature/QUIVER-27-00-v27-docs-audit-coverage-contracts"
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"README_FOR_AI.md",
|
|
16
|
+
"ROADMAP.md",
|
|
17
|
+
"CHANGELOG.md",
|
|
18
|
+
"specs/quiver-v27-reliability-ai-workflow-hardening/**"
|
|
19
|
+
],
|
|
20
|
+
"expected_read_paths": [
|
|
21
|
+
"README_FOR_AI.md",
|
|
22
|
+
"ROADMAP.md",
|
|
23
|
+
"BACKLOG.md",
|
|
24
|
+
"CHANGELOG.md",
|
|
25
|
+
"specs/quiver-v24-dx-onboarding-hardening/**",
|
|
26
|
+
"specs/quiver-v25-ai-first-lifecycle-orchestrator/**",
|
|
27
|
+
"specs/quiver-v26-0121-smoke-hardening/**",
|
|
28
|
+
"src/create-quiver/**",
|
|
29
|
+
"tests/**"
|
|
30
|
+
],
|
|
31
|
+
"allowed_write_paths": [
|
|
32
|
+
"README_FOR_AI.md",
|
|
33
|
+
"ROADMAP.md",
|
|
34
|
+
"CHANGELOG.md",
|
|
35
|
+
"specs/quiver-v27-reliability-ai-workflow-hardening/**"
|
|
36
|
+
],
|
|
37
|
+
"depends_on": [],
|
|
38
|
+
"parallel_safe": "no",
|
|
39
|
+
"parallel_safe_reason": "slice-00 is the mandatory documentary foundation and must land before implementation slices.",
|
|
40
|
+
"must": [
|
|
41
|
+
"Create or refine the v27 planning package.",
|
|
42
|
+
"Map QP-001..QP-019 and QIS-001..QIS-022 to slices and validations.",
|
|
43
|
+
"Audit v24/v25/v26 docs and code for already implemented, partial, broken, or missing behavior.",
|
|
44
|
+
"Define cross-command production contracts.",
|
|
45
|
+
"Avoid product code changes."
|
|
46
|
+
],
|
|
47
|
+
"not_included": [
|
|
48
|
+
"Changing CLI behavior.",
|
|
49
|
+
"Adding tests beyond documentation validation.",
|
|
50
|
+
"Publishing npm.",
|
|
51
|
+
"Opening a PR."
|
|
52
|
+
],
|
|
53
|
+
"acceptance": [
|
|
54
|
+
"The v27 spec folder exists with SPEC.md, STATUS.md, EXECUTION_PLAN.md, EVIDENCE_REPORT.md, pr.md, and all slice folders.",
|
|
55
|
+
"Every QP/QIS is assigned to at least one slice or explicitly marked covered by existing implementation with evidence.",
|
|
56
|
+
"Command contracts for exit codes, stdout/stderr, dry-run, write class, idempotency, atomic writes, path safety, root detection, package managers, deterministic ordering, and legacy/strict behavior are documented.",
|
|
57
|
+
"README_FOR_AI.md, ROADMAP.md, and CHANGELOG.md do not contradict the current v27 planned state.",
|
|
58
|
+
"No product code is modified."
|
|
59
|
+
],
|
|
60
|
+
"tests": [
|
|
61
|
+
"git diff --check",
|
|
62
|
+
"find specs/quiver-v27-reliability-ai-workflow-hardening -name \"slice.json\" -print -exec node -e \"JSON.parse(require('fs').readFileSync(process.argv[1], 'utf8'))\" {} \\;",
|
|
63
|
+
"npx create-quiver check-handoff specs/quiver-v27-reliability-ai-workflow-hardening/slices/slice-00-docs-audit-coverage-and-contracts/EXECUTION_BRIEF.md",
|
|
64
|
+
"npx create-quiver check-handoff specs/quiver-v27-reliability-ai-workflow-hardening/slices/slice-00-docs-audit-coverage-and-contracts/CLOSURE_BRIEF.md"
|
|
65
|
+
],
|
|
66
|
+
"validation_hints": [
|
|
67
|
+
"Use git diff to confirm the slice is documentation-only.",
|
|
68
|
+
"Do not copy unsanitized Pixel Quiver absolute paths into fixtures."
|
|
69
|
+
],
|
|
70
|
+
"estimated_hours": 3,
|
|
71
|
+
"actual_hours": 3,
|
|
72
|
+
"status": "completed",
|
|
73
|
+
"completed_at": "2026-05-24T13:38:42Z",
|
|
74
|
+
"blocked_reason": null
|
|
75
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# CLOSURE BRIEF - slice-01: Core state resolver and canonical statuses
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
|
|
5
|
+
Implemented the shared resolver foundation for Quiver lifecycle state.
|
|
6
|
+
|
|
7
|
+
Classic commands and AI lifecycle surfaces now share a resolver layer for slice discovery, scoped reads, canonical status normalization, deterministic ordering, completed-slice filtering, graph summaries, and progress calculations.
|
|
8
|
+
|
|
9
|
+
## Validation Against Acceptance Criteria
|
|
10
|
+
|
|
11
|
+
- Classic `plan` and `graph` commands now resolve slices through `project-state-resolver`.
|
|
12
|
+
- AI lifecycle export/list/inspect state now resolves slices through the same resolver.
|
|
13
|
+
- Completed slices are visible when `includeCompleted` or `--include-completed` is requested.
|
|
14
|
+
- Scoped reads continue to avoid parsing unrelated historical specs.
|
|
15
|
+
- Status aliases are normalized through a shared canonical catalog while preserving legacy `status` fields for compatibility.
|
|
16
|
+
- Existing behavior for plan, graph, next, doctor, and AI export/list/inspect remains covered by tests.
|
|
17
|
+
|
|
18
|
+
## Changes
|
|
19
|
+
|
|
20
|
+
- Added `src/create-quiver/lib/statuses.js`.
|
|
21
|
+
- Added `src/create-quiver/lib/project-state-resolver.js`.
|
|
22
|
+
- Updated `src/create-quiver/commands/plan.js`.
|
|
23
|
+
- Updated `src/create-quiver/commands/graph.js`.
|
|
24
|
+
- Updated `src/create-quiver/lib/ai/export-state.js`.
|
|
25
|
+
- Added `tests/lib/project-state-resolver.test.js`.
|
|
26
|
+
- Updated v27 evidence, status, and spec docs.
|
|
27
|
+
|
|
28
|
+
## Remaining Risks
|
|
29
|
+
|
|
30
|
+
- `flow` and deeper doctor next-step logic still have command-specific state logic; their full hardening remains assigned to `slice-07`.
|
|
31
|
+
- The public JSON export schema is not finalized in this slice; `slice-02` owns that contract.
|
|
32
|
+
- Worktree state is not yet unified through the resolver; `slice-05` owns persistent worktree lifecycle behavior.
|
|
33
|
+
|
|
34
|
+
## Follow-up Recommendations
|
|
35
|
+
|
|
36
|
+
- Execute `slice-02-json-export-contract-and-machine-output` next to stabilize the machine-readable export contract over the resolver.
|
|
37
|
+
- Keep `status` fields backward compatible and expose canonical state through additive fields until a migration is explicitly approved.
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# EXECUTION BRIEF - slice-01: Core state resolver and canonical statuses
|
|
2
|
+
|
|
3
|
+
## Context
|
|
4
|
+
|
|
5
|
+
Pixel Quiver showed that classic commands and AI commands can disagree about specs/slices, especially completed slices. This slice creates the shared model that later export, spec create, validation, and DX work depends on.
|
|
6
|
+
|
|
7
|
+
## Objective
|
|
8
|
+
|
|
9
|
+
Implement a shared internal resolver and canonical status model.
|
|
10
|
+
|
|
11
|
+
## Scope
|
|
12
|
+
|
|
13
|
+
- Resolver/state code under `src/create-quiver/lib/**`
|
|
14
|
+
- Command adapters that currently discover specs/slices independently
|
|
15
|
+
- Tests and fixtures for state discovery
|
|
16
|
+
- v27 evidence/status docs
|
|
17
|
+
|
|
18
|
+
## Acceptance Criteria
|
|
19
|
+
|
|
20
|
+
- Classic and AI commands can resolve the same specs/slices from the same underlying model.
|
|
21
|
+
- Completed slices are included when explicitly requested.
|
|
22
|
+
- Scoped reads do not parse unrelated specs unnecessarily.
|
|
23
|
+
- Status values are normalized and deterministic.
|
|
24
|
+
- Existing command contracts are preserved or explicitly documented.
|
|
25
|
+
|
|
26
|
+
## Technical Plan Summary
|
|
27
|
+
|
|
28
|
+
Extract or introduce a resolver module, route affected commands through it, add fixtures for mixed states, and test deterministic output.
|
|
29
|
+
|
|
30
|
+
## Suggested Execution Steps
|
|
31
|
+
|
|
32
|
+
1. Identify all spec/slice discovery implementations.
|
|
33
|
+
2. Design the internal model and canonical statuses.
|
|
34
|
+
3. Refactor command adapters incrementally.
|
|
35
|
+
4. Add tests for completed/draft/multiple-spec/scoped cases.
|
|
36
|
+
5. Update evidence and status.
|
|
37
|
+
|
|
38
|
+
## Restrictions
|
|
39
|
+
|
|
40
|
+
- Do not change public JSON schema in this slice unless required for compatibility.
|
|
41
|
+
- Do not implement spec create parsing here.
|
|
42
|
+
|
|
43
|
+
## Risks
|
|
44
|
+
|
|
45
|
+
- Broad resolver changes can regress many commands; keep adapters small and tested.
|
|
46
|
+
|
|
47
|
+
## Completion Checklist
|
|
48
|
+
|
|
49
|
+
- [ ] Shared resolver implemented.
|
|
50
|
+
- [ ] Canonical statuses documented in code/tests.
|
|
51
|
+
- [ ] Classic and AI commands covered by tests.
|
|
52
|
+
- [ ] Scoped behavior covered.
|
|
53
|
+
- [ ] Validation commands passed.
|
|
54
|
+
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slice_id": "slice-01-core-state-resolver-and-canonical-statuses",
|
|
3
|
+
"ticket": "QUIVER-27-01",
|
|
4
|
+
"type": "implementation",
|
|
5
|
+
"title": "Core state resolver and canonical statuses",
|
|
6
|
+
"objective": "Create a shared internal resolver and canonical status model used by classic and AI commands.",
|
|
7
|
+
"description": "Unifies spec, slice, run, approval, agent, evidence, worktree, status, source metadata, root detection, and ordering behavior so commands stop disagreeing about project state.",
|
|
8
|
+
"git": {
|
|
9
|
+
"branch_type": "feature",
|
|
10
|
+
"base_branch": "main",
|
|
11
|
+
"branch_slug": "v27-core-state-resolver-canonical-statuses",
|
|
12
|
+
"branch_name": "feature/QUIVER-27-01-v27-core-state-resolver-canonical-statuses"
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"src/create-quiver/lib/**",
|
|
16
|
+
"src/create-quiver/commands/**",
|
|
17
|
+
"tests/lib/**",
|
|
18
|
+
"tests/commands/**",
|
|
19
|
+
"specs/quiver-v27-reliability-ai-workflow-hardening/**"
|
|
20
|
+
],
|
|
21
|
+
"expected_read_paths": [
|
|
22
|
+
"src/create-quiver/lib/slice-graph.js",
|
|
23
|
+
"src/create-quiver/lib/ai/export-state.js",
|
|
24
|
+
"src/create-quiver/lib/doctor.js",
|
|
25
|
+
"src/create-quiver/commands/plan.js",
|
|
26
|
+
"src/create-quiver/commands/graph.js",
|
|
27
|
+
"src/create-quiver/commands/next.js",
|
|
28
|
+
"src/create-quiver/commands/ai.js",
|
|
29
|
+
"tests/lib/ai-export-state.test.js",
|
|
30
|
+
"tests/commands/ai-export.test.js",
|
|
31
|
+
"tests/commands/plan.test.js",
|
|
32
|
+
"tests/commands/doctor.test.js"
|
|
33
|
+
],
|
|
34
|
+
"allowed_write_paths": [
|
|
35
|
+
"src/create-quiver/lib/**",
|
|
36
|
+
"src/create-quiver/commands/**",
|
|
37
|
+
"tests/lib/**",
|
|
38
|
+
"tests/commands/**",
|
|
39
|
+
"specs/quiver-v27-reliability-ai-workflow-hardening/**"
|
|
40
|
+
],
|
|
41
|
+
"depends_on": [
|
|
42
|
+
"slice-00-docs-audit-coverage-and-contracts"
|
|
43
|
+
],
|
|
44
|
+
"parallel_safe": "no",
|
|
45
|
+
"parallel_safe_reason": "This slice defines shared contracts consumed by later slices.",
|
|
46
|
+
"must": [
|
|
47
|
+
"Define canonical statuses for specs, slices, runs, approvals, agents, and datasets.",
|
|
48
|
+
"Expose a shared resolver for classic and AI commands.",
|
|
49
|
+
"Support scoped reads with --spec without parsing unrelated historical specs unnecessarily.",
|
|
50
|
+
"Return deterministic ordering.",
|
|
51
|
+
"Preserve compatibility for existing commands."
|
|
52
|
+
],
|
|
53
|
+
"not_included": [
|
|
54
|
+
"Public JSON export schema changes beyond resolver plumbing.",
|
|
55
|
+
"Spec create parsing changes.",
|
|
56
|
+
"Worktree lifecycle changes."
|
|
57
|
+
],
|
|
58
|
+
"acceptance": [
|
|
59
|
+
"Classic and AI command tests share the same state resolver or a documented adapter over it.",
|
|
60
|
+
"Completed slices are visible when includeCompleted/include-completed is requested.",
|
|
61
|
+
"Scoped reads avoid unrelated specs where possible.",
|
|
62
|
+
"Status values are normalized through one canonical catalog.",
|
|
63
|
+
"Existing plan, graph, next, doctor, ai inspect, and ai list behavior remains compatible."
|
|
64
|
+
],
|
|
65
|
+
"tests": [
|
|
66
|
+
"node --test tests/lib/*resolver*.test.js tests/lib/ai-export-state.test.js tests/commands/ai-export.test.js tests/commands/plan.test.js tests/commands/graph.test.js tests/commands/doctor.test.js",
|
|
67
|
+
"npm run smoke:doctor-fixtures",
|
|
68
|
+
"git diff --check"
|
|
69
|
+
],
|
|
70
|
+
"validation_hints": [
|
|
71
|
+
"Add fixtures for multiple specs with completed and draft slices.",
|
|
72
|
+
"Assert ordering is stable across runs."
|
|
73
|
+
],
|
|
74
|
+
"estimated_hours": 6,
|
|
75
|
+
"actual_hours": 6,
|
|
76
|
+
"status": "completed",
|
|
77
|
+
"completed_at": "2026-05-24T13:48:34Z",
|
|
78
|
+
"blocked_reason": null
|
|
79
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# CLOSURE BRIEF - slice-02: JSON export contract and machine output
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
|
|
5
|
+
Implemented the v27 machine-readable lifecycle export contract.
|
|
6
|
+
|
|
7
|
+
`ai export --format json` now emits schema v2 lifecycle data with source metadata, warnings, approvals, blockers, evidence, next steps, lifecycle details, aggregates, and canonical statuses while preserving existing fields for compatibility.
|
|
8
|
+
|
|
9
|
+
## Validation Against Acceptance Criteria
|
|
10
|
+
|
|
11
|
+
- `ai export --format json` emits parseable JSON only on stdout.
|
|
12
|
+
- Successful JSON export keeps stderr empty.
|
|
13
|
+
- Unsupported formats fail non-zero and write the actionable error to stderr.
|
|
14
|
+
- Completed slices are exported when `--include-completed` is used.
|
|
15
|
+
- Export includes source metadata, warnings, aggregates, approvals, blockers, evidence, next steps, lifecycle, specs, slices, agents, and runs.
|
|
16
|
+
- Arrays used by specs, slices, evidence, and resolver-backed state remain deterministically ordered by existing resolver ordering.
|
|
17
|
+
|
|
18
|
+
## Changes
|
|
19
|
+
|
|
20
|
+
- Updated `src/create-quiver/lib/ai/export-state.js`.
|
|
21
|
+
- Updated `tests/lib/ai-export-state.test.js`.
|
|
22
|
+
- Updated `tests/commands/ai-export.test.js`.
|
|
23
|
+
- Updated v27 spec status, execution plan, evidence, and this closure brief.
|
|
24
|
+
|
|
25
|
+
## Remaining Risks
|
|
26
|
+
|
|
27
|
+
- The export contract is additive, but downstream users that hard-code `schema_version: 1` will need to accept schema v2.
|
|
28
|
+
- The schema is asserted by tests, but there is not yet a separate JSON Schema artifact; that can be added in a later hardening slice if needed.
|
|
29
|
+
- Some approval and evidence fields may remain empty in projects that have not used the AI lifecycle yet.
|
|
30
|
+
|
|
31
|
+
## Follow-up Recommendations
|
|
32
|
+
|
|
33
|
+
- Execute `slice-03-approved-plan-to-spec-create` next because it depends on stable resolver/export behavior.
|
|
34
|
+
- Keep any future export changes additive unless a new schema version and migration note are explicitly added.
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# EXECUTION BRIEF - slice-02: JSON export contract and machine output
|
|
2
|
+
|
|
3
|
+
## Context
|
|
4
|
+
|
|
5
|
+
Pixel Quiver could not consume `ai export --format json` directly because the output schema did not match dashboard needs and completed slices were missing in some states. This slice stabilizes machine output.
|
|
6
|
+
|
|
7
|
+
## Objective
|
|
8
|
+
|
|
9
|
+
Implement a stable, versioned JSON export contract and align AI export behavior with it.
|
|
10
|
+
|
|
11
|
+
## Scope
|
|
12
|
+
|
|
13
|
+
- Export resolver/adapters
|
|
14
|
+
- CLI format handling
|
|
15
|
+
- JSON schema fixtures/tests
|
|
16
|
+
- v27 evidence/status docs
|
|
17
|
+
|
|
18
|
+
## Acceptance Criteria
|
|
19
|
+
|
|
20
|
+
- `--format json` emits parseable JSON only on stdout.
|
|
21
|
+
- Export includes the required state, source metadata, warnings, and aggregates.
|
|
22
|
+
- Completed slices appear with `--include-completed`.
|
|
23
|
+
- Errors go to stderr and exit non-zero.
|
|
24
|
+
- Arrays are deterministically ordered.
|
|
25
|
+
|
|
26
|
+
## Technical Plan Summary
|
|
27
|
+
|
|
28
|
+
Define schema, serialize from the shared resolver, align `ai export`, and add CLI parse tests.
|
|
29
|
+
|
|
30
|
+
## Suggested Execution Steps
|
|
31
|
+
|
|
32
|
+
1. Define export payload shape and schema version.
|
|
33
|
+
2. Implement serializer over the shared resolver.
|
|
34
|
+
3. Align `ai export` and/or add `export-specs`.
|
|
35
|
+
4. Add valid/invalid fixtures and CLI tests.
|
|
36
|
+
5. Update docs/evidence.
|
|
37
|
+
|
|
38
|
+
## Restrictions
|
|
39
|
+
|
|
40
|
+
- Do not add dashboard UI.
|
|
41
|
+
- Do not mix human logs into JSON stdout.
|
|
42
|
+
|
|
43
|
+
## Risks
|
|
44
|
+
|
|
45
|
+
- Existing consumers may rely on older `ai export`; preserve or document compatibility.
|
|
46
|
+
|
|
47
|
+
## Completion Checklist
|
|
48
|
+
|
|
49
|
+
- [ ] Schema implemented.
|
|
50
|
+
- [ ] CLI JSON parse tests added.
|
|
51
|
+
- [ ] Completed slice export covered.
|
|
52
|
+
- [ ] Error path covered.
|
|
53
|
+
- [ ] Validation commands passed.
|
|
54
|
+
|