create-quiver 0.13.0 → 0.14.1

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.
Files changed (92) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/README.md +183 -511
  3. package/README_FOR_AI.md +36 -26
  4. package/ROADMAP.md +11 -0
  5. package/assets/quiver-wordmark.svg +22 -0
  6. package/docs/AI_CONTEXT.md.template +2 -0
  7. package/docs/AI_ONBOARDING_PROMPT.md.template +9 -1
  8. package/docs/CLI_UX_GUIDE.md +125 -0
  9. package/docs/COMMANDS.md.template +19 -4
  10. package/docs/GITFLOW_PR_GUIDE.md +70 -0
  11. package/docs/TROUBLESHOOTING.md.template +29 -0
  12. package/docs/WORKFLOW.md.template +13 -12
  13. package/docs/getting-started/linux.md +84 -0
  14. package/docs/getting-started/macos.md +85 -0
  15. package/docs/getting-started/windows-git-bash-wsl.md +78 -0
  16. package/docs/getting-started/windows-powershell.md +96 -0
  17. package/docs/reference/commands.md +94 -0
  18. package/docs/workflows/existing-project.md +131 -0
  19. package/docs/workflows/full-ai-spec-to-pr.md +311 -0
  20. package/docs/workflows/legacy-quiver-project.md +102 -0
  21. package/docs/workflows/new-project.md +76 -0
  22. package/package.json +5 -1
  23. package/specs/quiver-v28-pixel-quiver-feedback-reconciliation/COVERAGE_MATRIX.md +117 -0
  24. package/specs/quiver-v28-pixel-quiver-feedback-reconciliation/EVIDENCE_REPORT.md +200 -0
  25. package/specs/quiver-v28-pixel-quiver-feedback-reconciliation/EXECUTION_PLAN.md +60 -0
  26. package/specs/quiver-v28-pixel-quiver-feedback-reconciliation/SPEC.md +132 -0
  27. package/specs/quiver-v28-pixel-quiver-feedback-reconciliation/STATUS.md +36 -0
  28. package/specs/quiver-v28-pixel-quiver-feedback-reconciliation/pr.md +128 -0
  29. package/specs/quiver-v28-pixel-quiver-feedback-reconciliation/slices/slice-00-reconciliation-and-evidence-freeze/CLOSURE_BRIEF.md +44 -0
  30. package/specs/quiver-v28-pixel-quiver-feedback-reconciliation/slices/slice-00-reconciliation-and-evidence-freeze/EXECUTION_BRIEF.md +56 -0
  31. package/specs/quiver-v28-pixel-quiver-feedback-reconciliation/slices/slice-00-reconciliation-and-evidence-freeze/slice.json +71 -0
  32. package/specs/quiver-v28-pixel-quiver-feedback-reconciliation/slices/slice-01-ai-run-state-approvals-and-clean-output/CLOSURE_BRIEF.md +38 -0
  33. package/specs/quiver-v28-pixel-quiver-feedback-reconciliation/slices/slice-01-ai-run-state-approvals-and-clean-output/EXECUTION_BRIEF.md +53 -0
  34. package/specs/quiver-v28-pixel-quiver-feedback-reconciliation/slices/slice-01-ai-run-state-approvals-and-clean-output/slice.json +83 -0
  35. package/specs/quiver-v28-pixel-quiver-feedback-reconciliation/slices/slice-02-structured-technical-plan-contract-and-repair-flow/CLOSURE_BRIEF.md +33 -0
  36. package/specs/quiver-v28-pixel-quiver-feedback-reconciliation/slices/slice-02-structured-technical-plan-contract-and-repair-flow/EXECUTION_BRIEF.md +53 -0
  37. package/specs/quiver-v28-pixel-quiver-feedback-reconciliation/slices/slice-02-structured-technical-plan-contract-and-repair-flow/slice.json +85 -0
  38. package/specs/quiver-v28-pixel-quiver-feedback-reconciliation/slices/slice-03-active-slice-reconciliation-and-ai-inspect/CLOSURE_BRIEF.md +34 -0
  39. package/specs/quiver-v28-pixel-quiver-feedback-reconciliation/slices/slice-03-active-slice-reconciliation-and-ai-inspect/EXECUTION_BRIEF.md +52 -0
  40. package/specs/quiver-v28-pixel-quiver-feedback-reconciliation/slices/slice-03-active-slice-reconciliation-and-ai-inspect/slice.json +82 -0
  41. package/specs/quiver-v28-pixel-quiver-feedback-reconciliation/slices/slice-04-spec-validation-scope-and-worktree-reliability/CLOSURE_BRIEF.md +32 -0
  42. package/specs/quiver-v28-pixel-quiver-feedback-reconciliation/slices/slice-04-spec-validation-scope-and-worktree-reliability/EXECUTION_BRIEF.md +55 -0
  43. package/specs/quiver-v28-pixel-quiver-feedback-reconciliation/slices/slice-04-spec-validation-scope-and-worktree-reliability/slice.json +85 -0
  44. package/specs/quiver-v28-pixel-quiver-feedback-reconciliation/slices/slice-05-review-plan-closure-and-agent-dx/CLOSURE_BRIEF.md +35 -0
  45. package/specs/quiver-v28-pixel-quiver-feedback-reconciliation/slices/slice-05-review-plan-closure-and-agent-dx/EXECUTION_BRIEF.md +59 -0
  46. package/specs/quiver-v28-pixel-quiver-feedback-reconciliation/slices/slice-05-review-plan-closure-and-agent-dx/slice.json +94 -0
  47. package/specs/quiver-v28-pixel-quiver-feedback-reconciliation/slices/slice-06-backward-compatibility-docs-and-release-readiness/CLOSURE_BRIEF.md +40 -0
  48. package/specs/quiver-v28-pixel-quiver-feedback-reconciliation/slices/slice-06-backward-compatibility-docs-and-release-readiness/EXECUTION_BRIEF.md +56 -0
  49. package/specs/quiver-v28-pixel-quiver-feedback-reconciliation/slices/slice-06-backward-compatibility-docs-and-release-readiness/slice.json +98 -0
  50. package/specs/quiver-v29-planner-prepare-context-cli-ux/EVIDENCE_REPORT.md +163 -0
  51. package/specs/quiver-v29-planner-prepare-context-cli-ux/EXECUTION_PLAN.md +72 -0
  52. package/specs/quiver-v29-planner-prepare-context-cli-ux/SPEC.md +173 -0
  53. package/specs/quiver-v29-planner-prepare-context-cli-ux/STATUS.md +34 -0
  54. package/specs/quiver-v29-planner-prepare-context-cli-ux/pr.md +95 -0
  55. package/specs/quiver-v29-planner-prepare-context-cli-ux/slices/slice-00-cli-ux-spec-foundation/CLOSURE_BRIEF.md +32 -0
  56. package/specs/quiver-v29-planner-prepare-context-cli-ux/slices/slice-00-cli-ux-spec-foundation/EXECUTION_BRIEF.md +45 -0
  57. package/specs/quiver-v29-planner-prepare-context-cli-ux/slices/slice-00-cli-ux-spec-foundation/slice.json +58 -0
  58. package/specs/quiver-v29-planner-prepare-context-cli-ux/slices/slice-01-cli-ux-primitives-theme/CLOSURE_BRIEF.md +33 -0
  59. package/specs/quiver-v29-planner-prepare-context-cli-ux/slices/slice-01-cli-ux-primitives-theme/EXECUTION_BRIEF.md +49 -0
  60. package/specs/quiver-v29-planner-prepare-context-cli-ux/slices/slice-01-cli-ux-primitives-theme/slice.json +75 -0
  61. package/specs/quiver-v29-planner-prepare-context-cli-ux/slices/slice-02-planner-context-proposal-contract/CLOSURE_BRIEF.md +32 -0
  62. package/specs/quiver-v29-planner-prepare-context-cli-ux/slices/slice-02-planner-context-proposal-contract/EXECUTION_BRIEF.md +47 -0
  63. package/specs/quiver-v29-planner-prepare-context-cli-ux/slices/slice-02-planner-context-proposal-contract/slice.json +71 -0
  64. package/specs/quiver-v29-planner-prepare-context-cli-ux/slices/slice-03-prepare-context-planner-review-flow/CLOSURE_BRIEF.md +33 -0
  65. package/specs/quiver-v29-planner-prepare-context-cli-ux/slices/slice-03-prepare-context-planner-review-flow/EXECUTION_BRIEF.md +52 -0
  66. package/specs/quiver-v29-planner-prepare-context-cli-ux/slices/slice-03-prepare-context-planner-review-flow/slice.json +82 -0
  67. package/specs/quiver-v29-planner-prepare-context-cli-ux/slices/slice-04-ux-flag-matrix-compatibility/CLOSURE_BRIEF.md +34 -0
  68. package/specs/quiver-v29-planner-prepare-context-cli-ux/slices/slice-04-ux-flag-matrix-compatibility/EXECUTION_BRIEF.md +46 -0
  69. package/specs/quiver-v29-planner-prepare-context-cli-ux/slices/slice-04-ux-flag-matrix-compatibility/slice.json +73 -0
  70. package/specs/quiver-v29-planner-prepare-context-cli-ux/slices/slice-05-progressive-command-adoption/CLOSURE_BRIEF.md +34 -0
  71. package/specs/quiver-v29-planner-prepare-context-cli-ux/slices/slice-05-progressive-command-adoption/EXECUTION_BRIEF.md +46 -0
  72. package/specs/quiver-v29-planner-prepare-context-cli-ux/slices/slice-05-progressive-command-adoption/slice.json +83 -0
  73. package/specs/quiver-v29-planner-prepare-context-cli-ux/slices/slice-06-docs-tests-smoke-readiness/CLOSURE_BRIEF.md +31 -0
  74. package/specs/quiver-v29-planner-prepare-context-cli-ux/slices/slice-06-docs-tests-smoke-readiness/EXECUTION_BRIEF.md +50 -0
  75. package/specs/quiver-v29-planner-prepare-context-cli-ux/slices/slice-06-docs-tests-smoke-readiness/slice.json +95 -0
  76. package/src/create-quiver/commands/ai.js +938 -16
  77. package/src/create-quiver/commands/spec.js +74 -2
  78. package/src/create-quiver/index.js +91 -5
  79. package/src/create-quiver/lib/ai/context-packs.js +2 -2
  80. package/src/create-quiver/lib/ai/context-proposal.js +389 -0
  81. package/src/create-quiver/lib/ai/context-proposal.schema.js +31 -0
  82. package/src/create-quiver/lib/ai/export-state.js +52 -5
  83. package/src/create-quiver/lib/ai/github.js +14 -2
  84. package/src/create-quiver/lib/ai/plan-review.js +159 -0
  85. package/src/create-quiver/lib/ai/run-state.js +17 -2
  86. package/src/create-quiver/lib/ai/spec-generator.js +15 -0
  87. package/src/create-quiver/lib/cli/editor.js +118 -0
  88. package/src/create-quiver/lib/cli/theme.js +100 -0
  89. package/src/create-quiver/lib/cli/ux-flags.js +151 -0
  90. package/src/create-quiver/lib/cli/ux.js +130 -0
  91. package/src/create-quiver/lib/project-state-resolver.js +195 -1
  92. package/src/create-quiver/lib/spec-worktrees.js +50 -2
