create-quiver 0.15.4 → 0.16.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/.quiver/runs/run-2026-06-09t19-14-39z/approvals.json +5 -0
- package/.quiver/runs/run-2026-06-09t19-14-39z/decisions.md +2 -0
- package/.quiver/runs/run-2026-06-09t19-14-39z/requirement.md +0 -0
- package/.quiver/runs/run-2026-06-09t19-14-39z/snapshots/20260609T191439Z/docs/INDEX.md +97 -0
- package/.quiver/runs/run-2026-06-09t19-14-39z/snapshots/20260609T191439Z/manifest.json +61 -0
- package/.quiver/runs/run-2026-06-09t19-14-39z/state.json +28 -0
- package/ACTIVE_SLICES.md +43 -0
- package/ARCHITECTURE.md +133 -0
- package/CHANGELOG.md +12 -0
- package/CONTRIBUTING.md +174 -9
- package/README.md +10 -1
- package/ROADMAP.md +4 -0
- package/SECURITY.md +9 -2
- package/auditoria-ux-ui-performance-documentacion.md +705 -0
- package/copys-landing-page.md +244 -0
- package/docs/AI_CONTEXT.md.es.template +3 -1
- package/docs/AI_CONTEXT.md.template +3 -1
- package/docs/CLI_UX_GUIDE.md +9 -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 +1 -0
- 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/ai/ACTIVE_SLICE.md +61 -0
- package/docs/getting-started/installation.md +7 -0
- package/docs/reference/commands.md +104 -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/pr.md +154 -0
- 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 +91 -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/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 +294 -94
- 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 +71 -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
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
# Evidence Report - Quiver v51 CLI Ergonomics and Automation Contracts
|
|
2
|
+
|
|
3
|
+
## Planning Evidence
|
|
4
|
+
|
|
5
|
+
- Source requirements: `REQUERIMIENTOS_DERIVADOS_DE_AUDITORIA.md`.
|
|
6
|
+
- Approved plan: user-approved technical plan v4.
|
|
7
|
+
- Current branch inspection showed `status`, `slice`, `handoff`, `evidence list/show`, `demo spec-viewer`, and AI module fragmentation are already present.
|
|
8
|
+
|
|
9
|
+
## Baseline Evidence To Capture During Execution
|
|
10
|
+
|
|
11
|
+
- `node bin/create-quiver.js --help`
|
|
12
|
+
- `node bin/create-quiver.js flow --json`
|
|
13
|
+
- `node bin/create-quiver.js dashboard --section invalid --lang es`
|
|
14
|
+
- `node bin/create-quiver.js evidence list --json`
|
|
15
|
+
- namespace alias stdout/stderr behavior
|
|
16
|
+
- Windows `pwsh` command execution for portable scripts
|
|
17
|
+
|
|
18
|
+
## Validation Evidence
|
|
19
|
+
|
|
20
|
+
## slice-00-cli-contract-baseline
|
|
21
|
+
|
|
22
|
+
- `bin/create-quiver.js`: delegates to the `src/create-quiver` CLI implementation.
|
|
23
|
+
- `src/create-quiver/lib/cli/command-registry.js`: enumerates the public command surface for `status`, `flow`, `dashboard`, `plan`, `graph`, `evidence`, `demo`, `slice`, `handoff`, and `ai`.
|
|
24
|
+
- `src/create-quiver/commands/status.js` and `tests/commands/status.test.js`: `status` command exists with human and JSON contracts.
|
|
25
|
+
- `src/create-quiver/commands/slice.js` and `tests/commands/slice-namespace.test.js`: canonical `slice` namespace and legacy aliases exist with deprecation warnings on stderr.
|
|
26
|
+
- `src/create-quiver/commands/handoff.js` and `tests/commands/handoff-namespace.test.js`: canonical `handoff` namespace and legacy aliases exist with deprecation warnings on stderr.
|
|
27
|
+
- `src/create-quiver/commands/evidence.js`, `src/create-quiver/lib/evidence.js`, and `tests/commands/evidence.test.js`: evidence `run/list/show`, redaction, truncation, JSON, and path-safety contracts exist.
|
|
28
|
+
- `src/create-quiver/commands/demo.js` and `tests/commands/demo.test.js`: `demo spec-viewer` and `demo create spec-viewer` compatibility exists.
|
|
29
|
+
- `src/create-quiver/commands/ai.js` delegates to `src/create-quiver/commands/ai/{agents,diagnostics,execution,inspection,lifecycle,planner}.js`; AI fragmentation is already implemented.
|
|
30
|
+
- `src/create-quiver/commands/flow.js` and `tests/commands/flow.test.js`: `flow` is read-only and has JSON tests, but additive `next_command` still belongs to `slice-01`.
|
|
31
|
+
- `src/create-quiver/lib/dashboard.js` and `tests/commands/dashboard.test.js`: dashboard sections and JSON constraints are tested; invalid-section localization remains for `slice-02`.
|
|
32
|
+
- `tests/commands/plan.test.js` and `tests/commands/graph.test.js`: missing estimates and empty level filters are covered.
|
|
33
|
+
- `package.json`: legacy Bash scripts coexist with portable `quiver:*` scripts; Windows script policy remains for `slice-06`.
|
|
34
|
+
- Runtime code was not modified for this baseline slice.
|
|
35
|
+
- `git diff --check`: passed.
|
|
36
|
+
- `node bin/create-quiver.js spec validate specs/quiver-v51-cli-ergonomics-automation-contracts`: passed.
|
|
37
|
+
|
|
38
|
+
## slice-01-flow-json-compatibility
|
|
39
|
+
|
|
40
|
+
- `src/create-quiver/commands/flow.js`: `baseReport` now emits `next_command` as an additive snake_case alias of the existing `nextCommand` field.
|
|
41
|
+
- `tests/commands/flow.test.js`: machine-readable tests cover both uninitialized and ready-slice states, asserting `next_command` and `nextCommand` remain equal.
|
|
42
|
+
- `docs/reference/commands.md`: documents `flow --json` compatibility for both fields.
|
|
43
|
+
- `specs/quiver-v43-cli-i18n-audit-release-readiness/command-language-mode-matrix.json`: records the newly documented `flow --json` command under a JSON coverage profile.
|
|
44
|
+
- `node --test tests/commands/flow.test.js`: passed, 17 tests.
|
|
45
|
+
- `node --test tests/commands/i18n-audit-matrix.test.js tests/commands/flow.test.js`: passed, 19 tests.
|
|
46
|
+
- `node --test`: passed, 622 tests.
|
|
47
|
+
- `npm run docs:check`: passed.
|
|
48
|
+
- `git diff --check`: passed.
|
|
49
|
+
- `node bin/create-quiver.js spec validate specs/quiver-v51-cli-ergonomics-automation-contracts`: passed.
|
|
50
|
+
|
|
51
|
+
## slice-02-dashboard-section-validation-i18n
|
|
52
|
+
|
|
53
|
+
- `src/create-quiver/lib/dashboard.js`: existing invalid-section handling uses localized `dashboard.unsupported_section` for human output and English-only translation for JSON output.
|
|
54
|
+
- `src/create-quiver/lib/i18n/messages/en.js`: English help text now lists the supported dashboard sections.
|
|
55
|
+
- `src/create-quiver/lib/i18n/messages/es.js`: Spanish help text now lists the supported dashboard sections.
|
|
56
|
+
- `tests/commands/dashboard.test.js`: added EN/ES invalid-section assertions, supported-section list coverage, and JSON-safe invalid-section failure coverage.
|
|
57
|
+
- `tests/commands/cli-contract.test.js`: updated help contract to require the supported section list.
|
|
58
|
+
- `docs/reference/commands.md`: documents every supported dashboard section, including `overview`.
|
|
59
|
+
- `docs/COMMANDS.md.template`: keeps generated command docs aligned with the public reference.
|
|
60
|
+
- `npm run test:ci -- tests/commands/dashboard.test.js tests/commands/cli-contract.test.js tests/lib/i18n-catalog.test.js`: passed, 35 tests.
|
|
61
|
+
- `node --test`: passed, 624 tests.
|
|
62
|
+
- `npm run docs:check`: passed.
|
|
63
|
+
- `git diff --check`: passed.
|
|
64
|
+
- `node bin/create-quiver.js spec validate specs/quiver-v51-cli-ergonomics-automation-contracts`: passed.
|
|
65
|
+
- `node bin/create-quiver.js check-slice specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-02-dashboard-section-validation-i18n/slice.json --local --gate validation`: passed.
|
|
66
|
+
- `node bin/create-quiver.js check-scope specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-02-dashboard-section-validation-i18n/slice.json --base main --strict`: passed.
|
|
67
|
+
- `node bin/create-quiver.js check-pr specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-02-dashboard-section-validation-i18n/slice.json --base main`: passed spec, slice, overlap, validation gate, scope, branch, and clean-worktree checks; failed commit ownership because PR readiness still evaluates `origin/develop` even when the slice base is `main`. This is tracked by `slice-03-base-branch-resolution-policy`.
|
|
68
|
+
|
|
69
|
+
## slice-03-base-branch-resolution-policy
|
|
70
|
+
|
|
71
|
+
- `src/create-quiver/lib/git.js`: adds shared base branch resolution helpers with explicit override precedence, Remote HEAD discovery, and fallback candidates `main`, `master`, and `develop`.
|
|
72
|
+
- `src/create-quiver/lib/readiness.js`: uses the shared resolver for slice readiness, scope checks, and PR readiness instead of hardcoded `origin/develop`.
|
|
73
|
+
- `src/create-quiver/lib/spec-worktrees.js`: uses the shared resolver for spec worktree base selection while preserving explicit slice/spec base metadata.
|
|
74
|
+
- `src/create-quiver/lib/lifecycle.js`: applies the shared resolver to slice cleanup and base freshness checks without changing slice branch fetch behavior.
|
|
75
|
+
- `src/create-quiver/lib/ai/github.js`: resolves default `ai pr` base from Remote HEAD when `--base` is omitted, while preserving the `gh pr create --base <branch>` argument contract.
|
|
76
|
+
- `src/create-quiver/index.js`: forwards `--base` only as an explicit override for `check-pr`, `ai pr`, `spec start`, and `spec close`.
|
|
77
|
+
- `src/create-quiver/lib/i18n/messages/en.js` and `src/create-quiver/lib/i18n/messages/es.js`: remove stale hardcoded `origin/develop` readiness text and localize generic base/ref messages.
|
|
78
|
+
- `docs/reference/commands.md` and `docs/COMMANDS.md.template`: document explicit `--base` precedence, Remote HEAD resolution, and fallback order.
|
|
79
|
+
- `tests/lib/git.test.js`: covers explicit override precedence, Remote HEAD defaulting, and `main`/`master`/`develop` fallback order.
|
|
80
|
+
- `tests/lib/check-slice.test.js`: covers `check-pr` using the slice base branch instead of hardcoded `origin/develop`.
|
|
81
|
+
- `tests/lib/ai-github.test.js`: covers `ai pr` defaulting to Remote HEAD when `--base` is omitted.
|
|
82
|
+
- `tests/lib/scope.test.js`: existing coverage verifies slice `git.base_branch` and explicit base override behavior for scope checks.
|
|
83
|
+
- `tests/lib/lifecycle.test.js`: confirms lifecycle start/cleanup output remains valid after restoring remote slice branch detection.
|
|
84
|
+
- `node --test tests/lib/git.test.js tests/commands/spec-close.test.js tests/commands/ai-pr.test.js tests/lib/check-slice.test.js tests/lib/scope.test.js tests/lib/ai-github.test.js tests/lib/i18n-catalog.test.js tests/commands/cli-contract.test.js`: passed, 77 tests.
|
|
85
|
+
- `node --test tests/lib/lifecycle.test.js`: passed, 12 tests.
|
|
86
|
+
- `node --test`: passed, 629 tests.
|
|
87
|
+
- `npm run docs:check`: passed.
|
|
88
|
+
- `git diff --check`: passed.
|
|
89
|
+
- `node bin/create-quiver.js spec validate specs/quiver-v51-cli-ergonomics-automation-contracts`: passed.
|
|
90
|
+
- `node bin/create-quiver.js check-slice specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-03-base-branch-resolution-policy/slice.json --local --gate validation`: passed.
|
|
91
|
+
- `node bin/create-quiver.js check-scope specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-03-base-branch-resolution-policy/slice.json --base main --strict`: passed.
|
|
92
|
+
- `node bin/create-quiver.js check-pr specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-03-base-branch-resolution-policy/slice.json --base main`: passed.
|
|
93
|
+
|
|
94
|
+
## slice-04-next-plan-graph-ux-edge-cases
|
|
95
|
+
|
|
96
|
+
- `tests/commands/next.test.js`: existing coverage validates `next --auto-start` rejects no-TTY sessions and can start through an injected confirmation prompt.
|
|
97
|
+
- `src/create-quiver/commands/plan.js`: adds a localized human-only note when pending slices have no positive `estimated_hours`; JSON output still contains numeric `hours` and no human prose.
|
|
98
|
+
- `tests/commands/plan.test.js`: covers EN/ES missing-estimates notes, `total_hours`/`hours` as `0`, and JSON output without human notes.
|
|
99
|
+
- `src/create-quiver/commands/graph.js`: adds a localized human empty state for `graph --level <n>` when that level has no slices.
|
|
100
|
+
- `tests/commands/graph.test.js`: covers empty-level EN/ES output, JSON-safe empty `levels`/`conflicts`, and `--json` precedence over `--format mermaid`.
|
|
101
|
+
- `src/create-quiver/lib/i18n/messages/en.js` and `src/create-quiver/lib/i18n/messages/es.js`: add localized plan missing-estimates and graph empty-level messages.
|
|
102
|
+
- `docs/reference/commands.md`, `docs/CLI_UX_GUIDE.md`, and `docs/COMMANDS.md.template`: document plan missing estimates, graph empty-level behavior, `next --auto-start` TTY behavior, and `graph --json` precedence over human render formats.
|
|
103
|
+
- `node --test tests/commands/next.test.js tests/commands/plan.test.js tests/commands/graph.test.js tests/lib/i18n-catalog.test.js`: passed, 37 tests.
|
|
104
|
+
- `node --test`: passed, 632 tests.
|
|
105
|
+
- `npm run docs:check`: passed.
|
|
106
|
+
- `git diff --check`: passed.
|
|
107
|
+
|
|
108
|
+
## slice-05-evidence-robustness-path-safety
|
|
109
|
+
|
|
110
|
+
- `src/create-quiver/lib/evidence.js`: now resolves explicit output/read paths through project-root and realpath checks, rejects traversal and symlink escapes, preserves failure evidence, records signal metadata, and exposes safe `list`/`show` helpers.
|
|
111
|
+
- `src/create-quiver/commands/evidence.js`: supports `evidence list` and `evidence show` with human output and parseable `--json` output.
|
|
112
|
+
- `src/create-quiver/index.js`: parses `evidence run|list|show`, validates positional arguments, and documents the expanded help surface.
|
|
113
|
+
- `src/create-quiver/lib/i18n/messages/en.js` and `src/create-quiver/lib/i18n/messages/es.js`: keep evidence list/show human messages and missing-subcommand guidance aligned.
|
|
114
|
+
- `tests/commands/evidence.test.js`: covers parseable JSON list/show and rejects traversal output before command execution.
|
|
115
|
+
- `tests/lib/evidence.test.js`: covers redaction, truncation, failure evidence, signal exit code metadata, symlink escape rejection, safe listing, and safe show behavior.
|
|
116
|
+
- `tests/commands/cli-contract.test.js`: covers the expanded help contract for `evidence list` and `evidence show`.
|
|
117
|
+
- `docs/reference/commands.md` and `docs/COMMANDS.md.template`: document evidence run/list/show, safe path policy, JSON usage, redaction/truncation, and signal exit-code behavior.
|
|
118
|
+
- `specs/quiver-v43-cli-i18n-audit-release-readiness/command-language-mode-matrix.json`: records evidence run/list/show coverage for the documented command reference.
|
|
119
|
+
- `node --test tests/commands/evidence.test.js tests/lib/evidence.test.js tests/lib/i18n-catalog.test.js tests/commands/cli-contract.test.js`: passed, 38 tests.
|
|
120
|
+
- `node --test tests/commands/i18n-audit-matrix.test.js tests/commands/evidence.test.js tests/lib/evidence.test.js tests/lib/i18n-catalog.test.js tests/commands/cli-contract.test.js`: passed, 40 tests.
|
|
121
|
+
- `node --test`: passed, 638 tests.
|
|
122
|
+
- `npm run docs:check`: passed.
|
|
123
|
+
- `git diff --check`: passed.
|
|
124
|
+
|
|
125
|
+
## slice-06-namespace-compatibility-windows-scripts
|
|
126
|
+
|
|
127
|
+
- `src/create-quiver/index.js`: adds canonical `slice start|check|pr|scope|cleanup|refresh-active` and `handoff check|new` namespace parsing while mapping to existing handlers.
|
|
128
|
+
- `src/create-quiver/index.js`: preserves legacy top-level aliases and emits deprecation guidance to stderr only; warnings are suppressed for `--json` output.
|
|
129
|
+
- `package.json`: adds PowerShell-safe `quiver:*` scripts that call the Node CLI directly and keeps existing Bash scripts as legacy compatibility paths.
|
|
130
|
+
- `src/create-quiver/lib/init-layout.js`: generated project scripts now use canonical namespaces for slice and handoff commands.
|
|
131
|
+
- `.github/workflows/ci.yml`: extends the Windows PowerShell smoke with canonical namespace commands and the portable `quiver:check-handoff` npm script.
|
|
132
|
+
- `README.md`, `CONTRIBUTING.md`, `docs/reference/commands.md`, and `docs/COMMANDS.md.template`: document canonical namespaces, legacy alias policy, portable script guidance, and Windows-safe command paths.
|
|
133
|
+
- `src/create-quiver/lib/i18n/messages/es.js`: adds Spanish help descriptions for the new canonical namespace entries.
|
|
134
|
+
- `specs/quiver-v43-cli-i18n-audit-release-readiness/command-language-mode-matrix.json`: records canonical namespace command coverage for the i18n audit matrix.
|
|
135
|
+
- `tests/commands/slice-namespace.test.js`: validates canonical/legacy slice parity, stderr-only legacy warnings, JSON warning suppression, and unsupported subcommand rejection.
|
|
136
|
+
- `tests/commands/handoff-namespace.test.js`: validates canonical/legacy handoff parity, `handoff new` compatibility, and unsupported subcommand rejection.
|
|
137
|
+
- `tests/commands/parser-contract.test.js`: validates help coverage and package script portability contracts.
|
|
138
|
+
- `tests/commands/cli-contract.test.js` and `tests/lib/init-layout.test.js`: align public help and generated script contracts with canonical namespaces.
|
|
139
|
+
- `node --test tests/commands/slice-namespace.test.js tests/commands/handoff-namespace.test.js tests/commands/parser-contract.test.js tests/commands/cli-contract.test.js tests/lib/init-layout.test.js tests/commands/i18n-audit-matrix.test.js tests/lib/i18n-catalog.test.js`: passed, 40 tests.
|
|
140
|
+
- `npm ci`: passed; `package-lock.json` did not require changes because root package scripts are not represented in lockfile metadata.
|
|
141
|
+
- `node bin/create-quiver.js slice check --local specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-00-cli-contract-baseline/slice.json && node bin/create-quiver.js handoff check specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-06-namespace-compatibility-windows-scripts/EXECUTION_BRIEF.md && npm run quiver:check-handoff -- specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-06-namespace-compatibility-windows-scripts/EXECUTION_BRIEF.md`: passed after dependency installation.
|
|
142
|
+
- `npm run docs:check`: passed.
|
|
143
|
+
- `git diff --check`: passed.
|
|
144
|
+
- `node --test`: passed, 646 tests.
|
|
145
|
+
- Windows PowerShell validation is configured in CI; local execution was performed on macOS using the same Node CLI entrypoints and package script contracts.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Execution Plan - Quiver v51 CLI Ergonomics and Automation Contracts
|
|
2
|
+
|
|
3
|
+
## Order
|
|
4
|
+
|
|
5
|
+
1. Execute `slice-00-cli-contract-baseline`.
|
|
6
|
+
2. Execute `slice-01-flow-json-compatibility`.
|
|
7
|
+
3. Execute `slice-02-dashboard-section-validation-i18n`.
|
|
8
|
+
4. Execute `slice-03-base-branch-resolution-policy`.
|
|
9
|
+
5. Execute `slice-04-next-plan-graph-ux-edge-cases`.
|
|
10
|
+
6. Execute `slice-05-evidence-robustness-path-safety`.
|
|
11
|
+
7. Execute `slice-06-namespace-compatibility-windows-scripts`.
|
|
12
|
+
|
|
13
|
+
## Parallel Execution
|
|
14
|
+
|
|
15
|
+
- `slice-01`, `slice-02`, `slice-04`, and `slice-05` can run in parallel after `slice-00` if they coordinate i18n catalog changes.
|
|
16
|
+
- `slice-03` should be isolated because it touches shared Git/base behavior.
|
|
17
|
+
- `slice-06` should run after or alongside CI hardening from v50 when Windows `pwsh` evidence is available.
|
|
18
|
+
|
|
19
|
+
## Risk Controls
|
|
20
|
+
|
|
21
|
+
- Preserve existing JSON fields.
|
|
22
|
+
- Validate stdout/stderr separation for every warning and JSON change.
|
|
23
|
+
- Add tests before or with behavior changes.
|
|
24
|
+
- Close already-implemented findings with evidence instead of refactor.
|
|
25
|
+
|
|
26
|
+
## Required Final Validation
|
|
27
|
+
|
|
28
|
+
- `node --test`
|
|
29
|
+
- `node bin/create-quiver.js --help`
|
|
30
|
+
- Windows `pwsh` CI evidence or documented blocker
|
|
31
|
+
- `git diff --check`
|
|
32
|
+
- `node bin/create-quiver.js spec validate specs/quiver-v51-cli-ergonomics-automation-contracts`
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
# Quiver v51 - CLI Ergonomics and Automation Contracts
|
|
2
|
+
|
|
3
|
+
**Date:** 2026-06-01
|
|
4
|
+
**Status:** Planned
|
|
5
|
+
**Source:** User-approved plan v4 derived from `REQUERIMIENTOS_DERIVADOS_DE_AUDITORIA.md`.
|
|
6
|
+
|
|
7
|
+
Slice numbering resets here. This spec intentionally starts at `slice-00`.
|
|
8
|
+
|
|
9
|
+
## Problem
|
|
10
|
+
|
|
11
|
+
The audit identified CLI ergonomics and automation contract gaps around JSON output, dashboard validation, base branch defaults, next/plan/graph UX, evidence robustness, namespace compatibility, and Windows portability. Several related capabilities already exist and must be preserved by tests/evidence instead of reimplemented.
|
|
12
|
+
|
|
13
|
+
## Objective
|
|
14
|
+
|
|
15
|
+
Harden Quiver's CLI contracts for humans, scripts, agents, and production CI:
|
|
16
|
+
|
|
17
|
+
- Add compatibility-safe JSON fields.
|
|
18
|
+
- Localize and document dashboard validation.
|
|
19
|
+
- Define one base branch resolution policy across related commands.
|
|
20
|
+
- Close UX edge cases in `next`, `plan`, and `graph`.
|
|
21
|
+
- Make evidence handling robust and path-safe.
|
|
22
|
+
- Preserve namespace compatibility and make recommended npm scripts portable.
|
|
23
|
+
|
|
24
|
+
## Scope
|
|
25
|
+
|
|
26
|
+
### Included
|
|
27
|
+
|
|
28
|
+
- CLI contract baseline for already-implemented findings.
|
|
29
|
+
- `flow --json` `next_command` additive compatibility.
|
|
30
|
+
- Dashboard `--section` validation/i18n/help.
|
|
31
|
+
- Base branch policy for `spec close`, `ai pr`, `slice check`, `slice scope`, and related readiness flows.
|
|
32
|
+
- `next`, `plan`, and `graph` UX edge cases.
|
|
33
|
+
- Evidence run/list/show robustness, signals, redaction, truncation, and path safety.
|
|
34
|
+
- Namespace parity, legacy stderr-only warnings, and Windows PowerShell script portability.
|
|
35
|
+
|
|
36
|
+
### Excluded
|
|
37
|
+
|
|
38
|
+
- Removing legacy aliases.
|
|
39
|
+
- Breaking JSON contracts.
|
|
40
|
+
- Rewriting parser.
|
|
41
|
+
- Shell completion.
|
|
42
|
+
- TypeScript.
|
|
43
|
+
- Commander.js/yargs.
|
|
44
|
+
|
|
45
|
+
## Approved Acceptance Criteria
|
|
46
|
+
|
|
47
|
+
1. Already-implemented CLI findings are closed by evidence/tests/docs only.
|
|
48
|
+
2. `flow --json` adds `next_command` while preserving `nextCommand`.
|
|
49
|
+
3. `dashboard --section` errors are localized, actionable, and list real supported sections.
|
|
50
|
+
4. Base branch resolution is consistent across all commands that use `--base`.
|
|
51
|
+
5. `next`, `plan`, and `graph` edge cases are implemented or closed by evidence.
|
|
52
|
+
6. Evidence commands preserve exit codes, redaction, truncation, safe paths, JSON contracts, and signal behavior.
|
|
53
|
+
7. Canonical namespaces and legacy aliases remain compatible with warnings only on stderr.
|
|
54
|
+
8. Recommended npm scripts/commands are portable under Windows PowerShell.
|
|
55
|
+
|
|
56
|
+
## Execution Baseline - slice-00
|
|
57
|
+
|
|
58
|
+
| Finding | Current state | Evidence | Action |
|
|
59
|
+
|---|---|---|---|
|
|
60
|
+
| `status` top-level command | implemented | `src/create-quiver/commands/status.js`; `tests/commands/status.test.js`. | Preserve current human/JSON and read-only contracts. |
|
|
61
|
+
| `slice start/check/check-pr/scope/cleanup/refresh` plus legacy aliases | implemented | `src/create-quiver/commands/slice.js`; `src/create-quiver/lib/cli/command-registry.js`; `tests/commands/slice-namespace.test.js`. | Preserve canonical namespace, legacy aliases, and stderr-only deprecation warnings. |
|
|
62
|
+
| `handoff check/create` plus legacy aliases | implemented | `src/create-quiver/commands/handoff.js`; `tests/commands/handoff-namespace.test.js`. | Preserve canonical namespace and stderr-only deprecation warnings. |
|
|
63
|
+
| `evidence run/list/show` | implemented | `src/create-quiver/commands/evidence.js`; `src/create-quiver/lib/evidence.js`; `tests/commands/evidence.test.js`. | Freeze JSON schema version, redaction, truncation, path-safety, and exit-code contracts before `slice-05`. |
|
|
64
|
+
| `demo spec-viewer` and `demo create spec-viewer` compatibility | implemented | `src/create-quiver/commands/demo.js`; `tests/commands/demo.test.js`. | Preserve both entrypoints and non-destructive scaffold behavior. |
|
|
65
|
+
| AI command fragmentation | implemented | `src/create-quiver/commands/ai.js` delegates to `src/create-quiver/commands/ai/{agents,diagnostics,execution,inspection,lifecycle,planner}.js`. | Preserve split modules and compatibility aliases; no dispatcher rewrite in v51 baseline. |
|
|
66
|
+
| `flow` human/stdout/JSON contract | partial | `src/create-quiver/commands/flow.js`; `tests/commands/flow.test.js`; current JSON contains `nextCommand` but not additive `next_command`. | Implement additive `next_command` in `slice-01-flow-json-compatibility`. |
|
|
67
|
+
| `dashboard` invalid-section behavior and JSON constraints | partial | `src/create-quiver/lib/dashboard.js`; `tests/commands/dashboard.test.js`; invalid `--section` error is actionable but still English-only in observed behavior. | Implement localization/help hardening in `slice-02-dashboard-section-validation-i18n`. |
|
|
68
|
+
| `plan` and `graph` UX edge cases | implemented | `tests/commands/plan.test.js`; `tests/commands/graph.test.js` cover missing estimates and empty level filters. | Close as evidence-only unless later validation proves a regression. |
|
|
69
|
+
| Base branch resolution policy | partial | `src/create-quiver/lib/spec-worktrees.js`, `src/create-quiver/commands/ai/github.js`, and readiness helpers use related but not fully centralized fallback logic. | Implement single policy in `slice-03-base-branch-resolution-policy`. |
|
|
70
|
+
| Windows npm script portability | partial | `package.json` still includes legacy Bash scripts (`check:slice`, `check:pr`, `start:slice`, `cleanup:slice`, `migrate`) alongside portable `quiver:*` scripts. | Implement or document portable script strategy in `slice-06-namespace-compatibility-windows-scripts`. |
|
|
71
|
+
|
|
72
|
+
## Slice Roadmap
|
|
73
|
+
|
|
74
|
+
| Slice | Title | Status | Dependencies |
|
|
75
|
+
|---|---|---|---|
|
|
76
|
+
| slice-00 | CLI contract baseline | completed | none |
|
|
77
|
+
| slice-01 | Flow JSON compatibility | planned | slice-00 |
|
|
78
|
+
| slice-02 | Dashboard section validation and i18n | planned | slice-00 |
|
|
79
|
+
| slice-03 | Base branch resolution policy | planned | slice-00 |
|
|
80
|
+
| slice-04 | Next/plan/graph UX edge cases | planned | slice-00 |
|
|
81
|
+
| slice-05 | Evidence robustness and path safety | planned | slice-00 |
|
|
82
|
+
| slice-06 | Namespace compatibility and Windows npm scripts | planned | slice-00 |
|
|
83
|
+
|
|
84
|
+
## Guardrails
|
|
85
|
+
|
|
86
|
+
- Add JSON fields, do not rename/remove existing fields.
|
|
87
|
+
- Do not let warnings or deprecation messages contaminate JSON stdout.
|
|
88
|
+
- Do not change command semantics for already-implemented findings unless the baseline proves a gap.
|
|
89
|
+
- Keep `--base` explicit override highest priority.
|
|
90
|
+
- Preserve evidence format unless a compatible migration is documented.
|
|
91
|
+
- Keep aliases working.
|
|
92
|
+
|
|
93
|
+
## Required Production Gates
|
|
94
|
+
|
|
95
|
+
- targeted command tests
|
|
96
|
+
- parser contract tests when flags change
|
|
97
|
+
- stdout/stderr assertions for JSON, warnings, and errors
|
|
98
|
+
- EN/ES validation for human messages
|
|
99
|
+
- no-TTY/CI checks for prompts
|
|
100
|
+
- Windows `pwsh` validation for portable scripts
|
|
101
|
+
- `node --test`
|
|
102
|
+
- `git diff --check`
|
|
103
|
+
- `node bin/create-quiver.js spec validate specs/quiver-v51-cli-ergonomics-automation-contracts`
|
|
104
|
+
|
|
105
|
+
## Open Decisions
|
|
106
|
+
|
|
107
|
+
- Exact base branch fallback when no remote HEAD is available.
|
|
108
|
+
- Exact policy for `evidence run --output` allowed paths.
|
|
109
|
+
- Strategy for scripts Bash legacy: replace, wrap, or document as legacy.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Status - Quiver v51 CLI Ergonomics and Automation Contracts
|
|
2
|
+
|
|
3
|
+
**Overall status:** Completed, pending PR
|
|
4
|
+
**Created:** 2026-06-01
|
|
5
|
+
**Current slice:** slice-06-namespace-compatibility-windows-scripts completed
|
|
6
|
+
|
|
7
|
+
## Summary
|
|
8
|
+
|
|
9
|
+
This spec hardens CLI contracts for automation, JSON consumers, human UX, evidence handling, base branch behavior, and Windows portability. All planned slices are complete locally and pending the final slice PR review/merge.
|
|
10
|
+
|
|
11
|
+
## Slice Status
|
|
12
|
+
|
|
13
|
+
| Slice | Status | Notes |
|
|
14
|
+
|---|---|---|
|
|
15
|
+
| slice-00-cli-contract-baseline | Completed | Classified current CLI capabilities, froze implemented contracts, and routed partial gaps to later slices. |
|
|
16
|
+
| slice-01-flow-json-compatibility | Completed | Added additive `next_command`, preserved `nextCommand`, documented compatibility, and tested matching values in representative JSON states. |
|
|
17
|
+
| slice-02-dashboard-section-validation-i18n | Completed | Localized and documented invalid dashboard section behavior with EN/ES tests, JSON-safe failure coverage, and supported section help/reference docs. |
|
|
18
|
+
| slice-03-base-branch-resolution-policy | Completed | Centralized base branch resolution across readiness, spec lifecycle, scope, and AI PR flows. |
|
|
19
|
+
| slice-04-next-plan-graph-ux-edge-cases | Completed | Closed next/plan/graph secondary UX gaps with localized human notes, JSON-safe tests, and docs alignment. |
|
|
20
|
+
| slice-05-evidence-robustness-path-safety | Completed | Hardened evidence command contracts, safe paths, signal metadata, JSON list/show, docs, and i18n matrix coverage. |
|
|
21
|
+
| slice-06-namespace-compatibility-windows-scripts | Completed | Added canonical `slice`/`handoff` namespaces, preserved legacy aliases with stderr-only warnings, documented portable scripts, and added Windows CI smoke coverage. |
|
|
22
|
+
|
|
23
|
+
## Current Blockers
|
|
24
|
+
|
|
25
|
+
- None. Final slice is ready for PR review after local gates.
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
## Title
|
|
2
|
+
|
|
3
|
+
QUIVER-51: CLI Ergonomics and Automation Contracts planning baseline
|
|
4
|
+
|
|
5
|
+
## Summary
|
|
6
|
+
|
|
7
|
+
Adds the Quiver v51 CLI Ergonomics and Automation Contracts spec package and closes its `slice-00` baseline.
|
|
8
|
+
|
|
9
|
+
The baseline freezes current CLI contracts for implemented commands and routes partial gaps to later slices: `flow --json` additive compatibility, dashboard section i18n, base branch policy, evidence robustness, and Windows script portability.
|
|
10
|
+
|
|
11
|
+
## Scope
|
|
12
|
+
|
|
13
|
+
- Adds the v51 spec documentation, status, evidence report, slices, and per-slice handoff briefs.
|
|
14
|
+
- Marks `slice-00-cli-contract-baseline` as completed.
|
|
15
|
+
- Records current CLI command contracts and compatibility constraints.
|
|
16
|
+
- Does not modify runtime code.
|
|
17
|
+
|
|
18
|
+
## Files
|
|
19
|
+
|
|
20
|
+
- `specs/quiver-v51-cli-ergonomics-automation-contracts/SPEC.md`
|
|
21
|
+
- `specs/quiver-v51-cli-ergonomics-automation-contracts/STATUS.md`
|
|
22
|
+
- `specs/quiver-v51-cli-ergonomics-automation-contracts/EVIDENCE_REPORT.md`
|
|
23
|
+
- `specs/quiver-v51-cli-ergonomics-automation-contracts/pr.md`
|
|
24
|
+
- `specs/quiver-v51-cli-ergonomics-automation-contracts/slices/**`
|
|
25
|
+
|
|
26
|
+
## How to Test (DETAILED - REQUIRED)
|
|
27
|
+
|
|
28
|
+
### Required Environment
|
|
29
|
+
|
|
30
|
+
- Node.js available locally.
|
|
31
|
+
- Repository checkout with Quiver CLI scripts available.
|
|
32
|
+
- GitHub CLI is not required to validate the spec contents.
|
|
33
|
+
|
|
34
|
+
### Worktree Access
|
|
35
|
+
|
|
36
|
+
- Checkout this PR branch.
|
|
37
|
+
- Confirm no runtime source files are changed by this PR.
|
|
38
|
+
|
|
39
|
+
### Run the Project
|
|
40
|
+
|
|
41
|
+
No application runtime needs to be started; this PR is documentation/spec planning only.
|
|
42
|
+
|
|
43
|
+
### Use Cases
|
|
44
|
+
|
|
45
|
+
- Review the v51 CLI baseline table in `SPEC.md`.
|
|
46
|
+
- Confirm implemented findings are evidence-only.
|
|
47
|
+
- Confirm partial gaps are routed to `slice-01` through `slice-06`.
|
|
48
|
+
|
|
49
|
+
### Technical Verification
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
git diff --check
|
|
53
|
+
node bin/create-quiver.js spec validate specs/quiver-v51-cli-ergonomics-automation-contracts
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Evidence
|
|
57
|
+
|
|
58
|
+
- `git diff --check`: passed.
|
|
59
|
+
- `node bin/create-quiver.js spec validate specs/quiver-v51-cli-ergonomics-automation-contracts`: passed.
|
|
60
|
+
- Runtime code was not modified.
|
|
61
|
+
|
|
62
|
+
## Rollback
|
|
63
|
+
|
|
64
|
+
Remove `specs/quiver-v51-cli-ergonomics-automation-contracts/` and revert the commit.
|
|
65
|
+
|
|
66
|
+
## Risks / Notes
|
|
67
|
+
|
|
68
|
+
- This PR intentionally excludes local audit inputs, PDFs, copy docs, and other root-level untracked files.
|
|
69
|
+
- Follow-up implementation must start from `slice-01-flow-json-compatibility`.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# CLOSURE_BRIEF - slice-00 CLI contract baseline
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
|
|
5
|
+
Classified current v51 CLI contracts and routed implemented, partial, and missing work to the correct later slices. Runtime code was not changed.
|
|
6
|
+
|
|
7
|
+
## Validation
|
|
8
|
+
|
|
9
|
+
- [x] `git diff --check`
|
|
10
|
+
- [x] `node bin/create-quiver.js spec validate specs/quiver-v51-cli-ergonomics-automation-contracts`
|
|
11
|
+
|
|
12
|
+
## Closure Conditions
|
|
13
|
+
|
|
14
|
+
- [x] Current CLI contracts classified.
|
|
15
|
+
- [x] Implemented findings marked evidence/test/docs only.
|
|
16
|
+
- [x] Runtime code unchanged.
|
|
17
|
+
|
|
18
|
+
## Open Items
|
|
19
|
+
|
|
20
|
+
- None.
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# EXECUTION_BRIEF - slice-00 CLI contract baseline
|
|
2
|
+
|
|
3
|
+
## Context
|
|
4
|
+
|
|
5
|
+
Several CLI findings from the audit are already implemented in the current branch. This slice prevents duplicate work.
|
|
6
|
+
|
|
7
|
+
## Objective
|
|
8
|
+
|
|
9
|
+
Validate current CLI capabilities and classify v51 findings before implementation.
|
|
10
|
+
|
|
11
|
+
## Scope
|
|
12
|
+
|
|
13
|
+
- Current command/help/JSON behavior.
|
|
14
|
+
- Finding classification.
|
|
15
|
+
- Planning artifacts only.
|
|
16
|
+
|
|
17
|
+
## Acceptance Criteria
|
|
18
|
+
|
|
19
|
+
- A `Finding | Current state | Action` table exists.
|
|
20
|
+
- Implemented findings are mapped to evidence/test/docs only.
|
|
21
|
+
- Missing/partial findings are mapped to later slices.
|
|
22
|
+
- Runtime code is unchanged.
|
|
23
|
+
|
|
24
|
+
## Expected Files To Modify
|
|
25
|
+
|
|
26
|
+
- `specs/quiver-v51-cli-ergonomics-automation-contracts/SPEC.md`
|
|
27
|
+
- `specs/quiver-v51-cli-ergonomics-automation-contracts/STATUS.md`
|
|
28
|
+
- `specs/quiver-v51-cli-ergonomics-automation-contracts/EVIDENCE_REPORT.md`
|
|
29
|
+
|
|
30
|
+
## Validations Required
|
|
31
|
+
|
|
32
|
+
- `git diff --check`
|
|
33
|
+
- `node bin/create-quiver.js spec validate specs/quiver-v51-cli-ergonomics-automation-contracts`
|
|
34
|
+
|
|
35
|
+
## Risks
|
|
36
|
+
|
|
37
|
+
- Reimplementing stable CLI behavior.
|
|
38
|
+
- Missing a current contract that later slices break.
|
|
39
|
+
|
|
40
|
+
## Dependencies
|
|
41
|
+
|
|
42
|
+
- None.
|
|
43
|
+
|
|
44
|
+
## Instructions For Executor
|
|
45
|
+
|
|
46
|
+
1. Run representative commands and capture behavior.
|
|
47
|
+
2. Classify each v51 finding.
|
|
48
|
+
3. Do not modify runtime code.
|
|
49
|
+
|
|
50
|
+
## Completion Checklist
|
|
51
|
+
|
|
52
|
+
- [ ] Acceptance criteria satisfied.
|
|
53
|
+
- [ ] Required validations run or blockers documented.
|
|
54
|
+
- [ ] Closure brief updated.
|
|
55
|
+
|
|
56
|
+
## Conditions Of Closure
|
|
57
|
+
|
|
58
|
+
- v51 implementation slices have a precise CLI baseline.
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slice_id": "slice-00-cli-contract-baseline",
|
|
3
|
+
"ticket": "QUIVER-51-00",
|
|
4
|
+
"type": "documentation",
|
|
5
|
+
"title": "CLI contract baseline",
|
|
6
|
+
"objective": "Validate current CLI capabilities and classify v51 findings before implementation.",
|
|
7
|
+
"description": "Records which CLI findings are already implemented, partial, missing, or not applicable so later slices avoid duplicate refactors.",
|
|
8
|
+
"git": {
|
|
9
|
+
"branch_type": "feature",
|
|
10
|
+
"base_branch": "main",
|
|
11
|
+
"branch_slug": "v51-cli-contract-baseline",
|
|
12
|
+
"branch_name": "feature/QUIVER-51-00-v51-cli-contract-baseline"
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"specs/quiver-v51-cli-ergonomics-automation-contracts/**"
|
|
16
|
+
],
|
|
17
|
+
"expected_read_paths": [
|
|
18
|
+
"REQUERIMIENTOS_DERIVADOS_DE_AUDITORIA.md",
|
|
19
|
+
"src/create-quiver/index.js",
|
|
20
|
+
"src/create-quiver/commands/**",
|
|
21
|
+
"tests/commands/**",
|
|
22
|
+
"package.json"
|
|
23
|
+
],
|
|
24
|
+
"allowed_write_paths": [
|
|
25
|
+
"specs/quiver-v51-cli-ergonomics-automation-contracts/**"
|
|
26
|
+
],
|
|
27
|
+
"depends_on": [],
|
|
28
|
+
"parallel_safe": "no",
|
|
29
|
+
"parallel_safe_reason": "Baseline defines implementation vs validation-only actions for all v51 slices.",
|
|
30
|
+
"must": [
|
|
31
|
+
"Create a Finding | Current state | Action table.",
|
|
32
|
+
"Validate current status, namespaces, evidence list/show, demo spec-viewer, and AI fragmentation.",
|
|
33
|
+
"Freeze relevant JSON and stdout/stderr contracts.",
|
|
34
|
+
"Do not modify runtime code."
|
|
35
|
+
],
|
|
36
|
+
"not_included": [
|
|
37
|
+
"Implementing CLI changes."
|
|
38
|
+
],
|
|
39
|
+
"acceptance": [
|
|
40
|
+
"Already-implemented findings are marked evidence/test/docs only.",
|
|
41
|
+
"Missing and partial findings are routed to later slices.",
|
|
42
|
+
"Runtime code remains unchanged."
|
|
43
|
+
],
|
|
44
|
+
"tests": [
|
|
45
|
+
"git diff --check",
|
|
46
|
+
"node bin/create-quiver.js spec validate specs/quiver-v51-cli-ergonomics-automation-contracts"
|
|
47
|
+
],
|
|
48
|
+
"validation_hints": [
|
|
49
|
+
"Use command outputs as evidence, not assumptions from the audit."
|
|
50
|
+
],
|
|
51
|
+
"estimated_hours": 2,
|
|
52
|
+
"status": "completed",
|
|
53
|
+
"blocked_reason": null,
|
|
54
|
+
"actual_hours": 2,
|
|
55
|
+
"completed_at": "2026-06-01T21:37:54-0300"
|
|
56
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# CLOSURE_BRIEF - slice-01 flow JSON compatibility
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
|
|
5
|
+
Implemented additive `flow --json` compatibility by emitting `next_command` with the same value as the existing `nextCommand` field. Human output semantics are unchanged.
|
|
6
|
+
|
|
7
|
+
## Validation
|
|
8
|
+
|
|
9
|
+
- [x] `node --test tests/commands/flow.test.js`
|
|
10
|
+
- [x] `node --test`
|
|
11
|
+
- [x] `git diff --check`
|
|
12
|
+
|
|
13
|
+
## Closure Conditions
|
|
14
|
+
|
|
15
|
+
- [x] `next_command` added.
|
|
16
|
+
- [x] `nextCommand` preserved.
|
|
17
|
+
- [x] Compatibility documented and tested.
|
|
18
|
+
|
|
19
|
+
## Open Items
|
|
20
|
+
|
|
21
|
+
- None.
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# EXECUTION_BRIEF - slice-01 flow JSON compatibility
|
|
2
|
+
|
|
3
|
+
## Context
|
|
4
|
+
|
|
5
|
+
`flow --json` currently exposes `nextCommand`. The audit requires `next_command` for stable agent consumption, but existing consumers must not break.
|
|
6
|
+
|
|
7
|
+
## Objective
|
|
8
|
+
|
|
9
|
+
Add snake_case `next_command` to flow JSON without breaking existing `nextCommand` consumers.
|
|
10
|
+
|
|
11
|
+
## Scope
|
|
12
|
+
|
|
13
|
+
- `flow --json`.
|
|
14
|
+
- Compatibility docs.
|
|
15
|
+
- Flow tests.
|
|
16
|
+
|
|
17
|
+
## Acceptance Criteria
|
|
18
|
+
|
|
19
|
+
- `next_command` exists in JSON output.
|
|
20
|
+
- `nextCommand` remains.
|
|
21
|
+
- Values match when present.
|
|
22
|
+
- Both are null or documented consistently when no next command exists.
|
|
23
|
+
- Human output remains compatible.
|
|
24
|
+
|
|
25
|
+
## Expected Files To Modify
|
|
26
|
+
|
|
27
|
+
- `src/create-quiver/commands/flow.js`
|
|
28
|
+
- `docs/reference/commands.md`
|
|
29
|
+
- `tests/commands/flow.test.js`
|
|
30
|
+
- `specs/quiver-v51-cli-ergonomics-automation-contracts/EVIDENCE_REPORT.md`
|
|
31
|
+
|
|
32
|
+
## Validations Required
|
|
33
|
+
|
|
34
|
+
- `node --test tests/commands/flow.test.js`
|
|
35
|
+
- `node --test`
|
|
36
|
+
- `git diff --check`
|
|
37
|
+
|
|
38
|
+
## Risks
|
|
39
|
+
|
|
40
|
+
- Breaking existing `nextCommand` users.
|
|
41
|
+
- Adding inconsistent values across states.
|
|
42
|
+
|
|
43
|
+
## Dependencies
|
|
44
|
+
|
|
45
|
+
- Depends on `slice-00-cli-contract-baseline`.
|
|
46
|
+
|
|
47
|
+
## Instructions For Executor
|
|
48
|
+
|
|
49
|
+
1. Make the JSON change additive only.
|
|
50
|
+
2. Add tests for representative states.
|
|
51
|
+
3. Document compatibility and do not remove legacy field.
|
|
52
|
+
|
|
53
|
+
## Completion Checklist
|
|
54
|
+
|
|
55
|
+
- [ ] Acceptance criteria satisfied.
|
|
56
|
+
- [ ] Required validations run or blockers documented.
|
|
57
|
+
- [ ] Closure brief updated.
|
|
58
|
+
|
|
59
|
+
## Conditions Of Closure
|
|
60
|
+
|
|
61
|
+
- Flow JSON supports both snake_case and legacy camelCase consumers.
|