create-quiver 0.17.2 → 0.17.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/docs/CLI_UX_GUIDE.md +13 -3
  3. package/docs/TROUBLESHOOTING.md +43 -2
  4. package/docs/reference/commands.md +31 -9
  5. package/docs/workflows/existing-project.md +18 -3
  6. package/package.json +1 -1
  7. package/specs/quiver-v43-cli-i18n-audit-release-readiness/command-language-mode-matrix.json +4 -0
  8. package/specs/quiver-v55-analyze-project-doc-apply-ux/EVIDENCE_REPORT.md +209 -0
  9. package/specs/quiver-v55-analyze-project-doc-apply-ux/EXECUTION_PLAN.md +49 -0
  10. package/specs/quiver-v55-analyze-project-doc-apply-ux/SPEC.md +276 -0
  11. package/specs/quiver-v55-analyze-project-doc-apply-ux/STATUS.md +29 -0
  12. package/specs/quiver-v55-analyze-project-doc-apply-ux/slices/slice-01-cli-proposal-contract/CLOSURE_BRIEF.md +47 -0
  13. package/specs/quiver-v55-analyze-project-doc-apply-ux/slices/slice-01-cli-proposal-contract/EXECUTION_BRIEF.md +67 -0
  14. package/specs/quiver-v55-analyze-project-doc-apply-ux/slices/slice-01-cli-proposal-contract/pr.md +129 -0
  15. package/specs/quiver-v55-analyze-project-doc-apply-ux/slices/slice-01-cli-proposal-contract/slice.json +82 -0
  16. package/specs/quiver-v55-analyze-project-doc-apply-ux/slices/slice-02-save-proposal-flow/CLOSURE_BRIEF.md +39 -0
  17. package/specs/quiver-v55-analyze-project-doc-apply-ux/slices/slice-02-save-proposal-flow/EXECUTION_BRIEF.md +61 -0
  18. package/specs/quiver-v55-analyze-project-doc-apply-ux/slices/slice-02-save-proposal-flow/pr.md +116 -0
  19. package/specs/quiver-v55-analyze-project-doc-apply-ux/slices/slice-02-save-proposal-flow/slice.json +69 -0
  20. package/specs/quiver-v55-analyze-project-doc-apply-ux/slices/slice-03-noninteractive-apply-engine/CLOSURE_BRIEF.md +36 -0
  21. package/specs/quiver-v55-analyze-project-doc-apply-ux/slices/slice-03-noninteractive-apply-engine/EXECUTION_BRIEF.md +62 -0
  22. package/specs/quiver-v55-analyze-project-doc-apply-ux/slices/slice-03-noninteractive-apply-engine/pr.md +132 -0
  23. package/specs/quiver-v55-analyze-project-doc-apply-ux/slices/slice-03-noninteractive-apply-engine/slice.json +76 -0
  24. package/specs/quiver-v55-analyze-project-doc-apply-ux/slices/slice-04-interactive-apply-ux/CLOSURE_BRIEF.md +47 -0
  25. package/specs/quiver-v55-analyze-project-doc-apply-ux/slices/slice-04-interactive-apply-ux/EXECUTION_BRIEF.md +70 -0
  26. package/specs/quiver-v55-analyze-project-doc-apply-ux/slices/slice-04-interactive-apply-ux/pr.md +141 -0
  27. package/specs/quiver-v55-analyze-project-doc-apply-ux/slices/slice-04-interactive-apply-ux/slice.json +72 -0
  28. package/specs/quiver-v55-analyze-project-doc-apply-ux/slices/slice-05-apply-saved-proposal/CLOSURE_BRIEF.md +42 -0
  29. package/specs/quiver-v55-analyze-project-doc-apply-ux/slices/slice-05-apply-saved-proposal/EXECUTION_BRIEF.md +61 -0
  30. package/specs/quiver-v55-analyze-project-doc-apply-ux/slices/slice-05-apply-saved-proposal/pr.md +129 -0
  31. package/specs/quiver-v55-analyze-project-doc-apply-ux/slices/slice-05-apply-saved-proposal/slice.json +67 -0
  32. package/specs/quiver-v55-analyze-project-doc-apply-ux/slices/slice-06-i18n-docs-release-smoke/CLOSURE_BRIEF.md +38 -0
  33. package/specs/quiver-v55-analyze-project-doc-apply-ux/slices/slice-06-i18n-docs-release-smoke/EXECUTION_BRIEF.md +64 -0
  34. package/specs/quiver-v55-analyze-project-doc-apply-ux/slices/slice-06-i18n-docs-release-smoke/pr.md +123 -0
  35. package/specs/quiver-v55-analyze-project-doc-apply-ux/slices/slice-06-i18n-docs-release-smoke/slice.json +76 -0
  36. package/src/create-quiver/commands/ai.js +636 -66
  37. package/src/create-quiver/index.js +80 -1
  38. package/src/create-quiver/lib/ai/analyze-project-apply.js +269 -0
  39. package/src/create-quiver/lib/ai/analyze-project-interactive.js +241 -0
  40. package/src/create-quiver/lib/ai/analyze-project-proposal.js +582 -0
  41. package/src/create-quiver/lib/ai/analyze-project-validation.js +10 -8
  42. package/src/create-quiver/lib/cli/ux-flags.js +6 -0
  43. package/src/create-quiver/lib/i18n/messages/en.js +28 -0
  44. package/src/create-quiver/lib/i18n/messages/es.js +29 -0
