create-quiver 0.15.4 → 0.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/pull_request_template.md +17 -0
- package/.github/workflows/ci.yml +76 -0
- package/.markdown-link-check.json +15 -0
- package/.markdownlint.json +11 -0
- package/ARCHITECTURE.md +133 -0
- package/CHANGELOG.md +16 -0
- package/CONTRIBUTING.md +174 -9
- package/README.md +17 -2
- package/README_FOR_AI.md +4 -1
- package/ROADMAP.md +4 -0
- package/SECURITY.md +9 -2
- package/docs/AI_CONTEXT.md.es.template +3 -1
- package/docs/AI_CONTEXT.md.template +3 -1
- package/docs/CLI_UX_GUIDE.md +20 -1
- package/docs/COMMANDS.md.template +20 -6
- package/docs/GITFLOW_PR_GUIDE.md +73 -11
- package/docs/GITFLOW_PR_GUIDE.md.es.template +61 -2
- package/docs/GITFLOW_PR_GUIDE.md.template +72 -10
- package/docs/INDEX.md +6 -1
- package/docs/QUICK.md.template +2 -1
- package/docs/STANDARD.md.template +2 -1
- package/docs/WORKFLOW.md.es.template +3 -1
- package/docs/WORKFLOW.md.template +6 -4
- package/docs/getting-started/installation.md +7 -0
- package/docs/reference/commands.md +138 -6
- package/docs/reference/slice-schema.md +37 -0
- package/docs/schema/slice.schema.json +221 -0
- package/docs/specs/01-spec/01-slice/01-slice.json +36 -0
- package/docs/specs/01-spec/01-slice/01-slice.md +106 -0
- package/docs/specs/01-spec/01-slice/CLOSURE_BRIEF.md +80 -0
- package/docs/specs/01-spec/01-slice/EXECUTION_BRIEF.md +39 -0
- package/docs/specs/01-spec/02-slice/02-slice.json +36 -0
- package/docs/specs/01-spec/02-slice/02-slice.md +108 -0
- package/docs/specs/01-spec/02-slice/CLOSURE_BRIEF.md +88 -0
- package/docs/specs/01-spec/02-slice/EXECUTION_BRIEF.md +40 -0
- package/docs/specs/01-spec/03-slice/03-slice.json +36 -0
- package/docs/specs/01-spec/03-slice/03-slice.md +103 -0
- package/docs/specs/01-spec/03-slice/CLOSURE_BRIEF.md +54 -0
- package/docs/specs/01-spec/03-slice/EXECUTION_BRIEF.md +39 -0
- package/docs/specs/01-spec/04-slice/04-slice.json +36 -0
- package/docs/specs/01-spec/04-slice/04-slice.md +107 -0
- package/docs/specs/01-spec/04-slice/CLOSURE_BRIEF.md +46 -0
- package/docs/specs/01-spec/04-slice/EXECUTION_BRIEF.md +39 -0
- package/docs/specs/01-spec/05-slice/05-slice.json +36 -0
- package/docs/specs/01-spec/05-slice/05-slice.md +106 -0
- package/docs/specs/01-spec/05-slice/CLOSURE_BRIEF.md +84 -0
- package/docs/specs/01-spec/05-slice/EXECUTION_BRIEF.md +109 -0
- package/docs/specs/01-spec/06-slice/06-slice.json +36 -0
- package/docs/specs/01-spec/06-slice/06-slice.md +107 -0
- package/docs/specs/01-spec/06-slice/CLOSURE_BRIEF.md +67 -0
- package/docs/specs/01-spec/06-slice/EXECUTION_BRIEF.md +39 -0
- package/docs/specs/01-spec/07-slice/07-slice.json +36 -0
- package/docs/specs/01-spec/07-slice/07-slice.md +105 -0
- package/docs/specs/01-spec/07-slice/CLOSURE_BRIEF.md +71 -0
- package/docs/specs/01-spec/07-slice/EXECUTION_BRIEF.md +39 -0
- package/docs/specs/01-spec/08-slice/08-slice.json +36 -0
- package/docs/specs/01-spec/08-slice/08-slice.md +105 -0
- package/docs/specs/01-spec/08-slice/CLOSURE_BRIEF.md +114 -0
- package/docs/specs/01-spec/08-slice/EXECUTION_BRIEF.md +39 -0
- package/docs/specs/01-spec/CLOSURE_BRIEF.md +87 -0
- package/docs/specs/01-spec/spec.md +197 -0
- package/docs/workflows/full-ai-spec-to-pr.md +46 -3
- package/i18n/es/docs/GITFLOW_PR_GUIDE.md.template +38 -1
- package/package.json +27 -1
- package/scripts/package-quiver.sh +82 -2
- package/scripts/release-quiver.sh +14 -3
- package/specs/[project-name]/slices/pr.md.template +19 -0
- package/specs/quiver-v43-cli-i18n-audit-release-readiness/command-language-mode-matrix.json +122 -1
- package/specs/quiver-v46-deep-project-analysis/EVIDENCE_REPORT.md +94 -0
- package/specs/quiver-v46-deep-project-analysis/EXECUTION_PLAN.md +26 -0
- package/specs/quiver-v46-deep-project-analysis/SPEC.md +157 -0
- package/specs/quiver-v46-deep-project-analysis/STATUS.md +26 -0
- package/specs/quiver-v46-deep-project-analysis/pr.md +131 -0
- package/specs/quiver-v46-deep-project-analysis/slices/slice-00-analysis-contract-foundation/CLOSURE_BRIEF.md +14 -0
- package/specs/quiver-v46-deep-project-analysis/slices/slice-00-analysis-contract-foundation/EXECUTION_BRIEF.md +41 -0
- package/specs/quiver-v46-deep-project-analysis/slices/slice-00-analysis-contract-foundation/slice.json +61 -0
- package/specs/quiver-v46-deep-project-analysis/slices/slice-01-stack-agnostic-discovery-sampling/CLOSURE_BRIEF.md +22 -0
- package/specs/quiver-v46-deep-project-analysis/slices/slice-01-stack-agnostic-discovery-sampling/EXECUTION_BRIEF.md +33 -0
- package/specs/quiver-v46-deep-project-analysis/slices/slice-01-stack-agnostic-discovery-sampling/slice.json +80 -0
- package/specs/quiver-v46-deep-project-analysis/slices/slice-02-provider-analysis-json-contract/CLOSURE_BRIEF.md +21 -0
- package/specs/quiver-v46-deep-project-analysis/slices/slice-02-provider-analysis-json-contract/EXECUTION_BRIEF.md +34 -0
- package/specs/quiver-v46-deep-project-analysis/slices/slice-02-provider-analysis-json-contract/slice.json +79 -0
- package/specs/quiver-v46-deep-project-analysis/slices/slice-03-doc-proposal-review-safe-writes/CLOSURE_BRIEF.md +19 -0
- package/specs/quiver-v46-deep-project-analysis/slices/slice-03-doc-proposal-review-safe-writes/EXECUTION_BRIEF.md +33 -0
- package/specs/quiver-v46-deep-project-analysis/slices/slice-03-doc-proposal-review-safe-writes/slice.json +79 -0
- package/specs/quiver-v46-deep-project-analysis/slices/slice-04-validation-docs-release-readiness/CLOSURE_BRIEF.md +20 -0
- package/specs/quiver-v46-deep-project-analysis/slices/slice-04-validation-docs-release-readiness/EXECUTION_BRIEF.md +32 -0
- package/specs/quiver-v46-deep-project-analysis/slices/slice-04-validation-docs-release-readiness/slice.json +85 -0
- package/specs/quiver-v50-audit-trust-foundation/EVIDENCE_REPORT.md +151 -0
- package/specs/quiver-v50-audit-trust-foundation/EXECUTION_PLAN.md +34 -0
- package/specs/quiver-v50-audit-trust-foundation/SPEC.md +113 -0
- package/specs/quiver-v50-audit-trust-foundation/STATUS.md +26 -0
- package/specs/quiver-v50-audit-trust-foundation/pr.md +120 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-00-audit-baseline-and-resolved-findings/CLOSURE_BRIEF.md +20 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-00-audit-baseline-and-resolved-findings/EXECUTION_BRIEF.md +58 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-00-audit-baseline-and-resolved-findings/slice.json +57 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-01-runtime-minimum-and-package-metadata/CLOSURE_BRIEF.md +24 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-01-runtime-minimum-and-package-metadata/EXECUTION_BRIEF.md +67 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-01-runtime-minimum-and-package-metadata/slice.json +71 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-02-migrate-write-safety-contract/CLOSURE_BRIEF.md +24 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-02-migrate-write-safety-contract/EXECUTION_BRIEF.md +71 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-02-migrate-write-safety-contract/slice.json +81 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-03-security-reporting-channel/CLOSURE_BRIEF.md +22 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-03-security-reporting-channel/EXECUTION_BRIEF.md +57 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-03-security-reporting-channel/slice.json +56 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-04-user-facing-i18n-error-coverage/CLOSURE_BRIEF.md +23 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-04-user-facing-i18n-error-coverage/EXECUTION_BRIEF.md +68 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-04-user-facing-i18n-error-coverage/slice.json +84 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-05-init-analyze-progress-and-summaries/CLOSURE_BRIEF.md +25 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-05-init-analyze-progress-and-summaries/EXECUTION_BRIEF.md +73 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-05-init-analyze-progress-and-summaries/slice.json +72 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-06-contributor-and-architecture-docs/CLOSURE_BRIEF.md +22 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-06-contributor-and-architecture-docs/EXECUTION_BRIEF.md +66 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-06-contributor-and-architecture-docs/slice.json +74 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-07-ci-and-documentation-lint-baseline/CLOSURE_BRIEF.md +29 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-07-ci-and-documentation-lint-baseline/EXECUTION_BRIEF.md +74 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-07-ci-and-documentation-lint-baseline/slice.json +81 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/EVIDENCE_REPORT.md +145 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/EXECUTION_PLAN.md +32 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/SPEC.md +109 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/STATUS.md +25 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/pr.md +69 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-00-cli-contract-baseline/CLOSURE_BRIEF.md +20 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-00-cli-contract-baseline/EXECUTION_BRIEF.md +58 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-00-cli-contract-baseline/slice.json +56 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-01-flow-json-compatibility/CLOSURE_BRIEF.md +21 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-01-flow-json-compatibility/EXECUTION_BRIEF.md +61 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-01-flow-json-compatibility/slice.json +68 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-02-dashboard-section-validation-i18n/CLOSURE_BRIEF.md +25 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-02-dashboard-section-validation-i18n/EXECUTION_BRIEF.md +65 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-02-dashboard-section-validation-i18n/pr.md +134 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-02-dashboard-section-validation-i18n/slice.json +80 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-03-base-branch-resolution-policy/CLOSURE_BRIEF.md +31 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-03-base-branch-resolution-policy/EXECUTION_BRIEF.md +80 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-03-base-branch-resolution-policy/pr.md +159 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-03-base-branch-resolution-policy/slice.json +102 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-04-next-plan-graph-ux-edge-cases/CLOSURE_BRIEF.md +25 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-04-next-plan-graph-ux-edge-cases/EXECUTION_BRIEF.md +74 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-04-next-plan-graph-ux-edge-cases/pr.md +147 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-04-next-plan-graph-ux-edge-cases/slice.json +91 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-05-evidence-robustness-path-safety/CLOSURE_BRIEF.md +28 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-05-evidence-robustness-path-safety/EXECUTION_BRIEF.md +73 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-05-evidence-robustness-path-safety/pr.md +146 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-05-evidence-robustness-path-safety/slice.json +100 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-06-namespace-compatibility-windows-scripts/CLOSURE_BRIEF.md +36 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-06-namespace-compatibility-windows-scripts/EXECUTION_BRIEF.md +76 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-06-namespace-compatibility-windows-scripts/pr.md +155 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-06-namespace-compatibility-windows-scripts/slice.json +111 -0
- package/specs/quiver-v52-schema-docs-release-hygiene/EVIDENCE_REPORT.md +95 -0
- package/specs/quiver-v52-schema-docs-release-hygiene/EXECUTION_PLAN.md +31 -0
- package/specs/quiver-v52-schema-docs-release-hygiene/SPEC.md +107 -0
- package/specs/quiver-v52-schema-docs-release-hygiene/STATUS.md +22 -0
- package/specs/quiver-v52-schema-docs-release-hygiene/pr.md +69 -0
- package/specs/quiver-v52-schema-docs-release-hygiene/slices/slice-00-schema-docs-release-baseline/CLOSURE_BRIEF.md +21 -0
- package/specs/quiver-v52-schema-docs-release-hygiene/slices/slice-00-schema-docs-release-baseline/EXECUTION_BRIEF.md +60 -0
- package/specs/quiver-v52-schema-docs-release-hygiene/slices/slice-00-schema-docs-release-baseline/slice.json +62 -0
- package/specs/quiver-v52-schema-docs-release-hygiene/slices/slice-01-json-schema-for-slice-json/CLOSURE_BRIEF.md +34 -0
- package/specs/quiver-v52-schema-docs-release-hygiene/slices/slice-01-json-schema-for-slice-json/EXECUTION_BRIEF.md +71 -0
- package/specs/quiver-v52-schema-docs-release-hygiene/slices/slice-01-json-schema-for-slice-json/pr.md +146 -0
- package/specs/quiver-v52-schema-docs-release-hygiene/slices/slice-01-json-schema-for-slice-json/slice.json +106 -0
- package/specs/quiver-v52-schema-docs-release-hygiene/slices/slice-02-generated-cli-reference/CLOSURE_BRIEF.md +33 -0
- package/specs/quiver-v52-schema-docs-release-hygiene/slices/slice-02-generated-cli-reference/EXECUTION_BRIEF.md +67 -0
- package/specs/quiver-v52-schema-docs-release-hygiene/slices/slice-02-generated-cli-reference/pr.md +144 -0
- package/specs/quiver-v52-schema-docs-release-hygiene/slices/slice-02-generated-cli-reference/slice.json +86 -0
- package/specs/quiver-v52-schema-docs-release-hygiene/slices/slice-03-changelog-package-release-smoke-hygiene/CLOSURE_BRIEF.md +38 -0
- package/specs/quiver-v52-schema-docs-release-hygiene/slices/slice-03-changelog-package-release-smoke-hygiene/EXECUTION_BRIEF.md +75 -0
- package/specs/quiver-v52-schema-docs-release-hygiene/slices/slice-03-changelog-package-release-smoke-hygiene/pr.md +159 -0
- package/specs/quiver-v52-schema-docs-release-hygiene/slices/slice-03-changelog-package-release-smoke-hygiene/slice.json +105 -0
- package/src/create-quiver/commands/ai.js +521 -0
- package/src/create-quiver/commands/changelog.js +93 -0
- package/src/create-quiver/commands/config.js +16 -5
- package/src/create-quiver/commands/evidence.js +33 -2
- package/src/create-quiver/commands/flow.js +1 -0
- package/src/create-quiver/commands/graph.js +8 -2
- package/src/create-quiver/commands/plan.js +6 -0
- package/src/create-quiver/commands/spec.js +28 -13
- package/src/create-quiver/index.js +408 -98
- package/src/create-quiver/lib/ai/analyze-project-discovery.js +387 -0
- package/src/create-quiver/lib/ai/analyze-project-docs.js +364 -0
- package/src/create-quiver/lib/ai/analyze-project-parser.js +277 -0
- package/src/create-quiver/lib/ai/analyze-project-prompts.js +214 -0
- package/src/create-quiver/lib/ai/analyze-project-review.js +99 -0
- package/src/create-quiver/lib/ai/analyze-project-sampling.js +402 -0
- package/src/create-quiver/lib/ai/analyze-project-schema.js +92 -0
- package/src/create-quiver/lib/ai/analyze-project-validation.js +309 -0
- package/src/create-quiver/lib/ai/artifacts.js +4 -1
- package/src/create-quiver/lib/ai/github.js +5 -2
- package/src/create-quiver/lib/ai/spec-templates.js +19 -0
- package/src/create-quiver/lib/cli/command-registry.js +72 -0
- package/src/create-quiver/lib/cli/parser.js +14 -0
- package/src/create-quiver/lib/evidence.js +161 -6
- package/src/create-quiver/lib/git.js +99 -0
- package/src/create-quiver/lib/i18n/messages/en.js +52 -7
- package/src/create-quiver/lib/i18n/messages/es.js +54 -9
- package/src/create-quiver/lib/init-docs.js +1 -1
- package/src/create-quiver/lib/init-layout.js +9 -8
- package/src/create-quiver/lib/lifecycle.js +24 -26
- package/src/create-quiver/lib/readiness.js +67 -56
- package/src/create-quiver/lib/spec-worktrees.js +16 -34
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"version-json": {
|
|
39
39
|
"modes": {
|
|
40
40
|
"en_human": "not_applicable",
|
|
41
|
-
"es_human": "
|
|
41
|
+
"es_human": "accepted_exception",
|
|
42
42
|
"json": "pass",
|
|
43
43
|
"dry_run": "not_applicable",
|
|
44
44
|
"interactive": "not_applicable",
|
|
@@ -148,6 +148,21 @@
|
|
|
148
148
|
"tests/commands/flow.test.js"
|
|
149
149
|
]
|
|
150
150
|
},
|
|
151
|
+
"flow-json": {
|
|
152
|
+
"modes": {
|
|
153
|
+
"en_human": "not_applicable",
|
|
154
|
+
"es_human": "not_applicable",
|
|
155
|
+
"json": "pass",
|
|
156
|
+
"dry_run": "not_applicable",
|
|
157
|
+
"interactive": "not_supported",
|
|
158
|
+
"review": "not_supported",
|
|
159
|
+
"ci_no_tty": "pass",
|
|
160
|
+
"no_color": "not_applicable"
|
|
161
|
+
},
|
|
162
|
+
"evidence": [
|
|
163
|
+
"tests/commands/flow.test.js"
|
|
164
|
+
]
|
|
165
|
+
},
|
|
151
166
|
"doctor-json": {
|
|
152
167
|
"modes": {
|
|
153
168
|
"en_human": "not_applicable",
|
|
@@ -194,6 +209,89 @@
|
|
|
194
209
|
"tests/commands/dashboard.test.js"
|
|
195
210
|
]
|
|
196
211
|
},
|
|
212
|
+
"evidence-run": {
|
|
213
|
+
"modes": {
|
|
214
|
+
"en_human": "pass",
|
|
215
|
+
"es_human": "pass",
|
|
216
|
+
"json": "not_supported",
|
|
217
|
+
"dry_run": "not_applicable",
|
|
218
|
+
"interactive": "not_supported",
|
|
219
|
+
"review": "not_supported",
|
|
220
|
+
"ci_no_tty": "pass",
|
|
221
|
+
"no_color": "pass"
|
|
222
|
+
},
|
|
223
|
+
"evidence": [
|
|
224
|
+
"tests/commands/evidence.test.js",
|
|
225
|
+
"tests/lib/evidence.test.js"
|
|
226
|
+
]
|
|
227
|
+
},
|
|
228
|
+
"evidence-json": {
|
|
229
|
+
"modes": {
|
|
230
|
+
"en_human": "not_applicable",
|
|
231
|
+
"es_human": "not_applicable",
|
|
232
|
+
"json": "pass",
|
|
233
|
+
"dry_run": "not_applicable",
|
|
234
|
+
"interactive": "not_supported",
|
|
235
|
+
"review": "not_supported",
|
|
236
|
+
"ci_no_tty": "pass",
|
|
237
|
+
"no_color": "not_applicable"
|
|
238
|
+
},
|
|
239
|
+
"evidence": [
|
|
240
|
+
"tests/commands/evidence.test.js",
|
|
241
|
+
"tests/lib/evidence.test.js"
|
|
242
|
+
]
|
|
243
|
+
},
|
|
244
|
+
"slice-namespace": {
|
|
245
|
+
"modes": {
|
|
246
|
+
"en_human": "pass",
|
|
247
|
+
"es_human": "pass",
|
|
248
|
+
"json": "not_supported",
|
|
249
|
+
"dry_run": "not_applicable",
|
|
250
|
+
"interactive": "not_supported",
|
|
251
|
+
"review": "not_supported",
|
|
252
|
+
"ci_no_tty": "pass",
|
|
253
|
+
"no_color": "pass"
|
|
254
|
+
},
|
|
255
|
+
"evidence": [
|
|
256
|
+
"tests/commands/slice-namespace.test.js",
|
|
257
|
+
"tests/commands/parser-contract.test.js"
|
|
258
|
+
]
|
|
259
|
+
},
|
|
260
|
+
"handoff-namespace": {
|
|
261
|
+
"modes": {
|
|
262
|
+
"en_human": "pass",
|
|
263
|
+
"es_human": "pass",
|
|
264
|
+
"json": "not_supported",
|
|
265
|
+
"dry_run": "not_applicable",
|
|
266
|
+
"interactive": "not_supported",
|
|
267
|
+
"review": "not_supported",
|
|
268
|
+
"ci_no_tty": "pass",
|
|
269
|
+
"no_color": "pass"
|
|
270
|
+
},
|
|
271
|
+
"evidence": [
|
|
272
|
+
"tests/commands/handoff-namespace.test.js",
|
|
273
|
+
"tests/commands/parser-contract.test.js"
|
|
274
|
+
]
|
|
275
|
+
},
|
|
276
|
+
"ai-analyze-project": {
|
|
277
|
+
"modes": {
|
|
278
|
+
"en_human": "pass",
|
|
279
|
+
"es_human": "accepted_exception",
|
|
280
|
+
"json": "pass",
|
|
281
|
+
"dry_run": "pass",
|
|
282
|
+
"interactive": "not_supported",
|
|
283
|
+
"review": "pass",
|
|
284
|
+
"ci_no_tty": "pass",
|
|
285
|
+
"no_color": "pass",
|
|
286
|
+
"live_provider": "accepted_exception"
|
|
287
|
+
},
|
|
288
|
+
"evidence": [
|
|
289
|
+
"tests/commands/ai-analyze-project.test.js",
|
|
290
|
+
"tests/commands/ai-analyze-project-provider.test.js",
|
|
291
|
+
"tests/commands/ai-analyze-project-review.test.js",
|
|
292
|
+
"tests/lib/ai-analyze-project-validation.test.js"
|
|
293
|
+
]
|
|
294
|
+
},
|
|
197
295
|
"ai-prepare-context": {
|
|
198
296
|
"modes": {
|
|
199
297
|
"en_human": "pass",
|
|
@@ -471,6 +569,13 @@
|
|
|
471
569
|
"reason": "`ai pr --create` has external GitHub side effects; preflight, body handling, and create command construction are covered locally.",
|
|
472
570
|
"follow_up": "Use real `gh pr create` during PR opening with the documented SSH identity.",
|
|
473
571
|
"status": "accepted"
|
|
572
|
+
},
|
|
573
|
+
{
|
|
574
|
+
"id": "ai-analyze-project-human-i18n",
|
|
575
|
+
"owner": "release-readiness",
|
|
576
|
+
"reason": "`ai analyze-project` currently has English human output while JSON output remains stable; the v46 release prioritizes safety, privacy, review, validation, and machine-readable contracts.",
|
|
577
|
+
"follow_up": "Localize `ai analyze-project` human report strings in a dedicated CLI i18n slice.",
|
|
578
|
+
"status": "accepted"
|
|
474
579
|
}
|
|
475
580
|
],
|
|
476
581
|
"commands": [
|
|
@@ -486,14 +591,24 @@
|
|
|
486
591
|
{ "command": "init --interactive", "profile": "init-interactive", "critical": "pass" },
|
|
487
592
|
{ "command": "migrate --dry-run", "profile": "migrate", "critical": "pass" },
|
|
488
593
|
{ "command": "migrate", "profile": "migrate", "critical": "pass" },
|
|
594
|
+
{ "command": "migrate --yes", "profile": "migrate", "critical": "pass" },
|
|
489
595
|
{ "command": "analyze", "profile": "read-only-human", "critical": "pass" },
|
|
490
596
|
{ "command": "doctor", "profile": "read-only-human", "critical": "pass" },
|
|
491
597
|
{ "command": "doctor --json", "profile": "doctor-json", "critical": "pass" },
|
|
492
598
|
{ "command": "flow", "profile": "read-only-human", "critical": "pass" },
|
|
599
|
+
{ "command": "flow --json", "profile": "flow-json", "critical": "pass" },
|
|
493
600
|
{ "command": "dashboard", "profile": "dashboard-human", "critical": "pass" },
|
|
494
601
|
{ "command": "dashboard --details", "profile": "dashboard-human", "critical": "pass" },
|
|
495
602
|
{ "command": "dashboard --section <name>", "profile": "dashboard-human", "critical": "pass" },
|
|
496
603
|
{ "command": "dashboard --limit <n>", "profile": "dashboard-human", "critical": "pass" },
|
|
604
|
+
{ "command": "evidence run -- <command>", "profile": "evidence-run", "critical": "pass" },
|
|
605
|
+
{ "command": "evidence run --output .quiver/evidence/test.md -- <command>", "profile": "evidence-run", "critical": "pass" },
|
|
606
|
+
{ "command": "evidence list --json", "profile": "evidence-json", "critical": "pass" },
|
|
607
|
+
{ "command": "evidence show .quiver/evidence/test.md --json", "profile": "evidence-json", "critical": "pass" },
|
|
608
|
+
{ "command": "ai analyze-project --deep --dry-run", "profile": "ai-analyze-project", "critical": "pass" },
|
|
609
|
+
{ "command": "ai analyze-project --deep --dry-run --json", "profile": "ai-analyze-project", "critical": "pass" },
|
|
610
|
+
{ "command": "ai analyze-project --deep --review", "profile": "ai-analyze-project", "critical": "pass" },
|
|
611
|
+
{ "command": "ai analyze-project --scope apps/web --max-files 80 --max-bytes 300000 --include-tests --dry-run", "profile": "ai-analyze-project", "critical": "pass" },
|
|
497
612
|
{ "command": "ai prepare-context --dry-run", "profile": "ai-prepare-context", "critical": "pass" },
|
|
498
613
|
{ "command": "ai prepare-context", "profile": "ai-prepare-context", "critical": "pass" },
|
|
499
614
|
{ "command": "ai prepare-context --with-planner --dry-run", "profile": "ai-prepare-context-planner", "critical": "pass" },
|
|
@@ -528,6 +643,12 @@
|
|
|
528
643
|
{ "command": "spec create --interactive", "profile": "spec-create", "critical": "pass" },
|
|
529
644
|
{ "command": "spec validate specs/<spec> --strict", "profile": "spec-workflow", "critical": "pass" },
|
|
530
645
|
{ "command": "spec start specs/<spec>", "profile": "spec-workflow", "critical": "pass" },
|
|
646
|
+
{ "command": "slice start specs/<spec>/slices/<slice>/slice.json", "profile": "slice-namespace", "critical": "pass" },
|
|
647
|
+
{ "command": "slice check --local specs/<spec>/slices/<slice>/slice.json", "profile": "slice-namespace", "critical": "pass" },
|
|
648
|
+
{ "command": "slice pr specs/<spec>/slices/<slice>/slice.json", "profile": "slice-namespace", "critical": "pass" },
|
|
649
|
+
{ "command": "slice scope specs/<spec>/slices/<slice>/slice.json", "profile": "slice-namespace", "critical": "pass" },
|
|
650
|
+
{ "command": "handoff check specs/<spec>/slices/<slice>/EXECUTION_BRIEF.md", "profile": "handoff-namespace", "critical": "pass" },
|
|
651
|
+
{ "command": "handoff new <spec-slug>", "profile": "handoff-namespace", "critical": "pass" },
|
|
531
652
|
{ "command": "plan --spec <spec>", "profile": "plan-graph-next", "critical": "pass" },
|
|
532
653
|
{ "command": "dashboard --spec <spec>", "profile": "dashboard-human", "critical": "pass" },
|
|
533
654
|
{ "command": "dashboard --section slices --spec <spec>", "profile": "dashboard-human", "critical": "pass" },
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# Evidence Report - Quiver v46 Deep Project Analysis
|
|
2
|
+
|
|
3
|
+
## Current Evidence
|
|
4
|
+
|
|
5
|
+
- Spec package created from approved acceptance criteria and production review.
|
|
6
|
+
- `slice-00-analysis-contract-foundation` completed as documentation-only foundation.
|
|
7
|
+
- `slice-01-stack-agnostic-discovery-sampling` completed.
|
|
8
|
+
- `ai analyze-project` now supports read-only discovery/sampling with human and JSON output and no provider execution or writes.
|
|
9
|
+
- `slice-02-provider-analysis-json-contract` completed.
|
|
10
|
+
- `ai analyze-project` live mode now runs a provider only after privacy preflight, validates JSON against schema, enforces evidence/confidence rules, redacts provider artifacts, and writes no docs.
|
|
11
|
+
- `slice-03-doc-proposal-review-safe-writes` completed.
|
|
12
|
+
- `ai analyze-project --review` now opens a validated editable proposal, shows final diffs, requires confirmation, writes only approved docs, preserves human content with managed blocks, and creates `.quiver/runs` snapshots/manifests/redacted artifacts before writing.
|
|
13
|
+
- `slice-04-validation-docs-release-readiness` completed.
|
|
14
|
+
- `ai analyze-project --review` now runs post-write validation for schema/evidence/placeholders/managed-blocks/snapshot manifests/doc conflicts, with `--strict` elevating deterministic doc conflicts to errors.
|
|
15
|
+
- Public docs, fixture coverage, i18n command matrix, and package ignore rules were updated. `.quiver/` is excluded from npm packaging so local AI run state cannot enter the tarball.
|
|
16
|
+
|
|
17
|
+
## Captured Slice-01 Evidence
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
node --test tests/lib/ai-analyze-project-discovery.test.js tests/commands/ai-analyze-project.test.js tests/commands/cli-contract.test.js
|
|
21
|
+
# pass: 20 tests
|
|
22
|
+
|
|
23
|
+
node --test
|
|
24
|
+
# pass: 618 tests
|
|
25
|
+
|
|
26
|
+
node bin/create-quiver.js ai analyze-project --dry-run
|
|
27
|
+
# pass: reports read-only mode, selected/omitted files, budgets, and safety exclusions
|
|
28
|
+
|
|
29
|
+
node bin/create-quiver.js ai analyze-project --dry-run --json
|
|
30
|
+
# pass: emits parseable JSON with kind quiver-project-analysis-plan
|
|
31
|
+
|
|
32
|
+
node bin/create-quiver.js spec validate specs/quiver-v46-deep-project-analysis --strict
|
|
33
|
+
# pass: spec validation passed
|
|
34
|
+
|
|
35
|
+
git diff --check
|
|
36
|
+
# pass
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Captured Slice-02 Evidence
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
node --test tests/commands/ai-analyze-project-provider.test.js tests/lib/ai-analyze-project-parser.test.js tests/lib/ai-analyze-project-schema.test.js
|
|
43
|
+
# pass: 12 tests
|
|
44
|
+
|
|
45
|
+
node --test
|
|
46
|
+
# pass: 630 tests
|
|
47
|
+
|
|
48
|
+
node bin/create-quiver.js spec validate specs/quiver-v46-deep-project-analysis --strict
|
|
49
|
+
# pass: spec validation passed
|
|
50
|
+
|
|
51
|
+
git diff --check
|
|
52
|
+
# pass
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Captured Slice-03 Evidence
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
node --test tests/lib/ai-analyze-project-docs.test.js tests/commands/ai-analyze-project-review.test.js tests/commands/ai-analyze-project-provider.test.js tests/lib/ai-analyze-project-parser.test.js tests/lib/ai-analyze-project-schema.test.js
|
|
59
|
+
# pass: 20 tests
|
|
60
|
+
|
|
61
|
+
node --test
|
|
62
|
+
# pass: 638 tests
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## Required Final Evidence
|
|
66
|
+
|
|
67
|
+
- None.
|
|
68
|
+
|
|
69
|
+
## Captured Slice-04 Evidence
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
node --test tests/docs/command-reference.test.js tests/commands/cli-contract.test.js tests/commands/i18n-audit-matrix.test.js tests/commands/parser-contract.test.js
|
|
73
|
+
# pass: 22 tests
|
|
74
|
+
|
|
75
|
+
node --test tests/commands/cli-contract.test.js tests/commands/i18n-audit-matrix.test.js tests/lib/ai-analyze-project-validation.test.js tests/lib/ai-analyze-project-discovery.test.js tests/commands/ai-analyze-project-review.test.js tests/commands/ai-analyze-project-provider.test.js tests/lib/ai-analyze-project-parser.test.js tests/lib/ai-analyze-project-schema.test.js
|
|
76
|
+
# pass: 41 tests
|
|
77
|
+
|
|
78
|
+
node --test
|
|
79
|
+
# pass: 686 tests
|
|
80
|
+
|
|
81
|
+
npm run smoke:create-quiver
|
|
82
|
+
# pass: create-quiver smoke test passed
|
|
83
|
+
|
|
84
|
+
npm run package:quiver
|
|
85
|
+
# initial fail: .quiver/runs local state entered tarball
|
|
86
|
+
# fixed by excluding .quiver in .npmignore
|
|
87
|
+
# pass: Package smoke passed: create-quiver-0.16.0.tgz
|
|
88
|
+
|
|
89
|
+
node bin/create-quiver.js spec validate specs/quiver-v46-deep-project-analysis --strict
|
|
90
|
+
# pass: spec validation passed
|
|
91
|
+
|
|
92
|
+
git diff --check
|
|
93
|
+
# pass
|
|
94
|
+
```
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Execution Plan - Quiver v46 Deep Project Analysis
|
|
2
|
+
|
|
3
|
+
## Order
|
|
4
|
+
|
|
5
|
+
1. `slice-00-analysis-contract-foundation`
|
|
6
|
+
2. `slice-01-stack-agnostic-discovery-sampling`
|
|
7
|
+
3. `slice-02-provider-analysis-json-contract`
|
|
8
|
+
4. `slice-03-doc-proposal-review-safe-writes`
|
|
9
|
+
5. `slice-04-validation-docs-release-readiness`
|
|
10
|
+
|
|
11
|
+
## Dependency Rules
|
|
12
|
+
|
|
13
|
+
- Do not implement provider execution before deterministic discovery and privacy preflight exist.
|
|
14
|
+
- Do not implement writes before schema validation and evidence validation exist.
|
|
15
|
+
- Do not document public usage as stable until dry-run, safety, write, and validation tests exist.
|
|
16
|
+
|
|
17
|
+
## Validation Gates
|
|
18
|
+
|
|
19
|
+
- Each slice must pass its own listed checks.
|
|
20
|
+
- Every JSON slice file must parse.
|
|
21
|
+
- `node bin/create-quiver.js spec validate specs/quiver-v46-deep-project-analysis --strict` should pass before closing the spec.
|
|
22
|
+
|
|
23
|
+
## Rollback
|
|
24
|
+
|
|
25
|
+
- Runtime changes should be reverted by slice-specific commits.
|
|
26
|
+
- Generated doc writes from the final feature must be recoverable from `.quiver/runs/run-.../snapshots/...` and manifest hashes.
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
# Quiver v46 - Deep Project Analysis
|
|
2
|
+
|
|
3
|
+
**Date:** 2026-06-10
|
|
4
|
+
**Status:** Planned
|
|
5
|
+
**Source:** User-approved acceptance criteria and production review for generic AI-assisted project analysis.
|
|
6
|
+
|
|
7
|
+
## Problem
|
|
8
|
+
|
|
9
|
+
Quiver can initialize documentation and generate a deterministic project map, but it does not yet provide a production-safe way to infer a project's real product context, domain model, architecture, features, and risks from source code evidence. Existing `analyze` output is intentionally technical and conservative. Existing `ai prepare-context --with-planner` primarily works from documentation and the project map, so projects with boilerplate docs or stale package names can keep placeholder context.
|
|
10
|
+
|
|
11
|
+
Users need an explicit command that can inspect representative source, docs, and configuration across stacks, produce evidence-backed conclusions, and update context documentation only after review.
|
|
12
|
+
|
|
13
|
+
## Objective
|
|
14
|
+
|
|
15
|
+
Add a safe, generic, stack-agnostic `ai analyze-project` workflow that transforms an existing repository into an operational AI context by discovering product/domain/architecture signals from evidence, validating AI output, and updating docs only through reviewable, auditable writes.
|
|
16
|
+
|
|
17
|
+
The default behavior must be read-only. Sending context to a provider and writing files must be explicit, privacy-checked, and reviewable.
|
|
18
|
+
|
|
19
|
+
## Scope
|
|
20
|
+
|
|
21
|
+
### Included
|
|
22
|
+
|
|
23
|
+
- New `npx create-quiver ai analyze-project` command.
|
|
24
|
+
- Read-only default and `--dry-run` behavior with no filesystem writes and no provider execution.
|
|
25
|
+
- Flags:
|
|
26
|
+
- `--deep`
|
|
27
|
+
- `--dry-run`
|
|
28
|
+
- `--review`
|
|
29
|
+
- `--json`
|
|
30
|
+
- `--strict`
|
|
31
|
+
- `--max-files <n>`
|
|
32
|
+
- `--max-bytes <n>`
|
|
33
|
+
- `--include-source`
|
|
34
|
+
- `--include-tests`
|
|
35
|
+
- `--include-db`
|
|
36
|
+
- `--scope <path-or-workspace>`
|
|
37
|
+
- `--input <requirements.md>`
|
|
38
|
+
- Stack-agnostic source discovery with optional adapter hooks.
|
|
39
|
+
- Semantic sampling with budgets, exclusions, symlink policy, and selected/omitted reporting.
|
|
40
|
+
- Provider prompt and schema for evidence-backed JSON analysis.
|
|
41
|
+
- Confidence model for claims:
|
|
42
|
+
- `confirmed`
|
|
43
|
+
- `inferred`
|
|
44
|
+
- `unknown`
|
|
45
|
+
- `conflict`
|
|
46
|
+
- Privacy preflight before provider execution.
|
|
47
|
+
- Content-based secret detection and redaction/blocking.
|
|
48
|
+
- Review workflow with editable proposal, schema revalidation, final diff, and explicit confirmation.
|
|
49
|
+
- Safe writes only to approved docs paths and `.quiver/runs`.
|
|
50
|
+
- Snapshots, manifests, hashes, raw/redacted provider artifacts, and restore guidance.
|
|
51
|
+
- Post-write validation for schema, placeholders, doc conflicts, and strict mode.
|
|
52
|
+
- Public docs, command reference, tests, fixtures, and release readiness evidence.
|
|
53
|
+
|
|
54
|
+
### Excluded
|
|
55
|
+
|
|
56
|
+
- Implementing product features in analyzed projects.
|
|
57
|
+
- Modifying application source code in target projects.
|
|
58
|
+
- Sending entire repositories to providers.
|
|
59
|
+
- Full AST indexing for every language.
|
|
60
|
+
- Guaranteeing perfect domain understanding from insufficient evidence.
|
|
61
|
+
- Editing `docs/PROJECT_MAP.md` with free-form AI inference. `PROJECT_MAP.md` remains deterministic; any AI-generated insights must live in managed blocks or other docs.
|
|
62
|
+
- Following symlinks outside the repository.
|
|
63
|
+
- Persisting unredacted secrets in `.quiver/runs`.
|
|
64
|
+
|
|
65
|
+
## Approved Acceptance Criteria
|
|
66
|
+
|
|
67
|
+
1. `npx create-quiver ai analyze-project` exists and is read-only by default.
|
|
68
|
+
2. `--dry-run` never writes files, never runs a provider, and shows stack, roots, selected files, omitted files, budgets, safety exclusions, and next commands.
|
|
69
|
+
3. Provider execution requires an explicit non-dry-run mode and a privacy preflight that lists files/snippets to be sent.
|
|
70
|
+
4. Writes require `--review` plus explicit confirmation, or an equivalent explicit write mode added by implementation with the same safety guarantees.
|
|
71
|
+
5. Discovery works with known and unknown stacks using generic signals for frontend, APIs, services, models, schemas, tests, DB/migrations, and configs.
|
|
72
|
+
6. Sampling respects `--max-files`, `--max-bytes`, `--include-source`, `--include-tests`, `--include-db`, and `--scope`.
|
|
73
|
+
7. Secrets are excluded by path and scanned by content before provider execution and before artifact persistence.
|
|
74
|
+
8. Symlinks are not followed by default; followed symlinks must resolve inside the repo.
|
|
75
|
+
9. Monorepos and workspaces report analyzed roots and support scope selection.
|
|
76
|
+
10. The provider response is valid JSON against a schema before any write.
|
|
77
|
+
11. Every meaningful claim includes confidence and validated evidence paths.
|
|
78
|
+
12. Claims based on truncated files cannot be marked `confirmed`.
|
|
79
|
+
13. Conflicts are reported and not hidden.
|
|
80
|
+
14. `doc_updates` can only target approved Markdown docs and must respect size/path limits.
|
|
81
|
+
15. `docs/PROJECT_MAP.md` stays deterministic; AI updates are constrained to managed blocks or other approved docs.
|
|
82
|
+
16. Review opens an editable proposal, revalidates the edited JSON, shows a final diff, and allows approve/cancel.
|
|
83
|
+
17. Canceling review leaves the repository unchanged.
|
|
84
|
+
18. Every write creates `.quiver/runs/run-...` snapshots, manifest, before/after hashes, and redacted provider artifacts.
|
|
85
|
+
19. Post-write validation checks schema, placeholders, deterministic-doc conflicts, evidence paths, and strict-mode warnings/errors.
|
|
86
|
+
20. `--json` only changes output formatting and never implies provider execution or writes.
|
|
87
|
+
21. Non-TTY behavior never opens an editor or waits indefinitely; unsupported interactive modes fail with actionable guidance.
|
|
88
|
+
22. Tests cover dry-run no-write, privacy preflight, secret redaction, invalid JSON no-write, review cancel no-write, safe write snapshots, monorepo scope, symlinks, truncation, unknown stack, and JSON cleanliness.
|
|
89
|
+
|
|
90
|
+
## Approved Technical Plan
|
|
91
|
+
|
|
92
|
+
1. Add `ai analyze-project` parser support, help text, and read-only default behavior.
|
|
93
|
+
2. Build a deterministic analysis plan that reports selected roots, files, omissions, budgets, safety exclusions, and provider/write next steps.
|
|
94
|
+
3. Implement stack-agnostic discovery and sampling modules with adapter contracts and generic fallback.
|
|
95
|
+
4. Add privacy and content safety preflight before provider execution.
|
|
96
|
+
5. Create the provider prompt and JSON schema for project analysis.
|
|
97
|
+
6. Parse and validate provider JSON, normalize evidence, validate paths, and enforce confidence rules.
|
|
98
|
+
7. Convert validated analysis into doc update proposals for approved paths.
|
|
99
|
+
8. Implement review/edit/final-diff/confirm flow and safe writes with snapshots.
|
|
100
|
+
9. Add post-write validation, restore guidance, public docs, tests, fixtures, and release evidence.
|
|
101
|
+
|
|
102
|
+
## Slice Roadmap
|
|
103
|
+
|
|
104
|
+
| Slice | Title | Status | Dependencies |
|
|
105
|
+
|---|---|---|---|
|
|
106
|
+
| slice-00 | Analysis contract foundation | completed | none |
|
|
107
|
+
| slice-01 | Stack-agnostic discovery and sampling | planned | slice-00 |
|
|
108
|
+
| slice-02 | Provider analysis JSON contract | planned | slice-01 |
|
|
109
|
+
| slice-03 | Doc proposal review and safe writes | planned | slice-02 |
|
|
110
|
+
| slice-04 | Validation, docs, fixtures, and release readiness | planned | slice-03 |
|
|
111
|
+
|
|
112
|
+
## Validation Strategy
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
node --test tests/**/*.test.js
|
|
116
|
+
npm run smoke:create-quiver
|
|
117
|
+
npm run package:quiver
|
|
118
|
+
node bin/create-quiver.js ai analyze-project --dry-run
|
|
119
|
+
node bin/create-quiver.js ai analyze-project --dry-run --json
|
|
120
|
+
node bin/create-quiver.js spec validate specs/quiver-v46-deep-project-analysis --strict
|
|
121
|
+
git diff --check
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
## Production Guardrails
|
|
125
|
+
|
|
126
|
+
- Default command must be read-only.
|
|
127
|
+
- Provider execution must be explicitly gated by privacy preflight.
|
|
128
|
+
- Writes must be explicitly gated by review or a future equivalent explicit write mode.
|
|
129
|
+
- Evidence paths must be validated against existing sampled files.
|
|
130
|
+
- `.quiver/runs` artifacts must be redacted and ignored from git.
|
|
131
|
+
- `PROJECT_MAP.md` remains deterministic.
|
|
132
|
+
- Monorepo analysis must identify scope to avoid mixing unrelated apps/packages.
|
|
133
|
+
- Missing product evidence must produce questions and `unknown`/`needs_confirmation`, not polished guesses.
|
|
134
|
+
|
|
135
|
+
## Risks
|
|
136
|
+
|
|
137
|
+
- Secret leakage if content scanning misses hardcoded credentials.
|
|
138
|
+
- False confidence if evidence validation is weak.
|
|
139
|
+
- Poor product summaries if the selected sample is too small or skewed.
|
|
140
|
+
- Monorepo scope mistakes can blend domains.
|
|
141
|
+
- Review UX can be confusing if JSON editing and final diff are not clear.
|
|
142
|
+
- Snapshot restore can be unreliable without hashes and manifest discipline.
|
|
143
|
+
|
|
144
|
+
## Resolved Decisions
|
|
145
|
+
|
|
146
|
+
- `ai analyze-project` is separate from `ai prepare-context`.
|
|
147
|
+
- Dry-run/read-only is the safe default.
|
|
148
|
+
- Provider execution and writes are distinct gates.
|
|
149
|
+
- AI output is schema-first JSON, not Markdown free-form.
|
|
150
|
+
- `docs/PROJECT_MAP.md` stays deterministic.
|
|
151
|
+
- Docs are updated through managed proposals and review.
|
|
152
|
+
|
|
153
|
+
## Open Questions
|
|
154
|
+
|
|
155
|
+
- Whether a future non-interactive write mode should be named `--write`, `--yes`, or use an explicit proposal input file.
|
|
156
|
+
- Whether restore should be implemented in this spec as a command or documented as manifest-guided manual recovery.
|
|
157
|
+
- Which stack adapters ship first beyond the generic fallback.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Quiver v46 - Deep Project Analysis Status
|
|
2
|
+
|
|
3
|
+
**Status:** Completed
|
|
4
|
+
**Last updated:** 2026-06-10
|
|
5
|
+
|
|
6
|
+
## Progress
|
|
7
|
+
|
|
8
|
+
| Slice | Status | Notes |
|
|
9
|
+
|---|---|---|
|
|
10
|
+
| slice-00-analysis-contract-foundation | completed | Spec package and handoffs created. |
|
|
11
|
+
| slice-01-stack-agnostic-discovery-sampling | completed | Read-only command shell, deterministic discovery, sampling, safety exclusions, JSON/human output, and tests implemented. |
|
|
12
|
+
| slice-02-provider-analysis-json-contract | completed | Provider-backed analysis JSON contract, prompt, privacy preflight, evidence validation, confidence downgrade rules, redaction, and no-write failure paths implemented. |
|
|
13
|
+
| slice-03-doc-proposal-review-safe-writes | completed | Review/edit/final-diff flow, managed docs blocks, safe snapshots, manifests, dirty-doc reporting, cancellation/no-TTY handling, and tests implemented. |
|
|
14
|
+
| slice-04-validation-docs-release-readiness | completed | Post-write validation, public docs, fixture matrix, release smoke/package evidence, command reference updates, and package ignore hardening implemented. |
|
|
15
|
+
|
|
16
|
+
## Current Blockers
|
|
17
|
+
|
|
18
|
+
- None.
|
|
19
|
+
|
|
20
|
+
## Production Review Additions
|
|
21
|
+
|
|
22
|
+
- Default read-only behavior is mandatory.
|
|
23
|
+
- Privacy preflight is mandatory before provider execution.
|
|
24
|
+
- Evidence validation is mandatory before writing docs.
|
|
25
|
+
- Monorepo and symlink behavior must be explicit.
|
|
26
|
+
- Snapshots must be restorable or include clear restore guidance.
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
# Quiver v46 - Deep Project Analysis
|
|
2
|
+
|
|
3
|
+
## Title
|
|
4
|
+
|
|
5
|
+
Implement production-safe `ai analyze-project`
|
|
6
|
+
|
|
7
|
+
## Summary
|
|
8
|
+
|
|
9
|
+
This PR adds a new `ai analyze-project` workflow that can inspect an existing repository, build a bounded evidence sample, run optional provider-backed analysis, and turn validated results into reviewed documentation updates.
|
|
10
|
+
|
|
11
|
+
The safe default is read-only: `--dry-run` reports what Quiver would read, why each file was selected or omitted, the applied budgets, and security exclusions without calling a provider or writing files.
|
|
12
|
+
|
|
13
|
+
## Scope
|
|
14
|
+
|
|
15
|
+
- Adds `ai analyze-project` CLI routing, help text, analysis flags, human output, and JSON output.
|
|
16
|
+
- Adds stack-agnostic discovery and semantic sampling for source, tests, DB/schema, configs, docs, monorepos, unknown stacks, symlinks, binaries, secrets, caches, dependencies, and build outputs.
|
|
17
|
+
- Adds provider-backed JSON analysis with schema validation, evidence validation, confidence levels, truncation downgrade rules, prompt redaction, and no-write failure paths.
|
|
18
|
+
- Adds review/edit/final-diff/confirm flow for approved documentation updates only.
|
|
19
|
+
- Adds safe writes with managed blocks, snapshots, manifests, before/after hashes, restore hints, and redacted raw artifacts.
|
|
20
|
+
- Adds post-write validation for schema, evidence paths, placeholders, managed blocks, snapshot manifests, and deterministic doc conflicts with `--strict`.
|
|
21
|
+
- Updates README, command reference, CLI UX guide, AI guidance, fixture matrix, i18n command matrix, and package ignore rules.
|
|
22
|
+
|
|
23
|
+
## Files
|
|
24
|
+
|
|
25
|
+
- `src/create-quiver/commands/ai.js`
|
|
26
|
+
- `src/create-quiver/index.js`
|
|
27
|
+
- `src/create-quiver/lib/ai/analyze-project-*.js`
|
|
28
|
+
- `tests/commands/ai-analyze-project*.test.js`
|
|
29
|
+
- `tests/lib/ai-analyze-project*.test.js`
|
|
30
|
+
- `tests/fixtures/ai-analyze-project/matrix.json`
|
|
31
|
+
- `docs/reference/commands.md`
|
|
32
|
+
- `docs/CLI_UX_GUIDE.md`
|
|
33
|
+
- `README.md`
|
|
34
|
+
- `README_FOR_AI.md`
|
|
35
|
+
- `.npmignore`
|
|
36
|
+
- `specs/quiver-v46-deep-project-analysis/**`
|
|
37
|
+
|
|
38
|
+
## How to Test (DETAILED - REQUIRED)
|
|
39
|
+
|
|
40
|
+
### Required Environment
|
|
41
|
+
|
|
42
|
+
- Node.js and npm available.
|
|
43
|
+
- GitHub CLI available for PR creation.
|
|
44
|
+
- Authenticated `gh` session.
|
|
45
|
+
- SSH host alias: `github-personal`.
|
|
46
|
+
- Identity file: `~/ssh/github-personal`.
|
|
47
|
+
|
|
48
|
+
### Worktree Access
|
|
49
|
+
|
|
50
|
+
From the repository root:
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
git status --short --branch
|
|
54
|
+
git remote -v
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Expected remote shape:
|
|
58
|
+
|
|
59
|
+
```text
|
|
60
|
+
origin git@github-personal:FabriJuncal/quiver.git
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### Run the Project
|
|
64
|
+
|
|
65
|
+
No dev server is required. This is a CLI feature.
|
|
66
|
+
|
|
67
|
+
### Use Cases
|
|
68
|
+
|
|
69
|
+
1. Preview analysis without writes:
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
node bin/create-quiver.js ai analyze-project --deep --dry-run
|
|
73
|
+
node bin/create-quiver.js ai analyze-project --deep --dry-run --json
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
2. Run provider-backed analysis in tests through fake providers:
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
node --test tests/commands/ai-analyze-project-provider.test.js
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
3. Validate review and safe-write behavior:
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
node --test tests/commands/ai-analyze-project-review.test.js tests/lib/ai-analyze-project-validation.test.js
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### Technical Verification
|
|
89
|
+
|
|
90
|
+
Commands run:
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
node --test tests/docs/command-reference.test.js tests/commands/cli-contract.test.js tests/commands/i18n-audit-matrix.test.js tests/commands/parser-contract.test.js
|
|
94
|
+
# pass: 22 tests
|
|
95
|
+
|
|
96
|
+
node --test tests/commands/cli-contract.test.js tests/commands/i18n-audit-matrix.test.js tests/lib/ai-analyze-project-validation.test.js tests/lib/ai-analyze-project-discovery.test.js tests/commands/ai-analyze-project-review.test.js tests/commands/ai-analyze-project-provider.test.js tests/lib/ai-analyze-project-parser.test.js tests/lib/ai-analyze-project-schema.test.js
|
|
97
|
+
# pass: 41 tests
|
|
98
|
+
|
|
99
|
+
node --test
|
|
100
|
+
# pass: 686 tests
|
|
101
|
+
|
|
102
|
+
npm run smoke:create-quiver
|
|
103
|
+
# pass: create-quiver smoke test passed
|
|
104
|
+
|
|
105
|
+
npm run package:quiver
|
|
106
|
+
# pass: Package smoke passed: create-quiver-0.16.0.tgz
|
|
107
|
+
|
|
108
|
+
node bin/create-quiver.js spec validate specs/quiver-v46-deep-project-analysis --strict
|
|
109
|
+
# pass: spec validation passed
|
|
110
|
+
|
|
111
|
+
git diff --check
|
|
112
|
+
# pass
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## Evidence
|
|
116
|
+
|
|
117
|
+
- `specs/quiver-v46-deep-project-analysis/EVIDENCE_REPORT.md`
|
|
118
|
+
- `specs/quiver-v46-deep-project-analysis/STATUS.md`
|
|
119
|
+
- `specs/quiver-v46-deep-project-analysis/slices/*/CLOSURE_BRIEF.md`
|
|
120
|
+
- `tests/fixtures/ai-analyze-project/matrix.json`
|
|
121
|
+
|
|
122
|
+
## Rollback
|
|
123
|
+
|
|
124
|
+
Revert the PR commit. The feature is additive and isolated behind the new `ai analyze-project` command path. Runtime doc writes created by the command include snapshots and restore hints under `.quiver/runs/<run-id>/snapshots/`.
|
|
125
|
+
|
|
126
|
+
## Risks / Notes
|
|
127
|
+
|
|
128
|
+
- `ai analyze-project` human output is currently English-only; JSON output is stable. This is recorded as an accepted i18n follow-up in the v43 command matrix.
|
|
129
|
+
- Stack-specific adapters such as Rails, Django, Laravel, NestJS, Spring, and mobile are deferred. Generic heuristics remain the fallback and keep the same schema.
|
|
130
|
+
- `--dry-run` intentionally never writes and never executes provider CLIs.
|
|
131
|
+
- `.quiver/` is excluded from npm packaging to avoid publishing local AI run state.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# CLOSURE_BRIEF - slice-00 Analysis contract foundation
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
|
|
5
|
+
Spec package and slice handoffs created from approved acceptance criteria, technical plan, and production review. Runtime implementation intentionally not started.
|
|
6
|
+
|
|
7
|
+
## Validation
|
|
8
|
+
|
|
9
|
+
- [ ] `node -e "const fs=require('fs'); for (const f of fs.globSync('specs/quiver-v46-deep-project-analysis/slices/*/slice.json')) JSON.parse(fs.readFileSync(f,'utf8')); console.log('slice json ok')"`
|
|
10
|
+
- [ ] `git diff --check`
|
|
11
|
+
|
|
12
|
+
## Follow-Up
|
|
13
|
+
|
|
14
|
+
- Start `slice-01-stack-agnostic-discovery-sampling` only when implementation is explicitly requested.
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# EXECUTION_BRIEF - slice-00 Analysis contract foundation
|
|
2
|
+
|
|
3
|
+
## Context
|
|
4
|
+
|
|
5
|
+
The user approved acceptance criteria and a production review for a new deep project analysis workflow. This slice creates the documented contract only.
|
|
6
|
+
|
|
7
|
+
## Objective
|
|
8
|
+
|
|
9
|
+
Create the v46 spec package and all slice handoffs without implementing runtime code.
|
|
10
|
+
|
|
11
|
+
## Scope
|
|
12
|
+
|
|
13
|
+
### Included
|
|
14
|
+
|
|
15
|
+
- `SPEC.md`
|
|
16
|
+
- `STATUS.md`
|
|
17
|
+
- `EXECUTION_PLAN.md`
|
|
18
|
+
- `EVIDENCE_REPORT.md`
|
|
19
|
+
- `pr.md`
|
|
20
|
+
- `slice.json`, `EXECUTION_BRIEF.md`, and `CLOSURE_BRIEF.md` for each planned slice.
|
|
21
|
+
|
|
22
|
+
### Excluded
|
|
23
|
+
|
|
24
|
+
- CLI parser changes.
|
|
25
|
+
- Source discovery implementation.
|
|
26
|
+
- Provider execution.
|
|
27
|
+
- Safe write implementation.
|
|
28
|
+
- Tests beyond structural validation.
|
|
29
|
+
|
|
30
|
+
## Acceptance Criteria
|
|
31
|
+
|
|
32
|
+
- Spec package exists under `specs/quiver-v46-deep-project-analysis`.
|
|
33
|
+
- Every slice directory includes `slice.json`, `EXECUTION_BRIEF.md`, and `CLOSURE_BRIEF.md`.
|
|
34
|
+
- Runtime implementation is explicitly marked as not started.
|
|
35
|
+
- Source code implementation files are not modified.
|
|
36
|
+
|
|
37
|
+
## Completion Checklist
|
|
38
|
+
|
|
39
|
+
- [x] Spec package created.
|
|
40
|
+
- [x] Slice handoffs created.
|
|
41
|
+
- [x] Implementation deferred.
|