@@ -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
+ }
@@ -0,0 +1,34 @@
1
+ # CLOSURE BRIEF - slice-03: Active slice reconciliation and AI inspect
2
+
3
+ ## Summary
4
+
5
+ Implemented active-slice reconciliation and spec-aware `ai inspect` recovery for the v28 Pixel Quiver feedback loop.
6
+
7
+ ## Validation
8
+
9
+ Passed:
10
+
11
+ - `node --test tests/commands/ai-export.test.js tests/commands/cli-contract.test.js`
12
+ - `node --test tests/lib/project-state-resolver.test.js tests/lib/ai-export-state.test.js`
13
+
14
+ ## Relevant Changes
15
+
16
+ - Added `collectActiveSliceState` in `src/create-quiver/lib/project-state-resolver.js` to read `docs/ai/ACTIVE_SLICE.md` and `ACTIVE_SLICES.md`.
17
+ - Added reconciliation decisions: `preserve`, `close`, `replace`, and `blocked`.
18
+ - Added `npx create-quiver ai active-slice status|reconcile`; `reconcile` is dry-run-first and currently refuses live writes.
19
+ - Updated lifecycle export and inspect output to include active-slice state, blockers, dashboard data, and spec-aware next steps.
20
+ - Added regression tests for conflicting active sources, missing active doc replacement, completed active slice closure, stale spec-create guidance, and CLI dry-run output.
21
+
22
+ ## Pending Work
23
+
24
+ No pending work for this slice.
25
+
26
+ ## Remaining Risks
27
+
28
+ - `ai active-slice reconcile` intentionally does not write changes yet. Future write mode should be implemented only with explicit safe file operations and backup behavior.
29
+ - Active-slice Markdown parsing supports the current generated formats; unusual custom tables may still require manual correction.
30
+
31
+ ## Future Recommendations
32
+
33
+ - Consider adding a future write-capable `ai active-slice reconcile --apply` only after the dry-run report is stable across real dogfooding projects.
34
+ - Consider exposing active-slice state in any future dashboard/export consumer as a first-class readiness signal.
@@ -0,0 +1,52 @@
1
+ # EXECUTION BRIEF - slice-03: Active slice reconciliation and AI inspect
2
+
3
+ ## Context
4
+
5
+ Pixel Quiver showed that active slice state can live in more than one file and that `ai inspect` can continue suggesting `spec create` after a spec exists by fallback.
6
+
7
+ ## Objective
8
+
9
+ Make active-slice state inspectable, safely reconcilable, and reflected in AI inspection guidance.
10
+
11
+ ## Scope
12
+
13
+ - Project state resolver.
14
+ - AI inspect/export state.
15
+ - Active slice status/reconciliation command surface if needed.
16
+ - Tests and fixtures for conflicting active state.
17
+
18
+ ## Acceptance Criteria
19
+
20
+ - All active-slice sources are detected.
21
+ - Dry-run reconciliation is safe and explicit.
22
+ - `ai inspect` does not recommend stale `spec create` when an existing spec should be validated or executed.
23
+ - No worktrees or branches are deleted automatically.
24
+
25
+ ## Technical Plan Summary
26
+
27
+ Extend the resolver to read active-slice sources, expose reconciliation states, and update AI inspect guidance.
28
+
29
+ ## Suggested Execution Steps
30
+
31
+ 1. Add fixtures for active-state conflicts.
32
+ 2. Extend resolver tests.
33
+ 3. Update inspect/export behavior.
34
+ 4. Add command/help updates if a new command surface is introduced.
35
+ 5. Validate no-write dry-run behavior.
36
+
37
+ ## Restrictions
38
+
39
+ - Do not implement repair-plan logic.
40
+ - Do not modify worktree lifecycle logic except for reading/reporting.
41
+
42
+ ## Risks
43
+
44
+ - Existing generated projects may have partial active-slice files.
45
+
46
+ ## Completion Checklist
47
+
48
+ - [ ] Resolver tests pass.
49
+ - [ ] Inspect/export tests pass.
50
+ - [ ] Dry-run behavior verified.
51
+ - [ ] Docs/evidence updated.
52
+
@@ -0,0 +1,82 @@
1
+ {
2
+ "slice_id": "slice-03-active-slice-reconciliation-and-ai-inspect",
3
+ "ticket": "QUIVER-28-03",
4
+ "type": "feature",
5
+ "title": "Active slice reconciliation and AI inspect",
6
+ "objective": "Reconcile active slice state across multiple sources and make `ai inspect` recover from manual or fallback spec creation.",
7
+ "description": "Adds a safe, dry-run-first path for active-slice state and updates inspect guidance when specs already exist even if lifecycle state still points to spec creation.",
8
+ "git": {
9
+ "branch_type": "feature",
10
+ "base_branch": "main",
11
+ "branch_slug": "v28-active-slice-reconciliation-ai-inspect",
12
+ "branch_name": "feature/QUIVER-28-03-v28-active-slice-reconciliation-ai-inspect"
13
+ },
14
+ "files": [
15
+ "src/create-quiver/commands/ai.js",
16
+ "src/create-quiver/index.js",
17
+ "src/create-quiver/lib/project-state-resolver.js",
18
+ "src/create-quiver/lib/lifecycle.js",
19
+ "src/create-quiver/lib/statuses.js",
20
+ "src/create-quiver/lib/ai/export-state.js",
21
+ "tests/commands/ai-export.test.js",
22
+ "tests/commands/cli-contract.test.js",
23
+ "tests/lib/project-state-resolver.test.js",
24
+ "tests/lib/ai-export-state.test.js",
25
+ "specs/quiver-v28-pixel-quiver-feedback-reconciliation/**"
26
+ ],
27
+ "expected_read_paths": [
28
+ "src/create-quiver/lib/project-state-resolver.js",
29
+ "src/create-quiver/lib/lifecycle.js",
30
+ "src/create-quiver/commands/ai.js",
31
+ "tests/lib/project-state-resolver.test.js",
32
+ "tests/commands/ai-export.test.js"
33
+ ],
34
+ "allowed_write_paths": [
35
+ "src/create-quiver/commands/ai.js",
36
+ "src/create-quiver/index.js",
37
+ "src/create-quiver/lib/project-state-resolver.js",
38
+ "src/create-quiver/lib/lifecycle.js",
39
+ "src/create-quiver/lib/statuses.js",
40
+ "src/create-quiver/lib/ai/export-state.js",
41
+ "tests/commands/ai-export.test.js",
42
+ "tests/commands/cli-contract.test.js",
43
+ "tests/lib/project-state-resolver.test.js",
44
+ "tests/lib/ai-export-state.test.js",
45
+ "specs/quiver-v28-pixel-quiver-feedback-reconciliation/**"
46
+ ],
47
+ "depends_on": [
48
+ "slice-00-reconciliation-and-evidence-freeze",
49
+ "slice-01-ai-run-state-approvals-and-clean-output"
50
+ ],
51
+ "parallel_safe": "after_dependencies",
52
+ "parallel_safe_reason": "Can run after the run/approval model is clarified.",
53
+ "must": [
54
+ "Detect active slice state in docs/ai/ACTIVE_SLICE.md and ACTIVE_SLICES.md.",
55
+ "Return safe states: preserve, close, replace, blocked.",
56
+ "Keep reconciliation dry-run-first.",
57
+ "Update ai inspect next steps when specs exist by fallback/manual creation."
58
+ ],
59
+ "not_included": [
60
+ "Spec-create structured plan contract.",
61
+ "Worktree filesystem validation.",
62
+ "Deleting branches or worktrees automatically."
63
+ ],
64
+ "acceptance": [
65
+ "Active-slice state is reported from every supported source.",
66
+ "Reconciliation dry-run lists planned file changes and risks.",
67
+ "No state is changed without explicit write mode.",
68
+ "ai inspect suggests spec validate/next/prompt-slice when a spec already exists."
69
+ ],
70
+ "tests": [
71
+ "node --test tests/commands/ai-export.test.js tests/commands/cli-contract.test.js",
72
+ "node --test tests/lib/project-state-resolver.test.js tests/lib/ai-export-state.test.js"
73
+ ],
74
+ "validation_hints": [
75
+ "Use fixtures for conflicting active slice files.",
76
+ "Do not delete real worktrees in tests."
77
+ ],
78
+ "estimated_hours": 10,
79
+ "actual_hours": 10,
80
+ "status": "completed",
81
+ "completed_at": "2026-05-25T22:02:27Z"
82
+ }
@@ -0,0 +1,32 @@
1
+ # CLOSURE BRIEF - slice-04: Spec validation, scope, and worktree reliability
2
+
3
+ ## Summary
4
+
5
+ Completed the validation and worktree reliability hardening for v28. `spec validate` now catches missing execution git metadata, `spec status` reports expected but unregistered worktree paths as stale, `spec start --dry-run` gives actionable dirty-checkout recovery, and scope matching has regression coverage for exact paths plus supported globs.
6
+
7
+ ## Validation
8
+
9
+ Passed:
10
+
11
+ - `node --test tests/commands/spec-validate.test.js tests/commands/spec-worktree.test.js`
12
+ - `node --test tests/lib/check-slice.test.js tests/lib/scope.test.js tests/lib/paths.test.js`
13
+
14
+ ## Relevant Changes
15
+
16
+ - `src/create-quiver/commands/spec.js` validates required `git.*` execution metadata in every slice.
17
+ - `src/create-quiver/lib/spec-worktrees.js` detects unregistered expected worktree directories and improves dirty-checkout recovery output.
18
+ - `tests/commands/spec-validate.test.js` covers missing execution git metadata.
19
+ - `tests/commands/spec-worktree.test.js` covers unregistered expected worktree paths and actionable dirty checkout output.
20
+ - `tests/lib/scope.test.js` covers exact path plus supported glob write scopes.
21
+
22
+ ## Pending Work
23
+
24
+ None for this slice.
25
+
26
+ ## Remaining Risks
27
+
28
+ - Tightened validation may surface older specs that do not declare execution git metadata. This is intentional for local execution readiness and is covered by v28 release-readiness follow-up.
29
+
30
+ ## Future Recommendations
31
+
32
+ - Consider adding a dedicated migration/check command for older specs if users report friction after release.