create-quiver 0.17.1 → 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.
- package/ACTIVE_SLICES.md +43 -0
- package/CHANGELOG.md +8 -0
- package/auditoria-ux-ui-performance-documentacion.md +705 -0
- package/copys-landing-page.md +244 -0
- package/docs/CLI_UX_GUIDE.md +13 -3
- package/docs/TROUBLESHOOTING.md +94 -0
- package/docs/reference/commands.md +68 -4
- package/docs/workflows/existing-project-ai-quiver-setup.md +552 -0
- package/docs/workflows/existing-project.md +36 -0
- package/package.json +1 -1
- package/specs/quiver-v43-cli-i18n-audit-release-readiness/command-language-mode-matrix.json +5 -0
- package/specs/quiver-v53-reliable-deep-project-analysis/EVIDENCE_REPORT.md +151 -0
- package/specs/quiver-v53-reliable-deep-project-analysis/EXECUTION_PLAN.md +50 -0
- package/specs/quiver-v53-reliable-deep-project-analysis/SPEC.md +207 -0
- package/specs/quiver-v53-reliable-deep-project-analysis/STATUS.md +32 -0
- package/specs/quiver-v53-reliable-deep-project-analysis/pr.md +73 -0
- package/specs/quiver-v53-reliable-deep-project-analysis/slices/slice-00-analysis-run-contract/CLOSURE_BRIEF.md +32 -0
- package/specs/quiver-v53-reliable-deep-project-analysis/slices/slice-00-analysis-run-contract/EXECUTION_BRIEF.md +63 -0
- package/specs/quiver-v53-reliable-deep-project-analysis/slices/slice-00-analysis-run-contract/slice.json +70 -0
- package/specs/quiver-v53-reliable-deep-project-analysis/slices/slice-01-provider-fixture-harness/CLOSURE_BRIEF.md +38 -0
- package/specs/quiver-v53-reliable-deep-project-analysis/slices/slice-01-provider-fixture-harness/EXECUTION_BRIEF.md +60 -0
- package/specs/quiver-v53-reliable-deep-project-analysis/slices/slice-01-provider-fixture-harness/slice.json +74 -0
- package/specs/quiver-v53-reliable-deep-project-analysis/slices/slice-02-safe-context-boundary/CLOSURE_BRIEF.md +33 -0
- package/specs/quiver-v53-reliable-deep-project-analysis/slices/slice-02-safe-context-boundary/EXECUTION_BRIEF.md +68 -0
- package/specs/quiver-v53-reliable-deep-project-analysis/slices/slice-02-safe-context-boundary/slice.json +85 -0
- package/specs/quiver-v53-reliable-deep-project-analysis/slices/slice-03-schema-error-grouping/CLOSURE_BRIEF.md +34 -0
- package/specs/quiver-v53-reliable-deep-project-analysis/slices/slice-03-schema-error-grouping/EXECUTION_BRIEF.md +65 -0
- package/specs/quiver-v53-reliable-deep-project-analysis/slices/slice-03-schema-error-grouping/slice.json +80 -0
- package/specs/quiver-v53-reliable-deep-project-analysis/slices/slice-04-safe-repair-layer/CLOSURE_BRIEF.md +34 -0
- package/specs/quiver-v53-reliable-deep-project-analysis/slices/slice-04-safe-repair-layer/EXECUTION_BRIEF.md +63 -0
- package/specs/quiver-v53-reliable-deep-project-analysis/slices/slice-04-safe-repair-layer/slice.json +80 -0
- package/specs/quiver-v53-reliable-deep-project-analysis/slices/slice-05-controlled-retry-layer/CLOSURE_BRIEF.md +34 -0
- package/specs/quiver-v53-reliable-deep-project-analysis/slices/slice-05-controlled-retry-layer/EXECUTION_BRIEF.md +65 -0
- package/specs/quiver-v53-reliable-deep-project-analysis/slices/slice-05-controlled-retry-layer/slice.json +81 -0
- package/specs/quiver-v53-reliable-deep-project-analysis/slices/slice-06-audit-review-transaction/CLOSURE_BRIEF.md +35 -0
- package/specs/quiver-v53-reliable-deep-project-analysis/slices/slice-06-audit-review-transaction/EXECUTION_BRIEF.md +71 -0
- package/specs/quiver-v53-reliable-deep-project-analysis/slices/slice-06-audit-review-transaction/slice.json +88 -0
- package/specs/quiver-v53-reliable-deep-project-analysis/slices/slice-07-semantic-validation-docs/CLOSURE_BRIEF.md +32 -0
- package/specs/quiver-v53-reliable-deep-project-analysis/slices/slice-07-semantic-validation-docs/EXECUTION_BRIEF.md +66 -0
- package/specs/quiver-v53-reliable-deep-project-analysis/slices/slice-07-semantic-validation-docs/slice.json +86 -0
- package/specs/quiver-v53-reliable-deep-project-analysis/slices/slice-08-structural-map-hardening/CLOSURE_BRIEF.md +34 -0
- package/specs/quiver-v53-reliable-deep-project-analysis/slices/slice-08-structural-map-hardening/EXECUTION_BRIEF.md +67 -0
- package/specs/quiver-v53-reliable-deep-project-analysis/slices/slice-08-structural-map-hardening/slice.json +81 -0
- package/specs/quiver-v54-deep-project-analysis-hardening/EVIDENCE_REPORT.md +53 -0
- package/specs/quiver-v54-deep-project-analysis-hardening/EXECUTION_PLAN.md +55 -0
- package/specs/quiver-v54-deep-project-analysis-hardening/SPEC.md +184 -0
- package/specs/quiver-v54-deep-project-analysis-hardening/STATUS.md +34 -0
- package/specs/quiver-v54-deep-project-analysis-hardening/slices/slice-01-contract-regression-harness/CLOSURE_BRIEF.md +10 -0
- package/specs/quiver-v54-deep-project-analysis-hardening/slices/slice-01-contract-regression-harness/EXECUTION_BRIEF.md +54 -0
- package/specs/quiver-v54-deep-project-analysis-hardening/slices/slice-01-contract-regression-harness/slice.json +72 -0
- package/specs/quiver-v54-deep-project-analysis-hardening/slices/slice-02-safe-discovery-sampling/CLOSURE_BRIEF.md +11 -0
- package/specs/quiver-v54-deep-project-analysis-hardening/slices/slice-02-safe-discovery-sampling/EXECUTION_BRIEF.md +53 -0
- package/specs/quiver-v54-deep-project-analysis-hardening/slices/slice-02-safe-discovery-sampling/slice.json +69 -0
- package/specs/quiver-v54-deep-project-analysis-hardening/slices/slice-03-run-lifecycle-cli-io/CLOSURE_BRIEF.md +10 -0
- package/specs/quiver-v54-deep-project-analysis-hardening/slices/slice-03-run-lifecycle-cli-io/EXECUTION_BRIEF.md +53 -0
- package/specs/quiver-v54-deep-project-analysis-hardening/slices/slice-03-run-lifecycle-cli-io/slice.json +69 -0
- package/specs/quiver-v54-deep-project-analysis-hardening/slices/slice-04-artifact-store-redaction/CLOSURE_BRIEF.md +10 -0
- package/specs/quiver-v54-deep-project-analysis-hardening/slices/slice-04-artifact-store-redaction/EXECUTION_BRIEF.md +54 -0
- package/specs/quiver-v54-deep-project-analysis-hardening/slices/slice-04-artifact-store-redaction/slice.json +73 -0
- package/specs/quiver-v54-deep-project-analysis-hardening/slices/slice-05-path-aware-repair-engine/CLOSURE_BRIEF.md +10 -0
- package/specs/quiver-v54-deep-project-analysis-hardening/slices/slice-05-path-aware-repair-engine/EXECUTION_BRIEF.md +57 -0
- package/specs/quiver-v54-deep-project-analysis-hardening/slices/slice-05-path-aware-repair-engine/slice.json +72 -0
- package/specs/quiver-v54-deep-project-analysis-hardening/slices/slice-06-retry-controller/CLOSURE_BRIEF.md +9 -0
- package/specs/quiver-v54-deep-project-analysis-hardening/slices/slice-06-retry-controller/EXECUTION_BRIEF.md +52 -0
- package/specs/quiver-v54-deep-project-analysis-hardening/slices/slice-06-retry-controller/slice.json +70 -0
- package/specs/quiver-v54-deep-project-analysis-hardening/slices/slice-07-final-validation-review-write-gate/CLOSURE_BRIEF.md +10 -0
- package/specs/quiver-v54-deep-project-analysis-hardening/slices/slice-07-final-validation-review-write-gate/EXECUTION_BRIEF.md +57 -0
- package/specs/quiver-v54-deep-project-analysis-hardening/slices/slice-07-final-validation-review-write-gate/slice.json +75 -0
- package/specs/quiver-v54-deep-project-analysis-hardening/slices/slice-08-doctor-agents-guidance/CLOSURE_BRIEF.md +9 -0
- package/specs/quiver-v54-deep-project-analysis-hardening/slices/slice-08-doctor-agents-guidance/EXECUTION_BRIEF.md +51 -0
- package/specs/quiver-v54-deep-project-analysis-hardening/slices/slice-08-doctor-agents-guidance/slice.json +66 -0
- package/specs/quiver-v54-deep-project-analysis-hardening/slices/slice-09-release-smoke-rollback-docs/CLOSURE_BRIEF.md +10 -0
- package/specs/quiver-v54-deep-project-analysis-hardening/slices/slice-09-release-smoke-rollback-docs/EXECUTION_BRIEF.md +54 -0
- package/specs/quiver-v54-deep-project-analysis-hardening/slices/slice-09-release-smoke-rollback-docs/slice.json +69 -0
- package/specs/quiver-v55-analyze-project-doc-apply-ux/EVIDENCE_REPORT.md +209 -0
- package/specs/quiver-v55-analyze-project-doc-apply-ux/EXECUTION_PLAN.md +49 -0
- package/specs/quiver-v55-analyze-project-doc-apply-ux/SPEC.md +276 -0
- package/specs/quiver-v55-analyze-project-doc-apply-ux/STATUS.md +29 -0
- package/specs/quiver-v55-analyze-project-doc-apply-ux/slices/slice-01-cli-proposal-contract/CLOSURE_BRIEF.md +47 -0
- package/specs/quiver-v55-analyze-project-doc-apply-ux/slices/slice-01-cli-proposal-contract/EXECUTION_BRIEF.md +67 -0
- package/specs/quiver-v55-analyze-project-doc-apply-ux/slices/slice-01-cli-proposal-contract/pr.md +129 -0
- package/specs/quiver-v55-analyze-project-doc-apply-ux/slices/slice-01-cli-proposal-contract/slice.json +82 -0
- package/specs/quiver-v55-analyze-project-doc-apply-ux/slices/slice-02-save-proposal-flow/CLOSURE_BRIEF.md +39 -0
- package/specs/quiver-v55-analyze-project-doc-apply-ux/slices/slice-02-save-proposal-flow/EXECUTION_BRIEF.md +61 -0
- package/specs/quiver-v55-analyze-project-doc-apply-ux/slices/slice-02-save-proposal-flow/pr.md +116 -0
- package/specs/quiver-v55-analyze-project-doc-apply-ux/slices/slice-02-save-proposal-flow/slice.json +69 -0
- package/specs/quiver-v55-analyze-project-doc-apply-ux/slices/slice-03-noninteractive-apply-engine/CLOSURE_BRIEF.md +36 -0
- package/specs/quiver-v55-analyze-project-doc-apply-ux/slices/slice-03-noninteractive-apply-engine/EXECUTION_BRIEF.md +62 -0
- package/specs/quiver-v55-analyze-project-doc-apply-ux/slices/slice-03-noninteractive-apply-engine/pr.md +132 -0
- package/specs/quiver-v55-analyze-project-doc-apply-ux/slices/slice-03-noninteractive-apply-engine/slice.json +76 -0
- package/specs/quiver-v55-analyze-project-doc-apply-ux/slices/slice-04-interactive-apply-ux/CLOSURE_BRIEF.md +47 -0
- package/specs/quiver-v55-analyze-project-doc-apply-ux/slices/slice-04-interactive-apply-ux/EXECUTION_BRIEF.md +70 -0
- package/specs/quiver-v55-analyze-project-doc-apply-ux/slices/slice-04-interactive-apply-ux/pr.md +141 -0
- package/specs/quiver-v55-analyze-project-doc-apply-ux/slices/slice-04-interactive-apply-ux/slice.json +72 -0
- package/specs/quiver-v55-analyze-project-doc-apply-ux/slices/slice-05-apply-saved-proposal/CLOSURE_BRIEF.md +42 -0
- package/specs/quiver-v55-analyze-project-doc-apply-ux/slices/slice-05-apply-saved-proposal/EXECUTION_BRIEF.md +61 -0
- package/specs/quiver-v55-analyze-project-doc-apply-ux/slices/slice-05-apply-saved-proposal/pr.md +129 -0
- package/specs/quiver-v55-analyze-project-doc-apply-ux/slices/slice-05-apply-saved-proposal/slice.json +67 -0
- package/specs/quiver-v55-analyze-project-doc-apply-ux/slices/slice-06-i18n-docs-release-smoke/CLOSURE_BRIEF.md +38 -0
- package/specs/quiver-v55-analyze-project-doc-apply-ux/slices/slice-06-i18n-docs-release-smoke/EXECUTION_BRIEF.md +64 -0
- package/specs/quiver-v55-analyze-project-doc-apply-ux/slices/slice-06-i18n-docs-release-smoke/pr.md +123 -0
- package/specs/quiver-v55-analyze-project-doc-apply-ux/slices/slice-06-i18n-docs-release-smoke/slice.json +76 -0
- package/src/create-quiver/commands/ai.js +989 -136
- package/src/create-quiver/index.js +83 -1
- package/src/create-quiver/lib/ai/analyze-project-apply.js +269 -0
- package/src/create-quiver/lib/ai/analyze-project-discovery.js +213 -2
- package/src/create-quiver/lib/ai/analyze-project-docs.js +3 -1
- package/src/create-quiver/lib/ai/analyze-project-interactive.js +241 -0
- package/src/create-quiver/lib/ai/analyze-project-parser.js +1 -0
- package/src/create-quiver/lib/ai/analyze-project-prompts.js +130 -0
- package/src/create-quiver/lib/ai/analyze-project-proposal.js +582 -0
- package/src/create-quiver/lib/ai/analyze-project-repair.js +402 -0
- package/src/create-quiver/lib/ai/analyze-project-sampling.js +31 -4
- package/src/create-quiver/lib/ai/analyze-project-validation.js +178 -8
- package/src/create-quiver/lib/ai/artifacts.js +83 -2
- package/src/create-quiver/lib/cli/ux-flags.js +6 -0
- package/src/create-quiver/lib/doctor.js +107 -12
- package/src/create-quiver/lib/i18n/messages/en.js +33 -0
- package/src/create-quiver/lib/i18n/messages/es.js +34 -0
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
# Evidence Report - Quiver v55 Analyze Project Doc Apply UX
|
|
2
|
+
|
|
3
|
+
**Status:** In progress
|
|
4
|
+
**Last updated:** 2026-06-12
|
|
5
|
+
|
|
6
|
+
## Evidence Behind The Requirement
|
|
7
|
+
|
|
8
|
+
- Live `nika-erp` run with `create-quiver@0.17.2` completed successfully and generated valid doc update proposals.
|
|
9
|
+
- The normal provider command did not write final docs, by design.
|
|
10
|
+
- Existing `docs/CONTEXTO.md` in `nika-erp` still contained placeholders because no apply/review flow was completed.
|
|
11
|
+
- `--review` is safe but confusing because it opens a large JSON proposal in an editor.
|
|
12
|
+
- Users need a simpler flow: summary, explained options, optional diff, save, apply, edit, or cancel.
|
|
13
|
+
|
|
14
|
+
## Evidence To Capture During Implementation
|
|
15
|
+
|
|
16
|
+
- Parser/flag tests for `--apply-docs`, `--save-proposal`, `--diff`, `--yes`, `--allow-dirty-docs`, and `ai analyze-project apply --run`. Captured in `slice-01`.
|
|
17
|
+
- Proposal artifact schema tests. Captured in `slice-01`.
|
|
18
|
+
- Save proposal command tests in TTY/no-TTY and JSON modes.
|
|
19
|
+
- Non-interactive apply tests with snapshots, write manifests, and post-write validation.
|
|
20
|
+
- Dirty/stale doc preflight tests.
|
|
21
|
+
- Interactive selector tests for apply, diff, save, edit, and cancel.
|
|
22
|
+
- Saved proposal apply tests without provider execution.
|
|
23
|
+
- EN/ES i18n tests.
|
|
24
|
+
- Docs/checks and package smoke before release.
|
|
25
|
+
|
|
26
|
+
## Required Validation Before Closing Spec
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
node --test tests/commands/ai-analyze-project-review.test.js
|
|
30
|
+
node --test tests/commands/ai-analyze-project-provider.test.js
|
|
31
|
+
node --test tests/commands/ai-analyze-project.test.js
|
|
32
|
+
node --test tests/lib/ai-analyze-project-validation.test.js
|
|
33
|
+
node --test tests/lib/ai/analyze-project-repair.test.js
|
|
34
|
+
npm run docs:check
|
|
35
|
+
npm run schema:slice:check
|
|
36
|
+
node bin/create-quiver.js spec validate specs/quiver-v55-analyze-project-doc-apply-ux --strict
|
|
37
|
+
git diff --check
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Release Smoke Evidence
|
|
41
|
+
|
|
42
|
+
Use a temporary copy or disposable branch of `nika-erp`:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
npx --yes create-quiver@latest ai analyze-project --deep --provider codex --model gpt-5.5
|
|
46
|
+
npx --yes create-quiver@latest ai analyze-project --deep --save-proposal --provider codex --model gpt-5.5
|
|
47
|
+
npx --yes create-quiver@latest ai analyze-project --deep --apply-docs --provider codex --model gpt-5.5
|
|
48
|
+
npx --yes create-quiver@latest ai analyze-project --deep --apply-docs --yes --provider codex --model gpt-5.5
|
|
49
|
+
npx --yes create-quiver@latest ai analyze-project apply --run <run-id>
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Live provider smoke is release evidence only and must not become a CI gate.
|
|
53
|
+
|
|
54
|
+
## Slice-01 Evidence
|
|
55
|
+
|
|
56
|
+
Executed:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
node --test tests/lib/ai-analyze-project-proposal.test.js
|
|
60
|
+
node --test tests/commands/ai-analyze-project.test.js
|
|
61
|
+
node --test tests/commands/cli-contract.test.js
|
|
62
|
+
node --test tests/commands/parser-contract.test.js
|
|
63
|
+
node --test tests/commands/ux-flags.test.js
|
|
64
|
+
node --test tests/commands/ai-analyze-project-review.test.js
|
|
65
|
+
node --test tests/commands/ai-analyze-project-provider.test.js
|
|
66
|
+
node --test tests/lib/ai-analyze-project-docs.test.js tests/lib/ai-analyze-project-validation.test.js
|
|
67
|
+
npm run docs:check
|
|
68
|
+
npm run schema:slice:check
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Result: all passed.
|
|
72
|
+
|
|
73
|
+
## Slice-02 Evidence - slice-02-save-proposal-flow
|
|
74
|
+
|
|
75
|
+
Executed:
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
node --test tests/lib/ai-analyze-project-proposal.test.js
|
|
79
|
+
node --test tests/commands/ai-analyze-project-provider.test.js
|
|
80
|
+
node --test tests/commands/ai-analyze-project.test.js tests/commands/cli-contract.test.js tests/commands/ux-flags.test.js
|
|
81
|
+
node --test tests/commands/ai-analyze-project-review.test.js tests/lib/ai-analyze-project-validation.test.js tests/lib/ai-analyze-project-docs.test.js
|
|
82
|
+
node bin/create-quiver.js spec validate specs/quiver-v55-analyze-project-doc-apply-ux --strict
|
|
83
|
+
git diff --check
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Result: all passed.
|
|
87
|
+
|
|
88
|
+
Covered behavior:
|
|
89
|
+
|
|
90
|
+
- `--save-proposal` persists proposal JSON, compact Markdown summary, full diff, and manifest.
|
|
91
|
+
- `--save-proposal --json` emits clean parseable JSON.
|
|
92
|
+
- Final docs remain unchanged.
|
|
93
|
+
- Save-only flows do not create snapshots.
|
|
94
|
+
- Invalid final provider JSON does not create usable proposal artifacts.
|
|
95
|
+
|
|
96
|
+
## Slice-03 Evidence - slice-03-noninteractive-apply-engine
|
|
97
|
+
|
|
98
|
+
Executed:
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
node --test tests/lib/ai-analyze-project-apply.test.js
|
|
102
|
+
node --test tests/lib/ai-analyze-project-proposal.test.js
|
|
103
|
+
node --test tests/commands/ai-analyze-project-review.test.js
|
|
104
|
+
node --test tests/commands/ai-analyze-project.test.js tests/commands/cli-contract.test.js tests/commands/ux-flags.test.js
|
|
105
|
+
node --test tests/commands/ai-analyze-project-provider.test.js
|
|
106
|
+
node --test tests/lib/ai/analyze-project-repair.test.js
|
|
107
|
+
npm run docs:check
|
|
108
|
+
npm run schema:slice:check
|
|
109
|
+
node bin/create-quiver.js spec validate specs/quiver-v55-analyze-project-doc-apply-ux --strict
|
|
110
|
+
git diff --check
|
|
111
|
+
npm test
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
Result: all passed. Full `npm test` passed with 730 tests.
|
|
115
|
+
|
|
116
|
+
Covered behavior:
|
|
117
|
+
|
|
118
|
+
- `--apply-docs --yes` applies validated allowed docs.
|
|
119
|
+
- `--apply-docs --yes --json` returns run id, proposal artifacts, write plan, snapshot, written docs, post-write validation, and write manifest.
|
|
120
|
+
- Dirty target docs block `--yes` unless `--allow-dirty-docs` is provided.
|
|
121
|
+
- Stale target docs are blocked at the apply engine boundary.
|
|
122
|
+
- Invalid provider doc proposals do not write final docs.
|
|
123
|
+
- Existing `--review` behavior remains covered.
|
|
124
|
+
|
|
125
|
+
## Slice-04 Evidence - slice-04-interactive-apply-ux
|
|
126
|
+
|
|
127
|
+
Executed:
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
node --test tests/commands/ai-analyze-project-review.test.js
|
|
131
|
+
node --test tests/lib/cli-ux.test.js
|
|
132
|
+
node --test tests/commands/ai-analyze-project.test.js
|
|
133
|
+
node --test tests/commands/cli-contract.test.js
|
|
134
|
+
node --test tests/lib/i18n-catalog.test.js
|
|
135
|
+
node --test tests/commands/ux-flags.test.js
|
|
136
|
+
node --test tests/commands/ai-analyze-project-provider.test.js
|
|
137
|
+
node --test tests/lib/ai-analyze-project-validation.test.js tests/lib/ai/analyze-project-repair.test.js
|
|
138
|
+
npm run docs:check
|
|
139
|
+
npm run schema:slice:check
|
|
140
|
+
node bin/create-quiver.js spec validate specs/quiver-v55-analyze-project-doc-apply-ux --strict
|
|
141
|
+
git diff --check
|
|
142
|
+
npm test
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
Result: all passed. Full `npm test` passed with 741 tests.
|
|
146
|
+
|
|
147
|
+
Covered behavior:
|
|
148
|
+
|
|
149
|
+
- TTY `--apply-docs` shows an explained selector after provider validation.
|
|
150
|
+
- Clean creates recommend `apply`; dirty/update targets recommend `view-diff`.
|
|
151
|
+
- no-TTY `--apply-docs` without `--yes` fails before provider execution.
|
|
152
|
+
- Cancel writes no final docs and records `apply-canceled`.
|
|
153
|
+
- Save proposal writes proposal artifacts only.
|
|
154
|
+
- View diff saves the full diff artifact, prints a bounded preview, and requires a second decision.
|
|
155
|
+
- Edit proposal reuses the existing review/editor confirmation flow.
|
|
156
|
+
- English and Spanish selector copy are covered.
|
|
157
|
+
|
|
158
|
+
## Slice-05 Evidence - slice-05-apply-saved-proposal
|
|
159
|
+
|
|
160
|
+
Executed:
|
|
161
|
+
|
|
162
|
+
```bash
|
|
163
|
+
node --test tests/commands/ai-analyze-project-review.test.js
|
|
164
|
+
node --test tests/lib/ai-analyze-project-proposal.test.js
|
|
165
|
+
node --test tests/commands/ai-analyze-project.test.js
|
|
166
|
+
npm run docs:check
|
|
167
|
+
npm run schema:slice:check
|
|
168
|
+
node bin/create-quiver.js spec validate specs/quiver-v55-analyze-project-doc-apply-ux --strict
|
|
169
|
+
git diff --check
|
|
170
|
+
npm test
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
Result: all passed. Full `npm test` passed with 747 tests.
|
|
174
|
+
|
|
175
|
+
Covered behavior:
|
|
176
|
+
|
|
177
|
+
- `ai analyze-project apply --run <run-id>` applies a saved proposal without executing provider/model resolution.
|
|
178
|
+
- Saved proposal manifests and proposal JSON are revalidated before write.
|
|
179
|
+
- Missing or unsafe saved artifacts fail before final docs writes.
|
|
180
|
+
- Dirty target docs block by default and can be applied only with `--allow-dirty-docs`.
|
|
181
|
+
- Stale target docs block before any final docs write.
|
|
182
|
+
- Manual proposal edits are accepted after revalidation and recorded in the write manifest.
|
|
183
|
+
- `--run latest --yes` and `--run latest --json` are rejected to keep automation deterministic.
|
|
184
|
+
|
|
185
|
+
## Slice-06 Evidence - slice-06-i18n-docs-release-smoke
|
|
186
|
+
|
|
187
|
+
Executed:
|
|
188
|
+
|
|
189
|
+
```bash
|
|
190
|
+
node --test tests/commands/cli-contract.test.js
|
|
191
|
+
node --test tests/lib/i18n-catalog.test.js
|
|
192
|
+
node --test tests/commands/ai-analyze-project-review.test.js
|
|
193
|
+
npm run docs:check
|
|
194
|
+
npm run schema:slice:check
|
|
195
|
+
node bin/create-quiver.js spec validate specs/quiver-v55-analyze-project-doc-apply-ux --strict
|
|
196
|
+
git diff --check
|
|
197
|
+
npm test
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
Result: all passed. Full `npm test` passed with 747 tests.
|
|
201
|
+
|
|
202
|
+
Covered behavior:
|
|
203
|
+
|
|
204
|
+
- English and Spanish help coverage includes the new analyze-project doc-apply flags.
|
|
205
|
+
- Commands, flags, providers, models, and paths remain untranslated in localized output.
|
|
206
|
+
- Command reference explains `--apply-docs`, `--save-proposal`, `--review`, `--yes`, `--diff`, and `apply --run`.
|
|
207
|
+
- Existing-project workflow documents the recommended `--apply-docs` path and save/apply separation.
|
|
208
|
+
- Troubleshooting explains why normal provider mode does not write final docs.
|
|
209
|
+
- Release smoke guidance uses a temporary copy or disposable branch of `nika-erp`, not the main checkout.
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Execution Plan - Quiver v55 Analyze Project Doc Apply UX
|
|
2
|
+
|
|
3
|
+
## Sequential Order
|
|
4
|
+
|
|
5
|
+
1. `slice-01-cli-proposal-contract`
|
|
6
|
+
2. `slice-02-save-proposal-flow`
|
|
7
|
+
3. `slice-03-noninteractive-apply-engine`
|
|
8
|
+
4. `slice-04-interactive-apply-ux`
|
|
9
|
+
5. `slice-05-apply-saved-proposal`
|
|
10
|
+
6. `slice-06-i18n-docs-release-smoke`
|
|
11
|
+
|
|
12
|
+
## Parallelization Rules
|
|
13
|
+
|
|
14
|
+
- `slice-01` must land first because it freezes the CLI and artifact contracts.
|
|
15
|
+
- `slice-02` must wait for proposal artifact schema and paths.
|
|
16
|
+
- `slice-03` must wait for saved proposal support so every apply can persist proposal artifacts first.
|
|
17
|
+
- `slice-04` must wait for the non-interactive apply engine so the selector only orchestrates tested actions.
|
|
18
|
+
- `slice-05` can start after `slice-03`; it must not duplicate apply/write logic.
|
|
19
|
+
- `slice-06` closes documentation, i18n, command matrix, and release smoke after behavior is stable.
|
|
20
|
+
|
|
21
|
+
## Critical Boundaries
|
|
22
|
+
|
|
23
|
+
- CLI parse boundary: `slice-01`
|
|
24
|
+
- Proposal artifact boundary: `slice-01`, `slice-02`
|
|
25
|
+
- Write boundary: `slice-03`
|
|
26
|
+
- Human UX boundary: `slice-04`
|
|
27
|
+
- Saved-run trust boundary: `slice-05`
|
|
28
|
+
- Release readiness boundary: `slice-06`
|
|
29
|
+
|
|
30
|
+
## Rollback
|
|
31
|
+
|
|
32
|
+
- Revert `slice-04` to remove interactive UX while keeping non-interactive save/apply behavior.
|
|
33
|
+
- Revert `slice-05` if saved proposal application has stale-detection issues.
|
|
34
|
+
- Revert `slice-03` to remove docs applying while retaining proposal save artifacts.
|
|
35
|
+
- Preserve existing `--review` behavior throughout as fallback.
|
|
36
|
+
|
|
37
|
+
## Required Validation
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
node --test tests/commands/ai-analyze-project-review.test.js
|
|
41
|
+
node --test tests/commands/ai-analyze-project-provider.test.js
|
|
42
|
+
node --test tests/commands/ai-analyze-project.test.js
|
|
43
|
+
node --test tests/lib/ai-analyze-project-validation.test.js
|
|
44
|
+
node --test tests/lib/ai/analyze-project-repair.test.js
|
|
45
|
+
npm run docs:check
|
|
46
|
+
npm run schema:slice:check
|
|
47
|
+
node bin/create-quiver.js spec validate specs/quiver-v55-analyze-project-doc-apply-ux --strict
|
|
48
|
+
git diff --check
|
|
49
|
+
```
|
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
# Quiver v55 - Analyze Project Doc Apply UX
|
|
2
|
+
|
|
3
|
+
**Date:** 2026-06-12
|
|
4
|
+
**Status:** Approved, not implemented
|
|
5
|
+
**Source:** User-approved requirement, technical plan, production review, and stricter slice-cut review.
|
|
6
|
+
|
|
7
|
+
## Problem
|
|
8
|
+
|
|
9
|
+
`ai analyze-project --deep --provider codex --model gpt-5.5` now generates valid, auditable doc proposals, but users still do not get an easy path to apply those proposals. Without `--review`, no final docs are written. With `--review`, Quiver opens a large JSON proposal in `$VISUAL` or `$EDITOR`, which is safe but confusing for non-technical users, especially when the editor is `vim` or another console editor.
|
|
10
|
+
|
|
11
|
+
The command needs a simpler product-grade flow that explains choices, supports English and Spanish, preserves auditability, and avoids accidental documentation writes.
|
|
12
|
+
|
|
13
|
+
## Objective
|
|
14
|
+
|
|
15
|
+
Add a safe, bilingual, user-friendly documentation application workflow for `ai analyze-project`:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
npx create-quiver ai analyze-project --deep --apply-docs --provider codex --model gpt-5.5
|
|
19
|
+
npx create-quiver ai analyze-project --deep --apply-docs --yes --provider codex --model gpt-5.5
|
|
20
|
+
npx create-quiver ai analyze-project --deep --save-proposal --provider codex --model gpt-5.5
|
|
21
|
+
npx create-quiver ai analyze-project apply --run <run-id>
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
The implementation must separate proposal generation, proposal persistence, apply logic, and interactive UX so future teams can evolve each part without duplicating write-gate logic.
|
|
25
|
+
|
|
26
|
+
## Scope
|
|
27
|
+
|
|
28
|
+
### Included
|
|
29
|
+
|
|
30
|
+
- New CLI contract for `--apply-docs`, `--save-proposal`, `--diff`, `--yes`, `--allow-dirty-docs`, and `ai analyze-project apply --run <run-id>`.
|
|
31
|
+
- Proposal artifact contract under `.quiver/runs/<run-id>/proposal/`.
|
|
32
|
+
- Non-interactive save proposal flow.
|
|
33
|
+
- Non-interactive apply flow with `--apply-docs --yes`.
|
|
34
|
+
- Interactive TTY selector with explained options and dynamic recommendation.
|
|
35
|
+
- Apply saved proposal flow with stale/dirty validation.
|
|
36
|
+
- English and Spanish UX copy.
|
|
37
|
+
- Docs, command matrix, and release smoke guidance.
|
|
38
|
+
|
|
39
|
+
### Excluded
|
|
40
|
+
|
|
41
|
+
- Changing the provider prompt semantics.
|
|
42
|
+
- Relaxing the analyze-project schema.
|
|
43
|
+
- Writing product code in analyzed repositories.
|
|
44
|
+
- Generating specs automatically from project analysis.
|
|
45
|
+
- Removing or breaking the existing `--review` editor flow.
|
|
46
|
+
- Requiring live provider calls in CI.
|
|
47
|
+
|
|
48
|
+
## Functional Requirements
|
|
49
|
+
|
|
50
|
+
1. Normal provider mode without apply flags must clearly say that docs were not written and list the next commands.
|
|
51
|
+
2. `--save-proposal` must generate and save a validated normalized proposal without writing final docs.
|
|
52
|
+
3. `--apply-docs --yes` must apply validated doc updates without prompting and must be safe for automation.
|
|
53
|
+
4. `--apply-docs` in TTY must show a selector with option descriptions.
|
|
54
|
+
5. The selector must include:
|
|
55
|
+
- Apply documentation;
|
|
56
|
+
- View diff;
|
|
57
|
+
- Save proposal;
|
|
58
|
+
- Edit proposal;
|
|
59
|
+
- Cancel.
|
|
60
|
+
6. The recommended option must be first and must change to View diff when docs are dirty or existing content creates higher overwrite risk.
|
|
61
|
+
7. `--review` must preserve current behavior and be documented as advanced edit proposal mode.
|
|
62
|
+
8. `ai analyze-project apply --run <run-id>` must apply a saved proposal without running a provider.
|
|
63
|
+
9. `apply --run` must revalidate the saved proposal and current docs before writing.
|
|
64
|
+
10. `--run latest` may be supported only in TTY and never with `--yes`.
|
|
65
|
+
|
|
66
|
+
## Non-Functional Requirements
|
|
67
|
+
|
|
68
|
+
- All writes must be audited.
|
|
69
|
+
- All docs writes must use the existing safe write plan, snapshot, and post-write validation path.
|
|
70
|
+
- Human console output must stay compact.
|
|
71
|
+
- Full diff/proposal details must be saved as artifacts.
|
|
72
|
+
- `--json` output must remain parseable and must never include interactive prompts.
|
|
73
|
+
- The feature must work in English and Spanish.
|
|
74
|
+
- Commands, flags, and paths must not be translated.
|
|
75
|
+
|
|
76
|
+
## CLI Contract
|
|
77
|
+
|
|
78
|
+
| Command | Behavior |
|
|
79
|
+
|---|---|
|
|
80
|
+
| `ai analyze-project --deep --provider ...` | Generates analysis and audited provider artifacts. Does not write final docs. Explains next apply/save commands. |
|
|
81
|
+
| `ai analyze-project --deep --save-proposal --provider ...` | Runs provider, validates/repairs analysis, saves normalized proposal artifacts, writes no final docs. |
|
|
82
|
+
| `ai analyze-project --deep --save-proposal --json --provider ...` | Same as above with clean JSON result. |
|
|
83
|
+
| `ai analyze-project --deep --apply-docs --provider ...` | In TTY, shows explained selector. In no-TTY, fails unless `--yes`. |
|
|
84
|
+
| `ai analyze-project --deep --apply-docs --yes --provider ...` | Applies valid docs directly after safety checks. |
|
|
85
|
+
| `ai analyze-project --deep --apply-docs --yes --json --provider ...` | Applies valid docs and emits machine-readable result. |
|
|
86
|
+
| `ai analyze-project --deep --review --provider ...` | Existing advanced editor review flow. |
|
|
87
|
+
| `ai analyze-project apply --run <run-id>` | Applies saved proposal without provider execution. |
|
|
88
|
+
|
|
89
|
+
## Flag Rules
|
|
90
|
+
|
|
91
|
+
- `--apply-docs` and `--review` are mutually exclusive.
|
|
92
|
+
- `--dry-run` is incompatible with `--apply-docs`, `--save-proposal`, and `apply --run`.
|
|
93
|
+
- `--json + --save-proposal` is allowed.
|
|
94
|
+
- `--json + --apply-docs` is allowed only with `--yes`.
|
|
95
|
+
- `--json + --review` is prohibited.
|
|
96
|
+
- `--json` with an interactive selector is prohibited.
|
|
97
|
+
- `--allow-dirty-docs` only affects docs target dirty checks; it never permits product code writes.
|
|
98
|
+
|
|
99
|
+
## Proposal Artifact Contract
|
|
100
|
+
|
|
101
|
+
Every saved proposal must live under:
|
|
102
|
+
|
|
103
|
+
```text
|
|
104
|
+
.quiver/runs/<run-id>/proposal/
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
Required files:
|
|
108
|
+
|
|
109
|
+
```text
|
|
110
|
+
analyze-project-doc-proposal.json
|
|
111
|
+
analyze-project-doc-proposal.md
|
|
112
|
+
analyze-project-doc-proposal.diff
|
|
113
|
+
manifest.json
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
Required manifest fields:
|
|
117
|
+
|
|
118
|
+
```json
|
|
119
|
+
{
|
|
120
|
+
"schema_version": 1,
|
|
121
|
+
"kind": "quiver-analyze-project-doc-proposal",
|
|
122
|
+
"run_id": "run-...",
|
|
123
|
+
"created_at": "...",
|
|
124
|
+
"language": "en|es",
|
|
125
|
+
"provider": "codex",
|
|
126
|
+
"proposal_json": ".quiver/runs/.../proposal/analyze-project-doc-proposal.json",
|
|
127
|
+
"proposal_markdown": ".quiver/runs/.../proposal/analyze-project-doc-proposal.md",
|
|
128
|
+
"proposal_diff": ".quiver/runs/.../proposal/analyze-project-doc-proposal.diff",
|
|
129
|
+
"selected_context_manifest": ".quiver/runs/.../context/selected-context.json",
|
|
130
|
+
"repair_manifest": ".quiver/runs/.../repair/analyze-project-repair.json",
|
|
131
|
+
"doc_paths": [],
|
|
132
|
+
"doc_before_hashes": {},
|
|
133
|
+
"proposal_sha256": "...",
|
|
134
|
+
"events": []
|
|
135
|
+
}
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
The write manifest must be separate:
|
|
139
|
+
|
|
140
|
+
```text
|
|
141
|
+
.quiver/runs/<run-id>/writes/analyze-project-doc-writes.json
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
It must include actions, before/after hashes, snapshot path, validation result, and partial-write status if an unexpected write failure occurs.
|
|
145
|
+
|
|
146
|
+
## Interactive UX
|
|
147
|
+
|
|
148
|
+
Spanish example:
|
|
149
|
+
|
|
150
|
+
```text
|
|
151
|
+
Analisis completado.
|
|
152
|
+
La IA genero una propuesta de documentacion basada en el codigo del proyecto.
|
|
153
|
+
|
|
154
|
+
Archivos propuestos:
|
|
155
|
+
- docs/CONTEXTO.md
|
|
156
|
+
- docs/AI_CONTEXT.md
|
|
157
|
+
- docs/ARCHITECTURE.md
|
|
158
|
+
|
|
159
|
+
Que queres hacer?
|
|
160
|
+
|
|
161
|
+
> Aplicar documentacion (Recomendado)
|
|
162
|
+
Escribe los archivos propuestos usando merge seguro y snapshot previo.
|
|
163
|
+
|
|
164
|
+
Ver diff
|
|
165
|
+
Muestra los cambios antes de decidir si aplicarlos.
|
|
166
|
+
|
|
167
|
+
Guardar propuesta
|
|
168
|
+
Guarda la propuesta en .quiver/runs sin modificar docs finales.
|
|
169
|
+
|
|
170
|
+
Editar propuesta
|
|
171
|
+
Abre la propuesta en tu editor para modificarla manualmente.
|
|
172
|
+
|
|
173
|
+
Cancelar
|
|
174
|
+
No escribe documentacion final.
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
English example:
|
|
178
|
+
|
|
179
|
+
```text
|
|
180
|
+
Analysis completed.
|
|
181
|
+
AI generated a documentation proposal from the project source code.
|
|
182
|
+
|
|
183
|
+
Proposed files:
|
|
184
|
+
- docs/CONTEXTO.md
|
|
185
|
+
- docs/AI_CONTEXT.md
|
|
186
|
+
- docs/ARCHITECTURE.md
|
|
187
|
+
|
|
188
|
+
What do you want to do?
|
|
189
|
+
|
|
190
|
+
> Apply documentation (Recommended)
|
|
191
|
+
Writes the proposed files using safe merge and a prior snapshot.
|
|
192
|
+
|
|
193
|
+
View diff
|
|
194
|
+
Shows the changes before deciding whether to apply them.
|
|
195
|
+
|
|
196
|
+
Save proposal
|
|
197
|
+
Saves the proposal under .quiver/runs without modifying final docs.
|
|
198
|
+
|
|
199
|
+
Edit proposal
|
|
200
|
+
Opens the proposal in your editor for manual changes.
|
|
201
|
+
|
|
202
|
+
Cancel
|
|
203
|
+
Does not write final documentation.
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
## Safety Rules
|
|
207
|
+
|
|
208
|
+
- No final docs write if final JSON/proposal is invalid.
|
|
209
|
+
- No final docs write if any proposed path is outside the allowlist.
|
|
210
|
+
- No silent partial apply.
|
|
211
|
+
- Dirty docs block `--yes` unless `--allow-dirty-docs` is passed.
|
|
212
|
+
- In repos without Git, use hash/snapshot checks and warn that Git dirty detection is unavailable.
|
|
213
|
+
- `apply --run` must revalidate the current repo state before writing.
|
|
214
|
+
- A saved proposal with stale doc hashes must warn in TTY and block `--yes` unless explicitly allowed.
|
|
215
|
+
|
|
216
|
+
## Slice Roadmap
|
|
217
|
+
|
|
218
|
+
| Slice | Title | Status | Dependencies | Parallel Guidance |
|
|
219
|
+
|---|---|---|---|---|
|
|
220
|
+
| slice-01-cli-proposal-contract | CLI Contract + Proposal Artifact Contract | pending | none | sequential first |
|
|
221
|
+
| slice-02-save-proposal-flow | Save Proposal Flow | pending | slice-01 | sequential after contract |
|
|
222
|
+
| slice-03-noninteractive-apply-engine | Non-Interactive Apply Engine | pending | slice-01, slice-02 | sequential safety gate |
|
|
223
|
+
| slice-04-interactive-apply-ux | Interactive Apply UX | pending | slice-03 | sequential UI over engine |
|
|
224
|
+
| slice-05-apply-saved-proposal | Apply Saved Proposal | pending | slice-02, slice-03 | after apply engine |
|
|
225
|
+
| slice-06-i18n-docs-release-smoke | i18n, Docs, Release Smoke | pending | slice-04, slice-05 | final |
|
|
226
|
+
|
|
227
|
+
## Execution Order
|
|
228
|
+
|
|
229
|
+
```text
|
|
230
|
+
01
|
|
231
|
+
└─ 02
|
|
232
|
+
└─ 03
|
|
233
|
+
├─ 04
|
|
234
|
+
└─ 05
|
|
235
|
+
└─ 06
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
## Validation Strategy
|
|
239
|
+
|
|
240
|
+
Deterministic gates:
|
|
241
|
+
|
|
242
|
+
```bash
|
|
243
|
+
node --test tests/commands/ai-analyze-project-review.test.js
|
|
244
|
+
node --test tests/commands/ai-analyze-project-provider.test.js
|
|
245
|
+
node --test tests/commands/ai-analyze-project.test.js
|
|
246
|
+
node --test tests/lib/ai-analyze-project-validation.test.js
|
|
247
|
+
node --test tests/lib/ai/analyze-project-repair.test.js
|
|
248
|
+
npm run docs:check
|
|
249
|
+
npm run schema:slice:check
|
|
250
|
+
node bin/create-quiver.js spec validate specs/quiver-v55-analyze-project-doc-apply-ux --strict
|
|
251
|
+
git diff --check
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
Release smoke must use a temporary copy or disposable branch of `nika-erp`, never the main working copy.
|
|
255
|
+
|
|
256
|
+
## Risks
|
|
257
|
+
|
|
258
|
+
- Applying proposals over stale docs can overwrite human edits.
|
|
259
|
+
- Adding selector logic directly inside `ai.js` can increase CLI debt.
|
|
260
|
+
- A broad `--yes` implementation can approve more than intended.
|
|
261
|
+
- Diff output can become too large and repeat the original UX problem.
|
|
262
|
+
- `apply --run latest` can apply the wrong proposal if not constrained.
|
|
263
|
+
|
|
264
|
+
## Resolved Decisions
|
|
265
|
+
|
|
266
|
+
- Implement three layers: Proposal Layer, Apply Layer, UX Layer.
|
|
267
|
+
- Keep `--review` backward compatible.
|
|
268
|
+
- Permit `--json` for non-interactive save/apply flows.
|
|
269
|
+
- Do not require provider/model for `apply --run`.
|
|
270
|
+
- Save proposal artifacts before any apply.
|
|
271
|
+
|
|
272
|
+
## Open Questions
|
|
273
|
+
|
|
274
|
+
- Exact human diff truncation limit should be chosen during implementation.
|
|
275
|
+
- Exact stale proposal warning copy should be finalized with i18n keys.
|
|
276
|
+
- Whether `--run latest` ships in v55 or is deferred should be decided during slice-05.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Status - Quiver v55 Analyze Project Doc Apply UX
|
|
2
|
+
|
|
3
|
+
**Status:** Completed
|
|
4
|
+
**Last updated:** 2026-06-12
|
|
5
|
+
|
|
6
|
+
## Current State
|
|
7
|
+
|
|
8
|
+
The requirement, acceptance criteria, technical plan, production review, and stricter slice-cut review are approved. All six slices have been implemented and validated.
|
|
9
|
+
|
|
10
|
+
## Slice Status
|
|
11
|
+
|
|
12
|
+
| Slice | Status | Notes |
|
|
13
|
+
|---|---|---|
|
|
14
|
+
| slice-01-cli-proposal-contract | completed | CLI flags, subcommand contract, help/docs, and proposal/write manifest schema are implemented and tested. |
|
|
15
|
+
| slice-02-save-proposal-flow | completed | `--save-proposal` persists JSON, Markdown summary, diff, and manifest artifacts without final docs writes. |
|
|
16
|
+
| slice-03-noninteractive-apply-engine | completed | `--apply-docs --yes` applies valid docs through proposal artifacts, dirty/stale preflight, snapshot, write manifest, and post-write validation. |
|
|
17
|
+
| slice-04-interactive-apply-ux | completed | Plain TTY `--apply-docs` now shows an explained selector with apply, view diff, save, edit, and cancel actions routed through tested flows. |
|
|
18
|
+
| slice-05-apply-saved-proposal | completed | `ai analyze-project apply --run <run-id>` applies saved proposals without provider execution after manifest/proposal revalidation and dirty/stale checks. |
|
|
19
|
+
| slice-06-i18n-docs-release-smoke | completed | EN/ES help coverage, user docs, command matrix, troubleshooting, and safe nika-erp release smoke guidance are updated and validated. |
|
|
20
|
+
|
|
21
|
+
## Blockers
|
|
22
|
+
|
|
23
|
+
- None.
|
|
24
|
+
|
|
25
|
+
## Next Command
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
npm run docs:check
|
|
29
|
+
```
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# CLOSURE_BRIEF - slice-01 CLI proposal contract
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
|
|
5
|
+
Completed. The CLI contract now recognizes the v55 doc-apply flags and `ai analyze-project apply --run <run-id>` without implementing the later save/apply flows.
|
|
6
|
+
|
|
7
|
+
Implemented:
|
|
8
|
+
|
|
9
|
+
- Parser support for `--apply-docs`, `--save-proposal`, `--diff`, and `--allow-dirty-docs`.
|
|
10
|
+
- Parser support for `ai analyze-project apply --run <run-id>`.
|
|
11
|
+
- Pre-provider contract failures for invalid flag combinations.
|
|
12
|
+
- Runtime contract guards that prevent provider execution for future save/apply flows until later slices implement them.
|
|
13
|
+
- Proposal/write manifest schema helpers in `analyze-project-proposal.js`.
|
|
14
|
+
- Help/reference documentation for the new command surface.
|
|
15
|
+
- Regression coverage for existing `--review` UX support.
|
|
16
|
+
|
|
17
|
+
## Required Evidence
|
|
18
|
+
|
|
19
|
+
- Parser/flag tests pass.
|
|
20
|
+
- Invalid combination tests pass before provider execution.
|
|
21
|
+
- Proposal manifest schema tests pass.
|
|
22
|
+
- Existing `--review` tests still pass.
|
|
23
|
+
- Docs and slice schema checks pass.
|
|
24
|
+
|
|
25
|
+
## Validation
|
|
26
|
+
|
|
27
|
+
Executed:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
node --test tests/lib/ai-analyze-project-proposal.test.js
|
|
31
|
+
node --test tests/commands/ai-analyze-project.test.js
|
|
32
|
+
node --test tests/commands/cli-contract.test.js
|
|
33
|
+
node --test tests/commands/parser-contract.test.js
|
|
34
|
+
node --test tests/commands/ux-flags.test.js
|
|
35
|
+
node --test tests/commands/ai-analyze-project-review.test.js
|
|
36
|
+
node --test tests/commands/ai-analyze-project-provider.test.js
|
|
37
|
+
node --test tests/lib/ai-analyze-project-docs.test.js tests/lib/ai-analyze-project-validation.test.js
|
|
38
|
+
npm run docs:check
|
|
39
|
+
npm run schema:slice:check
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Pending final gate after metadata close:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
node bin/create-quiver.js spec validate specs/quiver-v55-analyze-project-doc-apply-ux --strict
|
|
46
|
+
git diff --check
|
|
47
|
+
```
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# EXECUTION_BRIEF - slice-01 CLI proposal contract
|
|
2
|
+
|
|
3
|
+
## Context
|
|
4
|
+
|
|
5
|
+
The new apply-docs workflow needs stable contracts before any write behavior or selector UX is implemented. This slice freezes parser behavior, flag incompatibilities, proposal artifact schemas, and command help expectations.
|
|
6
|
+
|
|
7
|
+
## Objective
|
|
8
|
+
|
|
9
|
+
Define and test the CLI contract and proposal artifact contract for v55 without writing final docs.
|
|
10
|
+
|
|
11
|
+
## Scope
|
|
12
|
+
|
|
13
|
+
- Parse/validate:
|
|
14
|
+
- `--apply-docs`
|
|
15
|
+
- `--save-proposal`
|
|
16
|
+
- `--diff`
|
|
17
|
+
- `--yes`
|
|
18
|
+
- `--allow-dirty-docs`
|
|
19
|
+
- `ai analyze-project apply --run <run-id>`
|
|
20
|
+
- Define proposal manifest schema and write manifest schema.
|
|
21
|
+
- Define allowed JSON combinations.
|
|
22
|
+
- Update command registry/help metadata if needed.
|
|
23
|
+
- Add contract tests only; no apply implementation.
|
|
24
|
+
|
|
25
|
+
## Acceptance Criteria
|
|
26
|
+
|
|
27
|
+
- Parser accepts the approved flags and subaction without breaking existing `ai analyze-project --deep`.
|
|
28
|
+
- Invalid flag combinations fail before provider execution with actionable errors.
|
|
29
|
+
- `--review` remains backward compatible.
|
|
30
|
+
- Proposal manifest schema is documented and testable.
|
|
31
|
+
- `apply --run` contract does not require provider/model.
|
|
32
|
+
- No runtime docs write is introduced in this slice.
|
|
33
|
+
|
|
34
|
+
## Expected Files To Modify
|
|
35
|
+
|
|
36
|
+
- `src/create-quiver/commands/ai.js`
|
|
37
|
+
- `src/create-quiver/lib/ai/analyze-project-*.js`
|
|
38
|
+
- `src/create-quiver/lib/i18n/messages/en.js`
|
|
39
|
+
- `src/create-quiver/lib/i18n/messages/es.js`
|
|
40
|
+
- `tests/commands/ai-analyze-project*.test.js`
|
|
41
|
+
- `tests/lib/ai*.test.js`
|
|
42
|
+
- `docs/reference/commands.md`
|
|
43
|
+
- this slice closure/status/evidence files
|
|
44
|
+
|
|
45
|
+
## Validation Required
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
node --test tests/commands/ai-analyze-project.test.js
|
|
49
|
+
node --test tests/commands/ai-analyze-project-review.test.js
|
|
50
|
+
node bin/create-quiver.js spec validate specs/quiver-v55-analyze-project-doc-apply-ux --strict
|
|
51
|
+
git diff --check
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Completion Checklist
|
|
55
|
+
|
|
56
|
+
- Parser and help contract updated.
|
|
57
|
+
- Proposal/write manifest schema contract documented.
|
|
58
|
+
- Contract tests added or updated.
|
|
59
|
+
- Existing `--review` behavior verified.
|
|
60
|
+
- Slice closure brief updated with evidence.
|
|
61
|
+
|
|
62
|
+
## Constraints
|
|
63
|
+
|
|
64
|
+
- Do not implement actual docs applying.
|
|
65
|
+
- Do not call live providers.
|
|
66
|
+
- Do not relax analyze-project schema.
|
|
67
|
+
- Do not change `--review` semantics.
|