@@ -0,0 +1,141 @@
1
+ ## Title
2
+
3
+ QUIVER-55-04 - Interactive Analyze Project Apply UX
4
+
5
+ ## Summary
6
+
7
+ Implements the fourth v55 slice for `ai analyze-project`: plain TTY `--apply-docs` now shows an explained selector after provider validation instead of forcing users into a large editor buffer.
8
+
9
+ The selector supports:
10
+
11
+ - Apply documentation.
12
+ - View bounded diff, then choose again.
13
+ - Save proposal artifacts only.
14
+ - Edit proposal through the existing review flow.
15
+ - Cancel without final docs writes.
16
+
17
+ ## PR Policy
18
+
19
+ - One slice, one commit, one PR.
20
+ - Runtime UX change, so this must be an individual PR.
21
+ - Human merge required after CI passes.
22
+
23
+ ## Scope
24
+
25
+ Included:
26
+
27
+ - Interactive selector module for `--apply-docs`.
28
+ - Safe routing from selector actions into existing save/apply/review flows.
29
+ - Dynamic recommendation based on clean creates vs dirty/update targets.
30
+ - Bounded terminal diff with full diff artifact saved under `.quiver/runs`.
31
+ - English and Spanish selector copy with option descriptions.
32
+ - Tests for apply, save, edit, cancel, view-diff second decision, no-TTY guard, and selector recommendation.
33
+ - Slice status, evidence, and closure updates.
34
+
35
+ Excluded:
36
+
37
+ - `ai analyze-project apply --run <run-id>`.
38
+ - Release smoke docs.
39
+ - Product repo code changes.
40
+
41
+ ## Files
42
+
43
+ - `src/create-quiver/commands/ai.js`
44
+ - `src/create-quiver/lib/ai/analyze-project-interactive.js`
45
+ - `src/create-quiver/lib/i18n/messages/en.js`
46
+ - `src/create-quiver/lib/i18n/messages/es.js`
47
+ - `tests/commands/ai-analyze-project-review.test.js`
48
+ - `tests/lib/cli-ux.test.js`
49
+ - `specs/quiver-v55-analyze-project-doc-apply-ux/**`
50
+
51
+ ## How to Test (DETAILED - REQUIRED)
52
+
53
+ ### Required Environment
54
+
55
+ - Node/npm environment for this repo.
56
+ - No live provider credentials required for automated tests.
57
+
58
+ ### Worktree Access
59
+
60
+ ```bash
61
+ git checkout feature/QUIVER-55-04-v55-interactive-apply-ux
62
+ ```
63
+
64
+ ### Run the Project
65
+
66
+ No dev server is required. This is CLI behavior.
67
+
68
+ ### Use Cases
69
+
70
+ 1. Interactive apply selector:
71
+
72
+ ```bash
73
+ node --test tests/commands/ai-analyze-project-review.test.js
74
+ ```
75
+
76
+ Expected: selector paths for apply, save, edit, cancel, view diff, no-TTY, and Spanish copy pass.
77
+
78
+ 2. UX helper behavior:
79
+
80
+ ```bash
81
+ node --test tests/lib/cli-ux.test.js
82
+ ```
83
+
84
+ Expected: selector recommendations and bounded diff formatting pass.
85
+
86
+ 3. Contract regressions:
87
+
88
+ ```bash
89
+ node --test tests/commands/ai-analyze-project.test.js
90
+ node --test tests/commands/cli-contract.test.js
91
+ node --test tests/commands/ux-flags.test.js
92
+ node --test tests/lib/i18n-catalog.test.js
93
+ ```
94
+
95
+ Expected: CLI contracts, help, UX flags, and i18n catalog remain valid.
96
+
97
+ ### Technical Verification
98
+
99
+ ```bash
100
+ node --test tests/commands/ai-analyze-project-provider.test.js
101
+ node --test tests/lib/ai-analyze-project-validation.test.js tests/lib/ai/analyze-project-repair.test.js
102
+ npm run docs:check
103
+ npm run schema:slice:check
104
+ node bin/create-quiver.js spec validate specs/quiver-v55-analyze-project-doc-apply-ux --strict
105
+ git diff --check
106
+ npm test
107
+ ```
108
+
109
+ Expected: all pass.
110
+
111
+ ## Evidence
112
+
113
+ Executed locally:
114
+
115
+ ```bash
116
+ node --test tests/commands/ai-analyze-project-review.test.js
117
+ node --test tests/lib/cli-ux.test.js
118
+ node --test tests/commands/ai-analyze-project.test.js
119
+ node --test tests/commands/cli-contract.test.js
120
+ node --test tests/lib/i18n-catalog.test.js
121
+ node --test tests/commands/ux-flags.test.js
122
+ node --test tests/commands/ai-analyze-project-provider.test.js
123
+ node --test tests/lib/ai-analyze-project-validation.test.js tests/lib/ai/analyze-project-repair.test.js
124
+ npm run docs:check
125
+ npm run schema:slice:check
126
+ node bin/create-quiver.js spec validate specs/quiver-v55-analyze-project-doc-apply-ux --strict
127
+ git diff --check
128
+ npm test
129
+ ```
130
+
131
+ Result: all passed. Full `npm test` passed with 741 tests.
132
+
133
+ ## Rollback
134
+
135
+ Revert this PR. `--apply-docs --yes`, `--save-proposal`, and `--review` remain available from earlier slices if this selector UX must be removed.
136
+
137
+ ## Risks / Notes
138
+
139
+ - `--apply-docs` without `--yes` now runs the provider in interactive TTY mode before showing the selector.
140
+ - no-TTY and CI usage still require `--yes`; otherwise the command fails before provider execution.
141
+ - `apply --run <run-id>` remains intentionally deferred to slice-05.
@@ -0,0 +1,72 @@
1
+ {
2
+ "slice_id": "slice-04-interactive-apply-ux",
3
+ "ticket": "QUIVER-55-04",
4
+ "type": "ux",
5
+ "title": "Interactive Apply UX",
6
+ "objective": "Add the explained TTY selector for --apply-docs while delegating all writes to the tested apply engine.",
7
+ "description": "Implements the human selector with option descriptions, dynamic recommendation, diff flow, save/edit/cancel actions, and bounded terminal output.",
8
+ "git": {
9
+ "branch_type": "feature",
10
+ "base_branch": "main",
11
+ "branch_slug": "v55-interactive-apply-ux",
12
+ "branch_name": "feature/QUIVER-55-04-v55-interactive-apply-ux"
13
+ },
14
+ "files": [
15
+ "src/create-quiver/commands/ai.js",
16
+ "src/create-quiver/lib/ai/analyze-project-interactive.js",
17
+ "src/create-quiver/lib/ai/analyze-project-apply.js",
18
+ "src/create-quiver/lib/i18n/messages/en.js",
19
+ "src/create-quiver/lib/i18n/messages/es.js",
20
+ "tests/commands/ai-analyze-project-review.test.js",
21
+ "tests/lib/cli-ux.test.js",
22
+ "specs/quiver-v55-analyze-project-doc-apply-ux/**"
23
+ ],
24
+ "expected_read_paths": [
25
+ "src/create-quiver/lib/cli/ux.js",
26
+ "src/create-quiver/lib/ai/analyze-project-review.js",
27
+ "src/create-quiver/lib/ai/analyze-project-apply.js"
28
+ ],
29
+ "allowed_write_paths": [
30
+ "src/create-quiver/commands/ai.js",
31
+ "src/create-quiver/lib/ai/analyze-project-interactive.js",
32
+ "src/create-quiver/lib/ai/analyze-project-apply.js",
33
+ "src/create-quiver/lib/i18n/messages/en.js",
34
+ "src/create-quiver/lib/i18n/messages/es.js",
35
+ "tests/commands/ai-analyze-project-review.test.js",
36
+ "tests/lib/cli-ux.test.js",
37
+ "specs/quiver-v55-analyze-project-doc-apply-ux/**"
38
+ ],
39
+ "depends_on": [
40
+ "slice-03-noninteractive-apply-engine"
41
+ ],
42
+ "parallel_safe": "never",
43
+ "parallel_safe_reason": "Selector behavior depends on the completed apply engine contract.",
44
+ "must": [
45
+ "Show option descriptions.",
46
+ "Use dynamic recommendation.",
47
+ "Keep terminal diff bounded.",
48
+ "Route write actions through apply engine."
49
+ ],
50
+ "not_included": [
51
+ "Apply saved run.",
52
+ "Release smoke docs."
53
+ ],
54
+ "acceptance": [
55
+ "TTY --apply-docs shows explained selector.",
56
+ "no-TTY --apply-docs without --yes fails actionably.",
57
+ "Cancel writes no final docs.",
58
+ "View diff requires a second decision."
59
+ ],
60
+ "tests": [
61
+ "node --test tests/commands/ai-analyze-project-review.test.js",
62
+ "node --test tests/lib/cli-ux.test.js",
63
+ "node bin/create-quiver.js spec validate specs/quiver-v55-analyze-project-doc-apply-ux --strict",
64
+ "git diff --check"
65
+ ],
66
+ "estimated_hours": 6,
67
+ "actual_hours": 6,
68
+ "status": "completed",
69
+ "blocked_reason": null,
70
+ "started_at": "2026-06-12T00:00:00.000Z",
71
+ "completed_at": "2026-06-12T00:00:00.000Z"
72
+ }
@@ -0,0 +1,42 @@
1
+ # CLOSURE_BRIEF - slice-05 apply saved proposal
2
+
3
+ ## Summary
4
+
5
+ Completed. `ai analyze-project apply --run <run-id>` now loads a saved analyze-project doc proposal from `.quiver/runs/<run-id>/proposal/`, revalidates the manifest and proposal JSON, and applies it through the same safe apply engine without executing a provider or requiring provider/model flags.
6
+
7
+ ## Behavior Delivered
8
+
9
+ - Explicit run ids are validated as safe single path segments before artifact access.
10
+ - Missing or invalid saved proposal manifests fail before docs writes.
11
+ - Saved proposal JSON is reparsed through the doc proposal schema and allowed-path checks.
12
+ - Saved proposal manifest doc paths must match the proposal target docs.
13
+ - Manual proposal content edits are accepted only after revalidation and recorded as `saved-proposal-edited` in the write manifest.
14
+ - Dirty target docs block by default and can be applied only with `--allow-dirty-docs`.
15
+ - Stale target docs block before any final docs write.
16
+ - `--run latest` is resolved only in an interactive terminal, and is rejected with `--yes` or `--json`.
17
+ - Apply-run reports set `provider_execution: skipped` and do not call provider/model resolution.
18
+
19
+ ## Required Evidence
20
+
21
+ - Apply saved run success test passes.
22
+ - Invalid run id test passes.
23
+ - Stale/dirty blocking tests pass.
24
+ - No-provider-execution test passes.
25
+ - Manual proposal edit audit test passes.
26
+
27
+ ## Validation
28
+
29
+ Executed:
30
+
31
+ ```bash
32
+ node --test tests/commands/ai-analyze-project-review.test.js
33
+ node --test tests/lib/ai-analyze-project-proposal.test.js
34
+ node --test tests/commands/ai-analyze-project.test.js
35
+ npm run docs:check
36
+ npm run schema:slice:check
37
+ node bin/create-quiver.js spec validate specs/quiver-v55-analyze-project-doc-apply-ux --strict
38
+ git diff --check
39
+ npm test
40
+ ```
41
+
42
+ Result: all passed. Full `npm test` passed with 747 tests.
@@ -0,0 +1,61 @@
1
+ # EXECUTION_BRIEF - slice-05 apply saved proposal
2
+
3
+ ## Context
4
+
5
+ Saving a proposal is only useful if users can later apply it without re-running the provider. This flow has a higher trust boundary because proposal artifacts may be stale or manually edited.
6
+
7
+ ## Objective
8
+
9
+ Implement `ai analyze-project apply --run <run-id>` to apply saved proposals without provider execution.
10
+
11
+ ## Scope
12
+
13
+ - Resolve and validate run id.
14
+ - Load proposal manifest and normalized JSON.
15
+ - Revalidate proposal schema and allowed paths.
16
+ - Recalculate target doc hashes.
17
+ - Detect stale/dirty docs before writing.
18
+ - Apply through the same apply engine from slice-03.
19
+ - Support `--yes`, `--strict`, `--allow-dirty-docs`, and `--json` where safe.
20
+ - Optionally support `--run latest` only in TTY and never with `--yes`.
21
+
22
+ ## Acceptance Criteria
23
+
24
+ - `apply --run <run-id>` does not execute provider and does not require provider/model.
25
+ - Invalid or missing run id fails with actionable guidance.
26
+ - Missing/invalid proposal manifest fails without docs writes.
27
+ - Stale or dirty docs block non-interactive apply unless explicitly allowed.
28
+ - Manual proposal edits are accepted only after full revalidation and recorded as edited.
29
+ - `--run latest --yes` is rejected.
30
+
31
+ ## Expected Files To Modify
32
+
33
+ - `src/create-quiver/commands/ai.js`
34
+ - `src/create-quiver/lib/ai/analyze-project-apply.js`
35
+ - `src/create-quiver/lib/ai/analyze-project-proposal.js`
36
+ - `tests/commands/ai-analyze-project-review.test.js`
37
+ - `tests/lib/ai-analyze-project-proposal.test.js`
38
+ - this slice closure/status/evidence files
39
+
40
+ ## Validation Required
41
+
42
+ ```bash
43
+ node --test tests/commands/ai-analyze-project-review.test.js
44
+ node --test tests/lib/ai-analyze-project-proposal.test.js
45
+ node bin/create-quiver.js spec validate specs/quiver-v55-analyze-project-doc-apply-ux --strict
46
+ git diff --check
47
+ ```
48
+
49
+ ## Completion Checklist
50
+
51
+ - Saved proposal apply path never executes provider.
52
+ - Proposal manifest and normalized JSON are revalidated before writes.
53
+ - Stale/dirty target docs behavior is tested.
54
+ - Edited proposal audit metadata is recorded.
55
+ - Slice closure brief updated with evidence.
56
+
57
+ ## Constraints
58
+
59
+ - Do not execute provider in `apply --run`.
60
+ - Do not trust saved artifacts without revalidation.
61
+ - Do not allow ambiguous `latest` in automation.
@@ -0,0 +1,129 @@
1
+ ## Title
2
+
3
+ QUIVER-55-05 - Apply Saved Analyze Project Proposals
4
+
5
+ ## Summary
6
+
7
+ Implements the fifth v55 slice for `ai analyze-project`: saved documentation proposals can now be applied by run id without executing a provider.
8
+
9
+ `ai analyze-project apply --run <run-id>` now loads `.quiver/runs/<run-id>/proposal/manifest.json`, revalidates the saved proposal JSON, checks dirty/stale target docs, and delegates final writes to the existing safe apply engine.
10
+
11
+ ## PR Policy
12
+
13
+ - One slice, one commit, one PR.
14
+ - Runtime CLI behavior change, so this must be an individual PR.
15
+ - Human merge required after CI passes.
16
+
17
+ ## Scope
18
+
19
+ Included:
20
+
21
+ - `ai analyze-project apply --run <run-id>` runtime implementation.
22
+ - Safe run id validation before artifact access.
23
+ - Saved proposal manifest and JSON revalidation.
24
+ - Dirty/stale doc blocking using the original saved proposal hashes.
25
+ - Manual proposal edit detection and write-manifest audit events.
26
+ - `--run latest` guardrails for interactive-only usage.
27
+ - Apply-run post-write validation without requiring the original provider analysis payload.
28
+ - Tests for success, missing artifacts, dirty/stale blocking, no-provider execution, and manual proposal edits.
29
+ - Slice status, evidence, closure, and PR docs.
30
+
31
+ Excluded:
32
+
33
+ - Fresh provider prompt/schema changes.
34
+ - Product repo code changes in analyzed projects.
35
+ - Release smoke docs for npm publishing.
36
+
37
+ ## Files
38
+
39
+ - `src/create-quiver/commands/ai.js`
40
+ - `src/create-quiver/index.js`
41
+ - `src/create-quiver/lib/ai/analyze-project-apply.js`
42
+ - `src/create-quiver/lib/ai/analyze-project-proposal.js`
43
+ - `src/create-quiver/lib/ai/analyze-project-validation.js`
44
+ - `tests/commands/ai-analyze-project-review.test.js`
45
+ - `tests/commands/ai-analyze-project.test.js`
46
+ - `tests/lib/ai-analyze-project-proposal.test.js`
47
+ - `specs/quiver-v55-analyze-project-doc-apply-ux/**`
48
+
49
+ ## How to Test (DETAILED - REQUIRED)
50
+
51
+ ### Required Environment
52
+
53
+ - Node/npm environment for this repo.
54
+ - No live provider credentials required for automated tests.
55
+
56
+ ### Worktree Access
57
+
58
+ ```bash
59
+ git checkout feature/QUIVER-55-05-v55-apply-saved-proposal
60
+ ```
61
+
62
+ ### Run the Project
63
+
64
+ No dev server is required. This is CLI behavior.
65
+
66
+ ### Use Cases
67
+
68
+ 1. Apply a saved proposal by run id:
69
+
70
+ ```bash
71
+ node --test tests/commands/ai-analyze-project-review.test.js
72
+ ```
73
+
74
+ Expected: saved proposal apply writes docs without provider execution, blocks dirty/stale targets, and records manual proposal edits.
75
+
76
+ 2. Validate saved proposal artifact helpers:
77
+
78
+ ```bash
79
+ node --test tests/lib/ai-analyze-project-proposal.test.js
80
+ ```
81
+
82
+ Expected: run id validation, saved proposal loading, manifest validation, and edit detection pass.
83
+
84
+ 3. Validate CLI contract:
85
+
86
+ ```bash
87
+ node --test tests/commands/ai-analyze-project.test.js
88
+ ```
89
+
90
+ Expected: `apply --run` no longer hits the old stub, missing artifacts fail actionably, and unsafe `latest` combinations are rejected.
91
+
92
+ ### Technical Verification
93
+
94
+ ```bash
95
+ npm run docs:check
96
+ npm run schema:slice:check
97
+ node bin/create-quiver.js spec validate specs/quiver-v55-analyze-project-doc-apply-ux --strict
98
+ git diff --check
99
+ npm test
100
+ ```
101
+
102
+ Expected: all pass.
103
+
104
+ ## Evidence
105
+
106
+ Executed locally:
107
+
108
+ ```bash
109
+ node --test tests/commands/ai-analyze-project-review.test.js
110
+ node --test tests/lib/ai-analyze-project-proposal.test.js
111
+ node --test tests/commands/ai-analyze-project.test.js
112
+ npm run docs:check
113
+ npm run schema:slice:check
114
+ node bin/create-quiver.js spec validate specs/quiver-v55-analyze-project-doc-apply-ux --strict
115
+ git diff --check
116
+ npm test
117
+ ```
118
+
119
+ Result: all passed. Full `npm test` passed with 747 tests.
120
+
121
+ ## Rollback
122
+
123
+ Revert this PR. Fresh `--save-proposal`, `--apply-docs`, `--apply-docs --yes`, and `--review` behavior from earlier slices remain available.
124
+
125
+ ## Risks / Notes
126
+
127
+ - `apply --run <run-id>` now writes docs when the saved proposal is valid and current target hashes match.
128
+ - Stale docs always block; `--allow-dirty-docs` only bypasses the dirty-doc guard.
129
+ - `--run latest` is intentionally not available for `--yes` or `--json` automation.
@@ -0,0 +1,67 @@
1
+ {
2
+ "slice_id": "slice-05-apply-saved-proposal",
3
+ "ticket": "QUIVER-55-05",
4
+ "type": "feature",
5
+ "title": "Apply Saved Proposal",
6
+ "objective": "Apply saved analyze-project doc proposals by run id without provider execution.",
7
+ "description": "Adds ai analyze-project apply --run <run-id>, revalidates saved artifacts against current repo state, detects stale/dirty docs, and delegates writes to the apply engine.",
8
+ "git": {
9
+ "branch_type": "feature",
10
+ "base_branch": "main",
11
+ "branch_slug": "v55-apply-saved-proposal",
12
+ "branch_name": "feature/QUIVER-55-05-v55-apply-saved-proposal"
13
+ },
14
+ "files": [
15
+ "src/create-quiver/commands/ai.js",
16
+ "src/create-quiver/lib/ai/analyze-project-apply.js",
17
+ "src/create-quiver/lib/ai/analyze-project-proposal.js",
18
+ "tests/commands/ai-analyze-project-review.test.js",
19
+ "tests/lib/ai-analyze-project-proposal.test.js",
20
+ "specs/quiver-v55-analyze-project-doc-apply-ux/**"
21
+ ],
22
+ "expected_read_paths": [
23
+ "src/create-quiver/lib/ai/analyze-project-apply.js",
24
+ "src/create-quiver/lib/ai/analyze-project-proposal.js",
25
+ "src/create-quiver/lib/ai/analyze-project-docs.js"
26
+ ],
27
+ "allowed_write_paths": [
28
+ "src/create-quiver/commands/ai.js",
29
+ "src/create-quiver/lib/ai/analyze-project-apply.js",
30
+ "src/create-quiver/lib/ai/analyze-project-proposal.js",
31
+ "tests/commands/ai-analyze-project-review.test.js",
32
+ "tests/lib/ai-analyze-project-proposal.test.js",
33
+ "specs/quiver-v55-analyze-project-doc-apply-ux/**"
34
+ ],
35
+ "depends_on": [
36
+ "slice-02-save-proposal-flow",
37
+ "slice-03-noninteractive-apply-engine"
38
+ ],
39
+ "parallel_safe": "never",
40
+ "parallel_safe_reason": "Saved-run apply crosses a trust boundary and must reuse completed apply engine behavior.",
41
+ "must": [
42
+ "Never run provider.",
43
+ "Revalidate saved proposal and manifest.",
44
+ "Detect stale/dirty target docs.",
45
+ "Reject --run latest --yes."
46
+ ],
47
+ "not_included": [
48
+ "Interactive fresh analysis selector.",
49
+ "Docs release smoke."
50
+ ],
51
+ "acceptance": [
52
+ "Explicit run id applies valid saved proposal.",
53
+ "Invalid run id fails actionably.",
54
+ "Stale saved proposal blocks unsafe writes.",
55
+ "Provider/model are not required."
56
+ ],
57
+ "tests": [
58
+ "node --test tests/commands/ai-analyze-project-review.test.js",
59
+ "node --test tests/lib/ai-analyze-project-proposal.test.js",
60
+ "node bin/create-quiver.js spec validate specs/quiver-v55-analyze-project-doc-apply-ux --strict",
61
+ "git diff --check"
62
+ ],
63
+ "estimated_hours": 5,
64
+ "status": "completed",
65
+ "completed_at": "2026-06-12T15:00:00.000Z",
66
+ "blocked_reason": null
67
+ }
@@ -0,0 +1,38 @@
1
+ # CLOSURE_BRIEF - slice-06 i18n docs release smoke
2
+
3
+ ## Summary
4
+
5
+ Completed. The final v55 slice updates the user-facing docs, command matrix, troubleshooting guidance, and EN/ES coverage so the completed analyze-project doc apply workflow is discoverable and safe to smoke before release.
6
+
7
+ ## Behavior Delivered
8
+
9
+ - `docs/reference/commands.md` now describes the recommended `--save-proposal`, `--apply-docs`, and `apply --run <run-id>` flows.
10
+ - `docs/CLI_UX_GUIDE.md` documents the TTY selector, automation path, saved proposal path, and advanced `--review` mode.
11
+ - `docs/workflows/existing-project.md` now recommends `--apply-docs` for existing projects and explains save/apply separation.
12
+ - `docs/TROUBLESHOOTING.md` explains why normal provider mode does not write final docs and how to apply a proposal safely.
13
+ - Release smoke guidance uses a temporary copy of `nika-erp` and explicitly avoids mutating the main checkout.
14
+ - Spanish help coverage now asserts the new analyze-project flags are localized while commands, flags, and paths stay untranslated.
15
+
16
+ ## Required Evidence
17
+
18
+ - i18n tests pass.
19
+ - docs checks pass.
20
+ - spec validation passes.
21
+ - release smoke guidance is documented.
22
+
23
+ ## Validation
24
+
25
+ Executed:
26
+
27
+ ```bash
28
+ node --test tests/commands/cli-contract.test.js
29
+ node --test tests/lib/i18n-catalog.test.js
30
+ node --test tests/commands/ai-analyze-project-review.test.js
31
+ npm run docs:check
32
+ npm run schema:slice:check
33
+ node bin/create-quiver.js spec validate specs/quiver-v55-analyze-project-doc-apply-ux --strict
34
+ git diff --check
35
+ npm test
36
+ ```
37
+
38
+ Result: all passed. Full `npm test` passed with 747 tests.
@@ -0,0 +1,64 @@
1
+ # EXECUTION_BRIEF - slice-06 i18n docs release smoke
2
+
3
+ ## Context
4
+
5
+ The feature is only useful if users can discover the simpler apply flow and understand it in English and Spanish. Release confidence also needs a documented real-project smoke that avoids mutating the user's main `nika-erp` checkout.
6
+
7
+ ## Objective
8
+
9
+ Complete i18n coverage, user documentation, command matrix/help alignment, and release smoke guidance.
10
+
11
+ ## Scope
12
+
13
+ - Add/verify EN and ES messages for all new flows.
14
+ - Ensure commands, flags, and paths remain untranslated.
15
+ - Update:
16
+ - `docs/reference/commands.md`;
17
+ - `docs/CLI_UX_GUIDE.md`;
18
+ - `docs/workflows/existing-project.md`;
19
+ - `docs/TROUBLESHOOTING.md`.
20
+ - Update i18n/UX command matrix if applicable.
21
+ - Document release smoke against temporary copy/disposable branch of `nika-erp`.
22
+ - Validate docs and spec.
23
+
24
+ ## Acceptance Criteria
25
+
26
+ - English and Spanish outputs are covered by tests.
27
+ - Command docs explain `--apply-docs`, `--save-proposal`, `--review`, `--yes`, `--diff`, and `apply --run`.
28
+ - Troubleshooting explains why normal provider mode does not write final docs.
29
+ - Release smoke commands avoid modifying the main `nika-erp` checkout.
30
+ - Docs checks and spec validation pass.
31
+
32
+ ## Expected Files To Modify
33
+
34
+ - `src/create-quiver/lib/i18n/messages/en.js`
35
+ - `src/create-quiver/lib/i18n/messages/es.js`
36
+ - `docs/reference/commands.md`
37
+ - `docs/CLI_UX_GUIDE.md`
38
+ - `docs/workflows/existing-project.md`
39
+ - `docs/TROUBLESHOOTING.md`
40
+ - `specs/quiver-v55-analyze-project-doc-apply-ux/**`
41
+ - relevant tests
42
+
43
+ ## Validation Required
44
+
45
+ ```bash
46
+ npm run docs:check
47
+ npm run schema:slice:check
48
+ node bin/create-quiver.js spec validate specs/quiver-v55-analyze-project-doc-apply-ux --strict
49
+ git diff --check
50
+ ```
51
+
52
+ ## Completion Checklist
53
+
54
+ - English and Spanish copy tests pass.
55
+ - Command reference and troubleshooting docs updated.
56
+ - Existing-project workflow documents recommended path.
57
+ - Release smoke evidence is recorded without mutating the main `nika-erp` checkout.
58
+ - Slice closure brief updated with evidence.
59
+
60
+ ## Constraints
61
+
62
+ - Do not run live provider smoke as CI.
63
+ - Do not mutate the main `nika-erp` checkout during smoke.
64
+ - Do not translate commands, flags, or paths.