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
package/specs/quiver-v52-schema-docs-release-hygiene/slices/slice-02-generated-cli-reference/pr.md
ADDED
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
# PR - QUIVER-52-02 - Generated CLI reference
|
|
2
|
+
|
|
3
|
+
## Title
|
|
4
|
+
|
|
5
|
+
QUIVER-52-02 Generated CLI reference
|
|
6
|
+
|
|
7
|
+
## Summary
|
|
8
|
+
|
|
9
|
+
Adds a protected generated CLI command reference block to `docs/reference/commands.md` and a no-dependency drift check that validates the generated content against CLI help metadata and runtime `--help` output. The check is wired into `npm run docs:check` so CI/release validation can fail on drift without rewriting docs.
|
|
10
|
+
|
|
11
|
+
## PR Policy
|
|
12
|
+
|
|
13
|
+
- [x] One slice only.
|
|
14
|
+
- [ ] Grouped PR exception: at most 2-3 slices, all docs-only, research-only, or low-risk mechanical cleanup.
|
|
15
|
+
- [x] No behavior changes in a grouped PR.
|
|
16
|
+
- [x] No mixed docs with UI, backend, refactor, or performance work.
|
|
17
|
+
- [x] Separate evidence for this slice is recorded in `EVIDENCE_REPORT.md`.
|
|
18
|
+
- [x] Whole PR is revertible without leaving partial state.
|
|
19
|
+
|
|
20
|
+
Individual PR required classification: docs generation tooling, docs drift check, tests affecting docs gate, and slice metadata.
|
|
21
|
+
|
|
22
|
+
### Merge Policy
|
|
23
|
+
|
|
24
|
+
- [x] Human merge expected.
|
|
25
|
+
- [ ] Assisted auto-merge explicitly authorized for this PR or documented category.
|
|
26
|
+
- [ ] Assisted auto-merge conditions met: docs-only or chore-only, low risk, no runtime changes, no production configuration changes, green checks, and no pending comments.
|
|
27
|
+
|
|
28
|
+
Assisted auto-merge is not requested.
|
|
29
|
+
|
|
30
|
+
## Scope
|
|
31
|
+
|
|
32
|
+
- Add `scripts/ci/check-command-reference.js` with `--write` and `--check` modes.
|
|
33
|
+
- Add a protected generated block to `docs/reference/commands.md`.
|
|
34
|
+
- Preserve curated command documentation outside generated markers.
|
|
35
|
+
- Add `docs:commands:write` and `docs:commands:check` npm scripts.
|
|
36
|
+
- Wire `docs:commands:check` into `docs:check`.
|
|
37
|
+
- Add tests for runtime help consistency, drift synchronization, and manual-content preservation.
|
|
38
|
+
- Update v52 status, evidence, closure, slice metadata, and PR body.
|
|
39
|
+
|
|
40
|
+
## Files
|
|
41
|
+
|
|
42
|
+
- `docs/reference/commands.md`
|
|
43
|
+
- `package.json`
|
|
44
|
+
- `scripts/ci/check-command-reference.js`
|
|
45
|
+
- `tests/docs/command-reference.test.js`
|
|
46
|
+
- `specs/quiver-v52-schema-docs-release-hygiene/SPEC.md`
|
|
47
|
+
- `specs/quiver-v52-schema-docs-release-hygiene/spec.md`
|
|
48
|
+
- `specs/quiver-v52-schema-docs-release-hygiene/STATUS.md`
|
|
49
|
+
- `specs/quiver-v52-schema-docs-release-hygiene/EVIDENCE_REPORT.md`
|
|
50
|
+
- `specs/quiver-v52-schema-docs-release-hygiene/slices/slice-02-generated-cli-reference/CLOSURE_BRIEF.md`
|
|
51
|
+
- `specs/quiver-v52-schema-docs-release-hygiene/slices/slice-02-generated-cli-reference/slice.json`
|
|
52
|
+
- `specs/quiver-v52-schema-docs-release-hygiene/slices/slice-02-generated-cli-reference/pr.md`
|
|
53
|
+
|
|
54
|
+
## How to Test (DETAILED - REQUIRED)
|
|
55
|
+
|
|
56
|
+
### Required Environment
|
|
57
|
+
|
|
58
|
+
- Node.js supported by the repo.
|
|
59
|
+
- npm.
|
|
60
|
+
- Git.
|
|
61
|
+
|
|
62
|
+
### Worktree Access
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
cd /Users/fabrijk/Documents/Work/Proyectos\ Personales/nika/frameworks/quiver
|
|
66
|
+
git switch feature/QUIVER-52-02-v52-generated-cli-reference
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### Run the Project
|
|
70
|
+
|
|
71
|
+
No runtime server is required. This is docs generation tooling, docs drift validation, tests, and spec evidence.
|
|
72
|
+
|
|
73
|
+
### Use Cases
|
|
74
|
+
|
|
75
|
+
#### Case 1: regenerate command reference
|
|
76
|
+
|
|
77
|
+
1. Run `npm run docs:commands:write`.
|
|
78
|
+
2. Inspect `docs/reference/commands.md`.
|
|
79
|
+
|
|
80
|
+
**Expected result:** only the generated block between `<!-- quiver:generated-cli-reference:start -->` and `<!-- quiver:generated-cli-reference:end -->` changes.
|
|
81
|
+
|
|
82
|
+
#### Case 2: detect docs drift without rewriting
|
|
83
|
+
|
|
84
|
+
1. Run `npm run docs:commands:check`.
|
|
85
|
+
2. Inspect the command summary.
|
|
86
|
+
|
|
87
|
+
**Expected result:** check mode exits successfully when the generated block is synchronized and exits non-zero with guidance to run `docs:commands:write` when stale or missing.
|
|
88
|
+
|
|
89
|
+
#### Case 3: preserve curated docs
|
|
90
|
+
|
|
91
|
+
1. Review content before and after the generated markers in `docs/reference/commands.md`.
|
|
92
|
+
2. Run `node --test tests/docs/command-reference.test.js`.
|
|
93
|
+
|
|
94
|
+
**Expected result:** manual content outside markers is preserved and the focused preservation test passes.
|
|
95
|
+
|
|
96
|
+
#### Case 4: CI/docs gate includes drift check
|
|
97
|
+
|
|
98
|
+
1. Run `npm run docs:check`.
|
|
99
|
+
2. Inspect the final step.
|
|
100
|
+
|
|
101
|
+
**Expected result:** markdown lint, link check, and generated CLI reference drift check all pass.
|
|
102
|
+
|
|
103
|
+
### Technical Verification
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
npm ci
|
|
107
|
+
npm run docs:commands:write
|
|
108
|
+
npm run docs:commands:check
|
|
109
|
+
node --test tests/docs/command-reference.test.js
|
|
110
|
+
npm run docs:check
|
|
111
|
+
node bin/create-quiver.js --help
|
|
112
|
+
node --test
|
|
113
|
+
git diff --check
|
|
114
|
+
node bin/create-quiver.js spec validate specs/quiver-v52-schema-docs-release-hygiene
|
|
115
|
+
node bin/create-quiver.js check-slice specs/quiver-v52-schema-docs-release-hygiene/slices/slice-02-generated-cli-reference/slice.json --local --gate validation
|
|
116
|
+
node bin/create-quiver.js check-scope specs/quiver-v52-schema-docs-release-hygiene/slices/slice-02-generated-cli-reference/slice.json --base main --strict
|
|
117
|
+
node bin/create-quiver.js check-pr specs/quiver-v52-schema-docs-release-hygiene/slices/slice-02-generated-cli-reference/slice.json --base main
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
## Evidence
|
|
121
|
+
|
|
122
|
+
- `npm run docs:commands:write`: passed; generated 7 groups and 59 commands.
|
|
123
|
+
- `npm run docs:commands:check`: passed; generated block is synchronized.
|
|
124
|
+
- `node --test tests/docs/command-reference.test.js`: passed, 3 tests.
|
|
125
|
+
- `node bin/create-quiver.js --help`: passed.
|
|
126
|
+
- `npm run docs:check`: passed, including generated CLI reference drift check.
|
|
127
|
+
- `npm ci`: passed; 165 packages installed/audited, 0 vulnerabilities reported.
|
|
128
|
+
- `node --test`: passed, 651 tests.
|
|
129
|
+
- `git diff --check`: passed.
|
|
130
|
+
- `node bin/create-quiver.js spec validate specs/quiver-v52-schema-docs-release-hygiene`: passed.
|
|
131
|
+
- `node bin/create-quiver.js check-slice specs/quiver-v52-schema-docs-release-hygiene/slices/slice-02-generated-cli-reference/slice.json --local --gate validation`: passed.
|
|
132
|
+
|
|
133
|
+
## Rollback
|
|
134
|
+
|
|
135
|
+
1. Revert this slice commit with `git revert <commit-sha>`.
|
|
136
|
+
2. Run the technical verification commands above.
|
|
137
|
+
3. Confirm `docs:commands:write`, `docs:commands:check`, the generated block, command reference script, and focused tests are removed.
|
|
138
|
+
|
|
139
|
+
## Risks / Notes
|
|
140
|
+
|
|
141
|
+
- The generator reads `COMMAND_HELP_GROUPS` from `src/create-quiver/index.js` because that is the current source used by runtime help.
|
|
142
|
+
- The drift check also runs `node bin/create-quiver.js --lang en --help --no-color` to detect mismatch between metadata and runtime help.
|
|
143
|
+
- The generated block is English because the runtime help metadata is English. Existing curated Spanish documentation remains outside the generated block.
|
|
144
|
+
- No package dependency or lockfile update is required.
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slice_id": "slice-02-generated-cli-reference",
|
|
3
|
+
"ticket": "QUIVER-52-02",
|
|
4
|
+
"type": "automation",
|
|
5
|
+
"title": "Generated CLI reference",
|
|
6
|
+
"objective": "Generate or drift-check CLI command reference without overwriting curated documentation.",
|
|
7
|
+
"description": "Adds a safe generation/drift-check path for docs/reference/commands.md based on runtime help or registry metadata.",
|
|
8
|
+
"git": {
|
|
9
|
+
"branch_type": "feature",
|
|
10
|
+
"base_branch": "main",
|
|
11
|
+
"branch_slug": "v52-generated-cli-reference",
|
|
12
|
+
"branch_name": "feature/QUIVER-52-02-v52-generated-cli-reference"
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"docs/reference/commands.md",
|
|
16
|
+
"scripts/ci/check-command-reference.js",
|
|
17
|
+
"package.json",
|
|
18
|
+
"tests/docs/command-reference.test.js",
|
|
19
|
+
"specs/quiver-v52-schema-docs-release-hygiene/SPEC.md",
|
|
20
|
+
"specs/quiver-v52-schema-docs-release-hygiene/spec.md",
|
|
21
|
+
"specs/quiver-v52-schema-docs-release-hygiene/STATUS.md",
|
|
22
|
+
"specs/quiver-v52-schema-docs-release-hygiene/EVIDENCE_REPORT.md",
|
|
23
|
+
"specs/quiver-v52-schema-docs-release-hygiene/slices/slice-02-generated-cli-reference/CLOSURE_BRIEF.md",
|
|
24
|
+
"specs/quiver-v52-schema-docs-release-hygiene/slices/slice-02-generated-cli-reference/slice.json",
|
|
25
|
+
"specs/quiver-v52-schema-docs-release-hygiene/slices/slice-02-generated-cli-reference/pr.md"
|
|
26
|
+
],
|
|
27
|
+
"expected_read_paths": [
|
|
28
|
+
"src/create-quiver/index.js",
|
|
29
|
+
"src/create-quiver/lib/cli/command-registry.js",
|
|
30
|
+
"docs/reference/commands.md",
|
|
31
|
+
"tests/commands/cli-contract.test.js"
|
|
32
|
+
],
|
|
33
|
+
"allowed_write_paths": [
|
|
34
|
+
"docs/reference/commands.md",
|
|
35
|
+
"scripts/ci/check-command-reference.js",
|
|
36
|
+
"package.json",
|
|
37
|
+
"tests/docs/command-reference.test.js",
|
|
38
|
+
"specs/quiver-v52-schema-docs-release-hygiene/SPEC.md",
|
|
39
|
+
"specs/quiver-v52-schema-docs-release-hygiene/spec.md",
|
|
40
|
+
"specs/quiver-v52-schema-docs-release-hygiene/STATUS.md",
|
|
41
|
+
"specs/quiver-v52-schema-docs-release-hygiene/EVIDENCE_REPORT.md",
|
|
42
|
+
"specs/quiver-v52-schema-docs-release-hygiene/slices/slice-02-generated-cli-reference/CLOSURE_BRIEF.md",
|
|
43
|
+
"specs/quiver-v52-schema-docs-release-hygiene/slices/slice-02-generated-cli-reference/slice.json",
|
|
44
|
+
"specs/quiver-v52-schema-docs-release-hygiene/slices/slice-02-generated-cli-reference/pr.md"
|
|
45
|
+
],
|
|
46
|
+
"depends_on": [
|
|
47
|
+
"slice-00-schema-docs-release-baseline"
|
|
48
|
+
],
|
|
49
|
+
"parallel_safe": "yes",
|
|
50
|
+
"parallel_safe_reason": "Generated reference work can run independently after baseline.",
|
|
51
|
+
"must": [
|
|
52
|
+
"Protect curated manual docs content.",
|
|
53
|
+
"Generate only delimited blocks or a separate generated file.",
|
|
54
|
+
"Add drift check against runtime help or registry.",
|
|
55
|
+
"Document the local generation/check command."
|
|
56
|
+
],
|
|
57
|
+
"not_included": [
|
|
58
|
+
"Replacing all docs with generated output.",
|
|
59
|
+
"Changing command help semantics."
|
|
60
|
+
],
|
|
61
|
+
"acceptance": [
|
|
62
|
+
"Manual content outside generated blocks remains untouched.",
|
|
63
|
+
"Generated content matches runtime help/registry.",
|
|
64
|
+
"CI or release can detect drift.",
|
|
65
|
+
"Script command is documented."
|
|
66
|
+
],
|
|
67
|
+
"tests": [
|
|
68
|
+
"npm ci",
|
|
69
|
+
"npm run docs:commands:write",
|
|
70
|
+
"npm run docs:commands:check",
|
|
71
|
+
"node --test tests/docs/command-reference.test.js",
|
|
72
|
+
"npm run docs:check",
|
|
73
|
+
"node --test",
|
|
74
|
+
"node bin/create-quiver.js --help",
|
|
75
|
+
"git diff --check"
|
|
76
|
+
],
|
|
77
|
+
"validation_hints": [
|
|
78
|
+
"Prefer a --check mode so CI can fail on drift without rewriting files."
|
|
79
|
+
],
|
|
80
|
+
"estimated_hours": 6,
|
|
81
|
+
"status": "completed",
|
|
82
|
+
"blocked_reason": null,
|
|
83
|
+
"actual_hours": 4,
|
|
84
|
+
"started_at": "2026-06-03T00:45:00-0300",
|
|
85
|
+
"completed_at": "2026-06-03T01:00:00-0300"
|
|
86
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# CLOSURE_BRIEF - slice-03 changelog, package, and release smoke hygiene
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
|
|
5
|
+
Formalized changelog and release/package hygiene while keeping publishing manually guarded.
|
|
6
|
+
|
|
7
|
+
- Added `npm run changelog:check` and focused tests.
|
|
8
|
+
- Updated `[Unreleased]` changelog entries for v52.
|
|
9
|
+
- Hardened `.npmignore` and package smoke exclusions for local audit/tool/secret artifacts.
|
|
10
|
+
- Extended package smoke to install the tarball and run installed CLI `--version`, `--help`, and `init --dry-run`.
|
|
11
|
+
- Wired docs CI to `npm run docs:check`.
|
|
12
|
+
- Added changelog/docs/schema gates to release dry-run.
|
|
13
|
+
- Required `QUIVER_ALLOW_NPM_PUBLISH=1` for release publish flags.
|
|
14
|
+
|
|
15
|
+
## Validation
|
|
16
|
+
|
|
17
|
+
- [x] `npm run changelog:check`
|
|
18
|
+
- [x] `node --test tests/ci/changelog.test.js`
|
|
19
|
+
- [x] `bash -n scripts/package-quiver.sh scripts/release-quiver.sh`
|
|
20
|
+
- [x] `shellcheck scripts/package-quiver.sh scripts/release-quiver.sh`
|
|
21
|
+
- [x] `npm run package:quiver`
|
|
22
|
+
- [x] installed tarball smoke
|
|
23
|
+
- [x] `npm run release:quiver`
|
|
24
|
+
- [x] `npm run docs:check`
|
|
25
|
+
- [x] `npm ci`
|
|
26
|
+
- [x] `node --test`
|
|
27
|
+
- [x] `git diff --check`
|
|
28
|
+
|
|
29
|
+
## Closure Conditions
|
|
30
|
+
|
|
31
|
+
- [x] Changelog process documented.
|
|
32
|
+
- [x] Package smoke validates required and forbidden files.
|
|
33
|
+
- [x] Installed tarball smoke passes.
|
|
34
|
+
- [x] Publish automation remains safely scoped.
|
|
35
|
+
|
|
36
|
+
## Open Items
|
|
37
|
+
|
|
38
|
+
- None.
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# EXECUTION_BRIEF - slice-03 changelog, package, and release smoke hygiene
|
|
2
|
+
|
|
3
|
+
## Context
|
|
4
|
+
|
|
5
|
+
Release confidence requires validating the actual npm tarball and installed CLI, not only local source. New schema/docs/scripts must be included or excluded deliberately.
|
|
6
|
+
|
|
7
|
+
## Objective
|
|
8
|
+
|
|
9
|
+
Formalize changelog handling and validate actual npm package installation behavior.
|
|
10
|
+
|
|
11
|
+
## Scope
|
|
12
|
+
|
|
13
|
+
- `[Unreleased]` changelog handling.
|
|
14
|
+
- `.npmignore`.
|
|
15
|
+
- Package safety.
|
|
16
|
+
- Tarball contents.
|
|
17
|
+
- Installed tarball smoke.
|
|
18
|
+
- Release script dry-run gates.
|
|
19
|
+
|
|
20
|
+
## Acceptance Criteria
|
|
21
|
+
|
|
22
|
+
- Package smoke validates required public files.
|
|
23
|
+
- Package smoke rejects forbidden local artifacts.
|
|
24
|
+
- Tarball installs in a temporary project.
|
|
25
|
+
- Installed CLI runs `--version`, `--help`, and one safe dry-run command.
|
|
26
|
+
- Changelog process is documented.
|
|
27
|
+
- npm publish automation remains out of scope unless prerequisites are explicit.
|
|
28
|
+
|
|
29
|
+
## Expected Files To Modify
|
|
30
|
+
|
|
31
|
+
- `CHANGELOG.md`
|
|
32
|
+
- `.npmignore`
|
|
33
|
+
- `scripts/package-quiver.sh`
|
|
34
|
+
- `scripts/release-quiver.sh`
|
|
35
|
+
- `scripts/ci/**`
|
|
36
|
+
- `package.json`
|
|
37
|
+
- `package-lock.json`
|
|
38
|
+
- `.github/workflows/ci.yml`
|
|
39
|
+
- `CONTRIBUTING.md`
|
|
40
|
+
- `specs/quiver-v52-schema-docs-release-hygiene/EVIDENCE_REPORT.md`
|
|
41
|
+
|
|
42
|
+
## Validations Required
|
|
43
|
+
|
|
44
|
+
- `npm ci`
|
|
45
|
+
- `node --test`
|
|
46
|
+
- `npm run package:quiver`
|
|
47
|
+
- installed tarball smoke
|
|
48
|
+
- `git diff --check`
|
|
49
|
+
|
|
50
|
+
## Risks
|
|
51
|
+
|
|
52
|
+
- Publishing local audit artifacts or PDFs.
|
|
53
|
+
- Excluding required public schema/docs.
|
|
54
|
+
- Release script relying on local-only files.
|
|
55
|
+
|
|
56
|
+
## Dependencies
|
|
57
|
+
|
|
58
|
+
- Depends on `slice-01-json-schema-for-slice-json`.
|
|
59
|
+
- Depends on `slice-02-generated-cli-reference`.
|
|
60
|
+
|
|
61
|
+
## Instructions For Executor
|
|
62
|
+
|
|
63
|
+
1. Update package checks after schema/docs decisions are known.
|
|
64
|
+
2. Validate the installed tarball, not only source checkout.
|
|
65
|
+
3. Keep publish steps manual unless prerequisites are explicitly present.
|
|
66
|
+
|
|
67
|
+
## Completion Checklist
|
|
68
|
+
|
|
69
|
+
- [ ] Acceptance criteria satisfied.
|
|
70
|
+
- [ ] Required validations run or blockers documented.
|
|
71
|
+
- [ ] Closure brief updated.
|
|
72
|
+
|
|
73
|
+
## Conditions Of Closure
|
|
74
|
+
|
|
75
|
+
- Release/package checks catch missing required files and forbidden local artifacts before publish.
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
# PR - QUIVER-52-03 - Changelog, package, and release smoke hygiene
|
|
2
|
+
|
|
3
|
+
## Title
|
|
4
|
+
|
|
5
|
+
QUIVER-52-03 Changelog, package, and release smoke hygiene
|
|
6
|
+
|
|
7
|
+
## Summary
|
|
8
|
+
|
|
9
|
+
Formalizes changelog handling and hardens release/package validation. The package smoke now validates required public files, rejects local audit/tool/secret artifacts, installs the generated tarball, and verifies the installed CLI with `--version`, `--help`, and `init --dry-run`. Release dry-run gates now include changelog, docs, schema, installer, package, and installed CLI checks, while publish flags remain explicitly guarded.
|
|
10
|
+
|
|
11
|
+
## PR Policy
|
|
12
|
+
|
|
13
|
+
- [x] One slice only.
|
|
14
|
+
- [ ] Grouped PR exception: at most 2-3 slices, all docs-only, research-only, or low-risk mechanical cleanup.
|
|
15
|
+
- [x] No behavior changes in a grouped PR.
|
|
16
|
+
- [x] No mixed docs with UI, backend, refactor, or performance work.
|
|
17
|
+
- [x] Separate evidence for this slice is recorded in `EVIDENCE_REPORT.md`.
|
|
18
|
+
- [x] Whole PR is revertible without leaving partial state.
|
|
19
|
+
|
|
20
|
+
Individual PR required classification: release/package gates, CI docs gate, tests affecting validation gates, docs, and slice metadata.
|
|
21
|
+
|
|
22
|
+
### Merge Policy
|
|
23
|
+
|
|
24
|
+
- [x] Human merge expected.
|
|
25
|
+
- [ ] Assisted auto-merge explicitly authorized for this PR or documented category.
|
|
26
|
+
- [ ] Assisted auto-merge conditions met: docs-only or chore-only, low risk, no runtime changes, no production configuration changes, green checks, and no pending comments.
|
|
27
|
+
|
|
28
|
+
Assisted auto-merge is not requested.
|
|
29
|
+
|
|
30
|
+
## Scope
|
|
31
|
+
|
|
32
|
+
- Add `npm run changelog:check`.
|
|
33
|
+
- Add `scripts/ci/check-changelog.js` and focused tests.
|
|
34
|
+
- Update `[Unreleased]` changelog entries.
|
|
35
|
+
- Harden `.npmignore` for local audit, PDF, SSH/key, and local-noise artifacts.
|
|
36
|
+
- Extend `npm run package:quiver` to validate required public files, forbidden local artifacts, installed tarball, installed `--version`, installed `--help`, and installed `init --dry-run`.
|
|
37
|
+
- Wire CI docs job to `npm run docs:check`.
|
|
38
|
+
- Add changelog/docs/schema gates to `scripts/release-quiver.sh`.
|
|
39
|
+
- Require `QUIVER_ALLOW_NPM_PUBLISH=1` for release publish flags.
|
|
40
|
+
- Document changelog/package/release expectations in `CONTRIBUTING.md` and release validation docs.
|
|
41
|
+
- Update v52 status, evidence, closure, slice metadata, and PR body.
|
|
42
|
+
|
|
43
|
+
## Files
|
|
44
|
+
|
|
45
|
+
- `.github/workflows/ci.yml`
|
|
46
|
+
- `.npmignore`
|
|
47
|
+
- `CHANGELOG.md`
|
|
48
|
+
- `CONTRIBUTING.md`
|
|
49
|
+
- `README.md`
|
|
50
|
+
- `package.json`
|
|
51
|
+
- `scripts/ci/check-changelog.js`
|
|
52
|
+
- `scripts/package-quiver.sh`
|
|
53
|
+
- `scripts/release-quiver.sh`
|
|
54
|
+
- `tests/ci/changelog.test.js`
|
|
55
|
+
- `specs/quiver-v52-schema-docs-release-hygiene/SPEC.md`
|
|
56
|
+
- `specs/quiver-v52-schema-docs-release-hygiene/STATUS.md`
|
|
57
|
+
- `specs/quiver-v52-schema-docs-release-hygiene/EVIDENCE_REPORT.md`
|
|
58
|
+
- `specs/quiver-v52-schema-docs-release-hygiene/slices/slice-03-changelog-package-release-smoke-hygiene/CLOSURE_BRIEF.md`
|
|
59
|
+
- `specs/quiver-v52-schema-docs-release-hygiene/slices/slice-03-changelog-package-release-smoke-hygiene/slice.json`
|
|
60
|
+
- `specs/quiver-v52-schema-docs-release-hygiene/slices/slice-03-changelog-package-release-smoke-hygiene/pr.md`
|
|
61
|
+
|
|
62
|
+
## How to Test (DETAILED - REQUIRED)
|
|
63
|
+
|
|
64
|
+
### Required Environment
|
|
65
|
+
|
|
66
|
+
- Node.js supported by the repo.
|
|
67
|
+
- npm.
|
|
68
|
+
- Git.
|
|
69
|
+
- ShellCheck for local shell lint validation.
|
|
70
|
+
|
|
71
|
+
### Worktree Access
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
cd /Users/fabrijk/Documents/Work/Proyectos\ Personales/nika/frameworks/quiver
|
|
75
|
+
git switch feature/QUIVER-52-03-v52-release-package-hygiene
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### Run the Project
|
|
79
|
+
|
|
80
|
+
No runtime server is required. This is release/package automation, docs, CI gate, tests, and spec evidence.
|
|
81
|
+
|
|
82
|
+
### Use Cases
|
|
83
|
+
|
|
84
|
+
#### Case 1: validate changelog hygiene
|
|
85
|
+
|
|
86
|
+
1. Run `npm run changelog:check`.
|
|
87
|
+
2. Inspect the report.
|
|
88
|
+
|
|
89
|
+
**Expected result:** the checker finds `CHANGELOG.md`, detects `[Unreleased]`, and reports categorized entries.
|
|
90
|
+
|
|
91
|
+
#### Case 2: validate package boundary and installed CLI
|
|
92
|
+
|
|
93
|
+
1. Run `npm run package:quiver`.
|
|
94
|
+
2. Inspect the output.
|
|
95
|
+
|
|
96
|
+
**Expected result:** the package smoke requires public files, rejects forbidden local artifacts, installs the tarball, and verifies installed `--version`, `--help`, and `init --dry-run`.
|
|
97
|
+
|
|
98
|
+
#### Case 3: validate release dry-run gates
|
|
99
|
+
|
|
100
|
+
1. Run `npm run release:quiver`.
|
|
101
|
+
2. Inspect the gate sequence.
|
|
102
|
+
|
|
103
|
+
**Expected result:** release dry-run requires a clean worktree, then runs changelog, docs, schema, installer smoke, package smoke, and installed CLI checks before printing publish guidance.
|
|
104
|
+
|
|
105
|
+
#### Case 4: verify publish remains guarded
|
|
106
|
+
|
|
107
|
+
1. Run `bash scripts/release-quiver.sh --help`.
|
|
108
|
+
2. Review the publish text.
|
|
109
|
+
|
|
110
|
+
**Expected result:** publish flags are documented as requiring `QUIVER_ALLOW_NPM_PUBLISH=1`; publish remains opt-in and human-authorized.
|
|
111
|
+
|
|
112
|
+
### Technical Verification
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
npm ci
|
|
116
|
+
npm run changelog:check
|
|
117
|
+
node --test tests/ci/changelog.test.js
|
|
118
|
+
bash -n scripts/package-quiver.sh scripts/release-quiver.sh
|
|
119
|
+
shellcheck scripts/package-quiver.sh scripts/release-quiver.sh
|
|
120
|
+
npm run docs:check
|
|
121
|
+
npm run schema:slice:check
|
|
122
|
+
npm run package:quiver
|
|
123
|
+
npm run release:quiver
|
|
124
|
+
node --test
|
|
125
|
+
git diff --check
|
|
126
|
+
node bin/create-quiver.js spec validate specs/quiver-v52-schema-docs-release-hygiene
|
|
127
|
+
node bin/create-quiver.js check-slice specs/quiver-v52-schema-docs-release-hygiene/slices/slice-03-changelog-package-release-smoke-hygiene/slice.json --local --gate validation
|
|
128
|
+
node bin/create-quiver.js check-scope specs/quiver-v52-schema-docs-release-hygiene/slices/slice-03-changelog-package-release-smoke-hygiene/slice.json --base main --strict
|
|
129
|
+
node bin/create-quiver.js check-pr specs/quiver-v52-schema-docs-release-hygiene/slices/slice-03-changelog-package-release-smoke-hygiene/slice.json --base main
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
## Evidence
|
|
133
|
+
|
|
134
|
+
- `npm run changelog:check`: passed; 22 `[Unreleased]` entries detected.
|
|
135
|
+
- `node --test tests/ci/changelog.test.js`: passed, 3 tests.
|
|
136
|
+
- `bash -n scripts/package-quiver.sh scripts/release-quiver.sh`: passed.
|
|
137
|
+
- `shellcheck scripts/package-quiver.sh scripts/release-quiver.sh`: passed.
|
|
138
|
+
- `npm run package:quiver`: passed; generated `create-quiver-0.15.3.tgz` and installed CLI smoke passed.
|
|
139
|
+
- `npm run docs:check`: passed, including generated CLI reference drift check.
|
|
140
|
+
- `npm run schema:slice:check`: passed; 266 runtime-valid fixtures validated, 1 historical/non-runtime fixture skipped, 4 invalid fixtures rejected.
|
|
141
|
+
- `npm ci`: passed; 165 packages installed/audited, 0 vulnerabilities reported.
|
|
142
|
+
- `node --test`: passed, 654 tests.
|
|
143
|
+
- `git diff --check`: passed.
|
|
144
|
+
- `node bin/create-quiver.js spec validate specs/quiver-v52-schema-docs-release-hygiene`: passed.
|
|
145
|
+
- `node bin/create-quiver.js check-slice specs/quiver-v52-schema-docs-release-hygiene/slices/slice-03-changelog-package-release-smoke-hygiene/slice.json --local --gate validation`: passed.
|
|
146
|
+
- `npm run release:quiver`: passed; changelog, docs, schema, installer smoke, package smoke, and installed CLI smoke passed before printing manual publish guidance.
|
|
147
|
+
|
|
148
|
+
## Rollback
|
|
149
|
+
|
|
150
|
+
1. Revert this slice commit with `git revert <commit-sha>`.
|
|
151
|
+
2. Run the technical verification commands above.
|
|
152
|
+
3. Confirm changelog check, installed package smoke, release dry-run gates, CI docs gate change, package exclusions, docs updates, and focused tests are removed.
|
|
153
|
+
|
|
154
|
+
## Risks / Notes
|
|
155
|
+
|
|
156
|
+
- `npm run package:quiver` now performs an npm install from the generated tarball, so package smoke is intentionally stricter and slightly slower.
|
|
157
|
+
- `scripts/release-quiver.sh --publish` and `--publish-current` now require `QUIVER_ALLOW_NPM_PUBLISH=1` to avoid accidental publish automation.
|
|
158
|
+
- CI docs job now uses `npm run docs:check`, so generated CLI reference drift can fail the docs gate.
|
|
159
|
+
- No package dependency or lockfile update is required.
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slice_id": "slice-03-changelog-package-release-smoke-hygiene",
|
|
3
|
+
"ticket": "QUIVER-52-03",
|
|
4
|
+
"type": "automation",
|
|
5
|
+
"title": "Changelog, package, and release smoke hygiene",
|
|
6
|
+
"objective": "Formalize changelog handling and validate actual npm package installation behavior.",
|
|
7
|
+
"description": "Updates release/package smoke gates so new docs/schema/scripts are included or excluded intentionally and installed CLI behavior is verified.",
|
|
8
|
+
"git": {
|
|
9
|
+
"branch_type": "feature",
|
|
10
|
+
"base_branch": "main",
|
|
11
|
+
"branch_slug": "v52-release-package-hygiene",
|
|
12
|
+
"branch_name": "feature/QUIVER-52-03-v52-release-package-hygiene"
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
".github/workflows/ci.yml",
|
|
16
|
+
".npmignore",
|
|
17
|
+
"CHANGELOG.md",
|
|
18
|
+
"CONTRIBUTING.md",
|
|
19
|
+
"README.md",
|
|
20
|
+
"package.json",
|
|
21
|
+
"scripts/package-quiver.sh",
|
|
22
|
+
"scripts/release-quiver.sh",
|
|
23
|
+
"scripts/ci/check-changelog.js",
|
|
24
|
+
"scripts/ci/smoke-create-quiver.sh",
|
|
25
|
+
"tests/ci/changelog.test.js",
|
|
26
|
+
"specs/quiver-v52-schema-docs-release-hygiene/SPEC.md",
|
|
27
|
+
"specs/quiver-v52-schema-docs-release-hygiene/STATUS.md",
|
|
28
|
+
"specs/quiver-v52-schema-docs-release-hygiene/EVIDENCE_REPORT.md",
|
|
29
|
+
"specs/quiver-v52-schema-docs-release-hygiene/slices/slice-03-changelog-package-release-smoke-hygiene/CLOSURE_BRIEF.md",
|
|
30
|
+
"specs/quiver-v52-schema-docs-release-hygiene/slices/slice-03-changelog-package-release-smoke-hygiene/slice.json",
|
|
31
|
+
"specs/quiver-v52-schema-docs-release-hygiene/slices/slice-03-changelog-package-release-smoke-hygiene/pr.md"
|
|
32
|
+
],
|
|
33
|
+
"expected_read_paths": [
|
|
34
|
+
"CHANGELOG.md",
|
|
35
|
+
".npmignore",
|
|
36
|
+
"scripts/package-quiver.sh",
|
|
37
|
+
"scripts/release-quiver.sh",
|
|
38
|
+
"package.json",
|
|
39
|
+
"package-lock.json"
|
|
40
|
+
],
|
|
41
|
+
"allowed_write_paths": [
|
|
42
|
+
".github/workflows/ci.yml",
|
|
43
|
+
".npmignore",
|
|
44
|
+
"CHANGELOG.md",
|
|
45
|
+
"CONTRIBUTING.md",
|
|
46
|
+
"README.md",
|
|
47
|
+
"package.json",
|
|
48
|
+
"scripts/package-quiver.sh",
|
|
49
|
+
"scripts/release-quiver.sh",
|
|
50
|
+
"scripts/ci/check-changelog.js",
|
|
51
|
+
"scripts/ci/smoke-create-quiver.sh",
|
|
52
|
+
"tests/ci/changelog.test.js",
|
|
53
|
+
"specs/quiver-v52-schema-docs-release-hygiene/SPEC.md",
|
|
54
|
+
"specs/quiver-v52-schema-docs-release-hygiene/STATUS.md",
|
|
55
|
+
"specs/quiver-v52-schema-docs-release-hygiene/EVIDENCE_REPORT.md",
|
|
56
|
+
"specs/quiver-v52-schema-docs-release-hygiene/slices/slice-03-changelog-package-release-smoke-hygiene/CLOSURE_BRIEF.md",
|
|
57
|
+
"specs/quiver-v52-schema-docs-release-hygiene/slices/slice-03-changelog-package-release-smoke-hygiene/slice.json",
|
|
58
|
+
"specs/quiver-v52-schema-docs-release-hygiene/slices/slice-03-changelog-package-release-smoke-hygiene/pr.md"
|
|
59
|
+
],
|
|
60
|
+
"depends_on": [
|
|
61
|
+
"slice-01-json-schema-for-slice-json",
|
|
62
|
+
"slice-02-generated-cli-reference"
|
|
63
|
+
],
|
|
64
|
+
"parallel_safe": "no",
|
|
65
|
+
"parallel_safe_reason": "Release/package hygiene must include outputs from schema and docs generation slices.",
|
|
66
|
+
"must": [
|
|
67
|
+
"Formalize [Unreleased] changelog handling.",
|
|
68
|
+
"Validate npm pack tarball contents.",
|
|
69
|
+
"Install tarball in a temp project and execute installed CLI.",
|
|
70
|
+
"Update package safety for new public/repo-only files.",
|
|
71
|
+
"Keep npm publish automation out of scope unless prerequisites are explicit."
|
|
72
|
+
],
|
|
73
|
+
"not_included": [
|
|
74
|
+
"Publishing to npm.",
|
|
75
|
+
"Adding secrets to CI.",
|
|
76
|
+
"Removing manual release safeguards."
|
|
77
|
+
],
|
|
78
|
+
"acceptance": [
|
|
79
|
+
"Package smoke fails for forbidden local artifacts.",
|
|
80
|
+
"Package smoke fails if required public files are missing.",
|
|
81
|
+
"Installed tarball smoke runs --version, --help, and a safe dry-run command.",
|
|
82
|
+
"Changelog process is documented and coherent."
|
|
83
|
+
],
|
|
84
|
+
"tests": [
|
|
85
|
+
"npm ci",
|
|
86
|
+
"npm run changelog:check",
|
|
87
|
+
"node --test tests/ci/changelog.test.js",
|
|
88
|
+
"bash -n scripts/package-quiver.sh scripts/release-quiver.sh",
|
|
89
|
+
"shellcheck scripts/package-quiver.sh scripts/release-quiver.sh",
|
|
90
|
+
"npm run docs:check",
|
|
91
|
+
"node --test",
|
|
92
|
+
"npm run package:quiver",
|
|
93
|
+
"npm run release:quiver",
|
|
94
|
+
"git diff --check"
|
|
95
|
+
],
|
|
96
|
+
"validation_hints": [
|
|
97
|
+
"Explicitly reject audit files, PDFs, tests, worktrees, secrets, .DS_Store, and tool state from the package."
|
|
98
|
+
],
|
|
99
|
+
"estimated_hours": 6,
|
|
100
|
+
"status": "completed",
|
|
101
|
+
"blocked_reason": null,
|
|
102
|
+
"actual_hours": 5,
|
|
103
|
+
"started_at": "2026-06-03T01:05:00-0300",
|
|
104
|
+
"completed_at": "2026-06-03T01:13:00-0300"
|
|
105
|
+
}
|