create-quiver 0.12.0 → 0.12.1
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/CHANGELOG.md +44 -0
- package/README.md +49 -17
- package/README_FOR_AI.md +31 -29
- package/ROADMAP.md +15 -3
- package/docs/AI_ONBOARDING_PROMPT.md.template +7 -1
- package/docs/COMMANDS.md.template +44 -18
- package/docs/STATUS.md.template +5 -1
- package/docs/WORKFLOW.md.template +13 -11
- package/package.json +9 -3
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/EVIDENCE_REPORT.md +293 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/EXECUTION_PLAN.md +58 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/SPEC.md +242 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/STATUS.md +35 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/pr.md +77 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-00-spec-foundation/CLOSURE_BRIEF.md +34 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-00-spec-foundation/EXECUTION_BRIEF.md +52 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-00-spec-foundation/slice.json +52 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-01-cli-contract-compatibility/CLOSURE_BRIEF.md +36 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-01-cli-contract-compatibility/EXECUTION_BRIEF.md +52 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-01-cli-contract-compatibility/slice.json +56 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-02-run-state-phase-locks/CLOSURE_BRIEF.md +43 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-02-run-state-phase-locks/EXECUTION_BRIEF.md +54 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-02-run-state-phase-locks/slice.json +52 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-03-safe-ai-onboarding-docs/CLOSURE_BRIEF.md +35 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-03-safe-ai-onboarding-docs/EXECUTION_BRIEF.md +53 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-03-safe-ai-onboarding-docs/slice.json +54 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-04-agent-profiles-adapters/CLOSURE_BRIEF.md +34 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-04-agent-profiles-adapters/EXECUTION_BRIEF.md +54 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-04-agent-profiles-adapters/slice.json +52 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-05-approval-gates/CLOSURE_BRIEF.md +34 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-05-approval-gates/EXECUTION_BRIEF.md +54 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-05-approval-gates/slice.json +53 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-06-spec-slice-generator/CLOSURE_BRIEF.md +33 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-06-spec-slice-generator/EXECUTION_BRIEF.md +56 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-06-spec-slice-generator/slice.json +55 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-07-slice-execution-planner/CLOSURE_BRIEF.md +33 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-07-slice-execution-planner/EXECUTION_BRIEF.md +54 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-07-slice-execution-planner/slice.json +52 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-08-controlled-slice-execution/CLOSURE_BRIEF.md +39 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-08-controlled-slice-execution/EXECUTION_BRIEF.md +56 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-08-controlled-slice-execution/slice.json +53 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-09-git-worktree-pr-lifecycle/CLOSURE_BRIEF.md +38 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-09-git-worktree-pr-lifecycle/EXECUTION_BRIEF.md +57 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-09-git-worktree-pr-lifecycle/slice.json +52 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-10-validation-errors-fixtures/CLOSURE_BRIEF.md +39 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-10-validation-errors-fixtures/EXECUTION_BRIEF.md +55 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-10-validation-errors-fixtures/slice.json +56 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-11-export-dashboard-migration/CLOSURE_BRIEF.md +36 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-11-export-dashboard-migration/EXECUTION_BRIEF.md +54 -0
- package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-11-export-dashboard-migration/slice.json +53 -0
- package/specs/quiver-v26-0121-smoke-hardening/EVIDENCE_REPORT.md +208 -0
- package/specs/quiver-v26-0121-smoke-hardening/EXECUTION_PLAN.md +57 -0
- package/specs/quiver-v26-0121-smoke-hardening/SPEC.md +137 -0
- package/specs/quiver-v26-0121-smoke-hardening/STATUS.md +32 -0
- package/specs/quiver-v26-0121-smoke-hardening/pr.md +96 -0
- package/specs/quiver-v26-0121-smoke-hardening/slices/slice-00-docs-foundation/CLOSURE_BRIEF.md +35 -0
- package/specs/quiver-v26-0121-smoke-hardening/slices/slice-00-docs-foundation/EXECUTION_BRIEF.md +55 -0
- package/specs/quiver-v26-0121-smoke-hardening/slices/slice-00-docs-foundation/slice.json +73 -0
- package/specs/quiver-v26-0121-smoke-hardening/slices/slice-01-cli-help-version-contract/CLOSURE_BRIEF.md +38 -0
- package/specs/quiver-v26-0121-smoke-hardening/slices/slice-01-cli-help-version-contract/EXECUTION_BRIEF.md +51 -0
- package/specs/quiver-v26-0121-smoke-hardening/slices/slice-01-cli-help-version-contract/slice.json +76 -0
- package/specs/quiver-v26-0121-smoke-hardening/slices/slice-02-init-doc-links-and-flow-guidance/CLOSURE_BRIEF.md +37 -0
- package/specs/quiver-v26-0121-smoke-hardening/slices/slice-02-init-doc-links-and-flow-guidance/EXECUTION_BRIEF.md +52 -0
- package/specs/quiver-v26-0121-smoke-hardening/slices/slice-02-init-doc-links-and-flow-guidance/slice.json +75 -0
- package/specs/quiver-v26-0121-smoke-hardening/slices/slice-03-ai-approval-review-consistency/CLOSURE_BRIEF.md +37 -0
- package/specs/quiver-v26-0121-smoke-hardening/slices/slice-03-ai-approval-review-consistency/EXECUTION_BRIEF.md +53 -0
- package/specs/quiver-v26-0121-smoke-hardening/slices/slice-03-ai-approval-review-consistency/slice.json +77 -0
- package/specs/quiver-v26-0121-smoke-hardening/slices/slice-04-local-validation-brief-contracts/CLOSURE_BRIEF.md +35 -0
- package/specs/quiver-v26-0121-smoke-hardening/slices/slice-04-local-validation-brief-contracts/EXECUTION_BRIEF.md +52 -0
- package/specs/quiver-v26-0121-smoke-hardening/slices/slice-04-local-validation-brief-contracts/slice.json +77 -0
- package/specs/quiver-v26-0121-smoke-hardening/slices/slice-05-demo-scaffold-readiness/CLOSURE_BRIEF.md +34 -0
- package/specs/quiver-v26-0121-smoke-hardening/slices/slice-05-demo-scaffold-readiness/EXECUTION_BRIEF.md +54 -0
- package/specs/quiver-v26-0121-smoke-hardening/slices/slice-05-demo-scaffold-readiness/slice.json +84 -0
- package/specs/quiver-v26-0121-smoke-hardening/slices/slice-06-plan-graph-scope-performance/CLOSURE_BRIEF.md +35 -0
- package/specs/quiver-v26-0121-smoke-hardening/slices/slice-06-plan-graph-scope-performance/EXECUTION_BRIEF.md +53 -0
- package/specs/quiver-v26-0121-smoke-hardening/slices/slice-06-plan-graph-scope-performance/slice.json +82 -0
- package/specs/quiver-v26-0121-smoke-hardening/slices/slice-07-smoke-release-readiness/CLOSURE_BRIEF.md +35 -0
- package/specs/quiver-v26-0121-smoke-hardening/slices/slice-07-smoke-release-readiness/EXECUTION_BRIEF.md +55 -0
- package/specs/quiver-v26-0121-smoke-hardening/slices/slice-07-smoke-release-readiness/slice.json +92 -0
- package/src/create-quiver/commands/ai.js +577 -27
- package/src/create-quiver/commands/flow.js +6 -5
- package/src/create-quiver/commands/graph.js +6 -4
- package/src/create-quiver/commands/plan.js +3 -3
- package/src/create-quiver/index.js +328 -12
- package/src/create-quiver/lib/actionable-error.js +27 -0
- package/src/create-quiver/lib/agent-profiles.js +1 -1
- package/src/create-quiver/lib/ai/context-packs.js +4 -0
- package/src/create-quiver/lib/ai/execution-plan.js +7 -1
- package/src/create-quiver/lib/ai/executor.js +270 -20
- package/src/create-quiver/lib/ai/export-state.js +534 -0
- package/src/create-quiver/lib/ai/github.js +83 -0
- package/src/create-quiver/lib/ai/onboarding-template.js +215 -2
- package/src/create-quiver/lib/ai/plan-review.js +5 -2
- package/src/create-quiver/lib/ai/providers.js +4 -3
- package/src/create-quiver/lib/ai/run-state.js +414 -0
- package/src/create-quiver/lib/ai/spec-generator.js +12 -0
- package/src/create-quiver/lib/ai/spec-templates.js +78 -9
- package/src/create-quiver/lib/approvals.js +22 -3
- package/src/create-quiver/lib/demo.js +189 -14
- package/src/create-quiver/lib/doctor.js +75 -0
- package/src/create-quiver/lib/handoff.js +81 -12
- package/src/create-quiver/lib/init-docs.js +24 -6
- package/src/create-quiver/lib/init-layout.js +8 -0
- package/src/create-quiver/lib/json.js +53 -3
- package/src/create-quiver/lib/readiness.js +18 -3
- package/src/create-quiver/lib/scope.js +50 -7
- package/src/create-quiver/lib/slice-graph.js +138 -38
- package/src/create-quiver/lib/slice.js +6 -1
- package/src/create-quiver/lib/spec-worktrees.js +16 -2
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
# Quiver v25 - AI-First Lifecycle Orchestrator
|
|
2
|
+
|
|
3
|
+
**Date:** 2026-05-22
|
|
4
|
+
**Status:** In progress
|
|
5
|
+
|
|
6
|
+
Slice numbering resets here. This spec intentionally starts at `slice-00`.
|
|
7
|
+
|
|
8
|
+
## Problem
|
|
9
|
+
|
|
10
|
+
Quiver already has guided AI workflow commands, planner drafts, approvals, spec creation, executor prompts, delegated execution modes, worktrees, PR support, evidence capture, and dogfooding hardening. Real use still shows a larger product gap: the ideal workflow is not yet experienced as one durable, phase-gated, AI-first lifecycle that starts from a natural-language requirement and carries the work through onboarding, approvals, specs, slices, execution, commits, PR, merge cleanup, and project context documentation.
|
|
11
|
+
|
|
12
|
+
The most important gap is not only execution. It is that Quiver must own the state of the workflow so a human and multiple agents do not rely on chat memory, pasted prompts, or manual reconstruction of context.
|
|
13
|
+
|
|
14
|
+
## Objective
|
|
15
|
+
|
|
16
|
+
Turn Quiver into a production-ready AI-first lifecycle orchestrator for WDD + SDD:
|
|
17
|
+
|
|
18
|
+
- prepare project onboarding documentation with AI for new and existing projects;
|
|
19
|
+
- run planner and executor flows through explicit human approval gates;
|
|
20
|
+
- persist state, approvals, prompts, versions, logs, and evidence under `.quiver/`;
|
|
21
|
+
- generate specs, slices, handoffs, execution plans, and PR body from approved plans;
|
|
22
|
+
- execute slices with minimal context and controlled write scope;
|
|
23
|
+
- support worktree-per-spec, one commit per slice, PR creation, post-merge cleanup, validation, and migration;
|
|
24
|
+
- keep command behavior clear across `npx create-quiver`, local `quiver`, and generated `quiver:*` scripts.
|
|
25
|
+
|
|
26
|
+
## Context
|
|
27
|
+
|
|
28
|
+
This spec is based on approved acceptance criteria and a production-readiness review performed during Quiver dogfooding. It extends the work already delivered by:
|
|
29
|
+
|
|
30
|
+
- v20 AI CLI Orchestration;
|
|
31
|
+
- v21 AI-First Layout;
|
|
32
|
+
- v22 Guided AI Workflow;
|
|
33
|
+
- v23 Guided Flow Productization;
|
|
34
|
+
- v24 DX Onboarding Hardening.
|
|
35
|
+
|
|
36
|
+
The spec does not assume that every AI provider CLI behaves the same. It requires adapter contracts, prompt-only mode, dry-runs, phase locks, and safe persistence before deeper automation.
|
|
37
|
+
|
|
38
|
+
## Core Decisions
|
|
39
|
+
|
|
40
|
+
- `npx create-quiver` remains the canonical bootstrap command.
|
|
41
|
+
- `quiver` remains a local installed alias to the same CLI behavior, not a replacement for bootstrap.
|
|
42
|
+
- Generated `quiver:*` npm scripts remain the repeatable project workflow surface.
|
|
43
|
+
- `ai` is the canonical command namespace. `ia` may be added only as an alias if it does not increase ambiguity.
|
|
44
|
+
- `slice-00` is mandatory for every generated spec and must publish the planning package before implementation starts.
|
|
45
|
+
- State that drives execution lives under `.quiver/`; versionable delivery artifacts live under `specs/<spec-slug>/` and project docs under `docs/`.
|
|
46
|
+
- Agent profiles must not store API keys, tokens, or credentials.
|
|
47
|
+
- Documentation generated by AI must never silently overwrite human content.
|
|
48
|
+
- Automatic agent execution must be optional; prompt-only mode must remain available.
|
|
49
|
+
- Human approval gates are part of the product contract and cannot be bypassed silently.
|
|
50
|
+
|
|
51
|
+
## Scope
|
|
52
|
+
|
|
53
|
+
### Included
|
|
54
|
+
|
|
55
|
+
- CLI contract and compatibility across `create-quiver`, local `quiver`, and generated scripts.
|
|
56
|
+
- Strict run state machine with phase validation, resume/status, approvals, and locks.
|
|
57
|
+
- Safe AI-assisted onboarding docs for new, existing, and older Quiver projects.
|
|
58
|
+
- Agent profiles and provider CLI adapters for planner, executor, reviewer, and doctor roles.
|
|
59
|
+
- Approval gates for acceptance criteria, technical plan, production review, spec generation, and execution.
|
|
60
|
+
- Spec, slice, handoff, PR body, evidence, command log, and execution-plan generation.
|
|
61
|
+
- Slice dependency planning, execution waves, parallel-safety checks, and file conflict checks.
|
|
62
|
+
- Controlled slice execution with minimal context, allowed write paths, closure updates, evidence, and one commit per slice.
|
|
63
|
+
- Worktree-per-spec lifecycle, GitHub CLI preflight, SSH alias guidance, PR creation, and post-merge cleanup.
|
|
64
|
+
- Actionable errors, dry-run behavior, redaction, fixture coverage, version checks, migration, export, and visual/dashboard-friendly output.
|
|
65
|
+
|
|
66
|
+
### Excluded
|
|
67
|
+
|
|
68
|
+
- Building a large web IDE into the core package.
|
|
69
|
+
- Silent installation of AI provider CLIs, GitHub credentials, SSH keys, or secrets.
|
|
70
|
+
- Storing provider credentials in `.quiver/agents/profiles.json`.
|
|
71
|
+
- Automatically merging PRs.
|
|
72
|
+
- Replacing Git, GitHub CLI, npm, or provider CLIs.
|
|
73
|
+
- Provider API billing, pricing, or account management.
|
|
74
|
+
- Shipping a package release as part of this spec.
|
|
75
|
+
|
|
76
|
+
## Acceptance Criteria
|
|
77
|
+
|
|
78
|
+
### Project onboarding
|
|
79
|
+
|
|
80
|
+
1. Given a new project without Quiver docs, when AI onboarding generation runs, then Quiver creates the base docs and fills what it can infer from stack, scripts, and structure.
|
|
81
|
+
2. Given an existing project with partial or missing docs, when AI onboarding generation runs, then Quiver updates docs such as `docs/CONTEXTO.md`, `docs/WORKFLOW.md`, `docs/ARCHITECTURE.md`, `docs/STATUS.md`, `docs/INDEX.md`, `docs/AI_CONTEXT.md`, and `docs/PROJECT_MAP.md` without deleting useful human content.
|
|
82
|
+
3. Given Quiver cannot infer a project rule, when docs are generated, then the statement is marked as `TODO`, `Assumption`, or `Pending confirmation`.
|
|
83
|
+
4. Given onboarding generation runs with `--dry-run`, then no files are changed and Quiver reports proposed creates, updates, diffs, assumptions, and risks.
|
|
84
|
+
5. Given onboarding generation writes docs, then Quiver stores a snapshot of touched files under `.quiver/runs/<run-id>/snapshots/`.
|
|
85
|
+
6. Given generated docs conflict with existing code, scripts, or docs, then Quiver reports the conflict and does not silently resolve it.
|
|
86
|
+
|
|
87
|
+
### AI-first planner flow
|
|
88
|
+
|
|
89
|
+
7. Given a natural-language requirement, when `ai spec create` starts, then Quiver creates a run and stores the original requirement.
|
|
90
|
+
8. Given a planner profile exists, when the planner phase runs, then Quiver invokes or prints the planner prompt with minimum required context.
|
|
91
|
+
9. Given the planner completes acceptance criteria, then Quiver stores a versioned draft for human review.
|
|
92
|
+
10. Given criteria are not approved, when the user requests a revision, then Quiver stores a new version and does not advance phase.
|
|
93
|
+
11. Given criteria are approved, when the human approves a concrete version, then Quiver unlocks technical-plan generation.
|
|
94
|
+
12. Given the technical plan is generated, then Quiver stores a versioned draft for review.
|
|
95
|
+
13. Given the plan is not approved, when the user requests a revision, then Quiver stores a new version and does not create specs or slices.
|
|
96
|
+
14. Given the plan is approved, when spec generation runs, then Quiver generates the versionable planning artifacts.
|
|
97
|
+
|
|
98
|
+
### State, phases, and locks
|
|
99
|
+
|
|
100
|
+
15. Given a run exists, when `ai status` runs, then Quiver reports run id, current phase, approved versions, next allowed command, blockers, and artifact locations.
|
|
101
|
+
16. Given a run is interrupted, when `ai resume` runs, then Quiver resumes from the last valid phase without chat memory.
|
|
102
|
+
17. Given a command belongs to a future phase, when it runs early, then Quiver blocks it and prints the valid next command.
|
|
103
|
+
18. Given a run or slice is already locked, when another process tries to mutate it, then Quiver blocks the operation or explains safe lock recovery.
|
|
104
|
+
19. Given a stale lock exists, when lock recovery is requested, then Quiver shows lock metadata before removing it.
|
|
105
|
+
|
|
106
|
+
### Specs, slices, and handoffs
|
|
107
|
+
|
|
108
|
+
20. Given an approved plan, when spec generation runs, then Quiver creates `SPEC.md`, `STATUS.md`, `EVIDENCE_REPORT.md`, `EXECUTION_PLAN.md`, `pr.md`, and slice folders.
|
|
109
|
+
21. Given a spec is generated, then `slice-00` is always present and is the only slice allowed to publish the planning package before implementation.
|
|
110
|
+
22. Given each slice is generated, then it has `slice.json`, `EXECUTION_BRIEF.md`, and `CLOSURE_BRIEF.md`.
|
|
111
|
+
23. Given slices have dependencies, when validation runs, then Quiver detects missing references, cycles, invalid formats, and unsafe parallel execution.
|
|
112
|
+
24. Given a slice declares file scope, when it closes, then Quiver validates that modified files are within allowed write paths or reports risk.
|
|
113
|
+
|
|
114
|
+
### Slice execution
|
|
115
|
+
|
|
116
|
+
25. Given a ready slice, when execution starts, then Quiver verifies the correct worktree, clean working tree, valid dependency state, and agent profile.
|
|
117
|
+
26. Given an executor prompt is produced, then it contains only slice objective, required excerpts, declared files, constraints, criteria, output contract, and validation commands.
|
|
118
|
+
27. Given a slice completes, then Quiver updates `CLOSURE_BRIEF.md`, evidence, command log, status, and decision history.
|
|
119
|
+
28. Given a slice passed validation, when commit is requested, then Quiver creates one commit associated with that slice and refuses mixed unrelated changes.
|
|
120
|
+
|
|
121
|
+
### Worktrees, PRs, and GitHub
|
|
122
|
+
|
|
123
|
+
29. Given a spec starts execution, then Quiver can create or validate a dedicated worktree and branch.
|
|
124
|
+
30. Given a worktree, branch, or PR already exists, then Quiver reports the current state and offers safe recovery instead of duplicating it.
|
|
125
|
+
31. Given PR creation runs, then Quiver validates `gh`, authentication, remote, branch, SSH alias guidance, PR body, and open slices before creating the PR.
|
|
126
|
+
32. Given a PR was merged, when spec close runs, then Quiver guides worktree removal, local pull, and final validation.
|
|
127
|
+
|
|
128
|
+
### CLI, validation, and release safety
|
|
129
|
+
|
|
130
|
+
33. Given `npx create-quiver --version` or local `quiver --version` runs, then it prints the installed version without error.
|
|
131
|
+
34. Given inspection commands run, then `status`, `specs list`, `slices list`, `inspect`, and `trace report` provide actionable state.
|
|
132
|
+
35. Given export runs, then Quiver emits specs and slices as JSON and Markdown suitable for dashboards and agents.
|
|
133
|
+
36. Given a command fails, then the error states what failed, why it matters, how to fix it, and the next command.
|
|
134
|
+
37. Given a write-capable command supports `--dry-run`, then it does not modify files and shows planned changes.
|
|
135
|
+
38. Given logs or evidence contain likely secrets, then Quiver redacts common token, key, auth header, npm, GitHub, and environment-value patterns before writing.
|
|
136
|
+
39. Given fixtures run, then they cover new project, existing project, older Quiver project, monorepo, no git, dirty git, no `gh`, path with spaces, docs contradiction, and missing agent profile.
|
|
137
|
+
40. Given release validation runs, then package smoke verifies local version, npm-visible version when network is available, installed version, changelog, tag expectations, and tarball safety.
|
|
138
|
+
|
|
139
|
+
## Technical Plan
|
|
140
|
+
|
|
141
|
+
Implement the lifecycle in small, independently reviewable slices:
|
|
142
|
+
|
|
143
|
+
1. Publish the v25 documentation foundation.
|
|
144
|
+
2. Stabilize command contracts before adding more behavior.
|
|
145
|
+
3. Add run state, phase gates, approvals, and locks.
|
|
146
|
+
4. Add safe onboarding doc generation.
|
|
147
|
+
5. Add agent profiles and adapter contracts.
|
|
148
|
+
6. Add approval gates for criteria and technical plans.
|
|
149
|
+
7. Generate specs, slices, handoffs, and PR body from approved plans.
|
|
150
|
+
8. Generate execution plans and detect parallel safety.
|
|
151
|
+
9. Execute slices with minimal context, scope validation, closure, and evidence.
|
|
152
|
+
10. Add worktree, commit, PR, and close lifecycle.
|
|
153
|
+
11. Harden errors, fixtures, redaction, and cross-platform validation.
|
|
154
|
+
12. Add export, visualization-friendly outputs, and migration support.
|
|
155
|
+
|
|
156
|
+
## Run State Model
|
|
157
|
+
|
|
158
|
+
The minimum phase model is:
|
|
159
|
+
|
|
160
|
+
```text
|
|
161
|
+
created
|
|
162
|
+
→ onboarding-ready
|
|
163
|
+
→ acceptance-draft
|
|
164
|
+
→ acceptance-approved
|
|
165
|
+
→ technical-plan-draft
|
|
166
|
+
→ technical-plan-reviewed
|
|
167
|
+
→ technical-plan-approved
|
|
168
|
+
→ spec-generated
|
|
169
|
+
→ execution-plan-generated
|
|
170
|
+
→ slice-executing
|
|
171
|
+
→ pr-ready
|
|
172
|
+
→ closed
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
Every mutating command must validate that it is allowed in the current phase.
|
|
176
|
+
|
|
177
|
+
## Artifact Model
|
|
178
|
+
|
|
179
|
+
Runtime state:
|
|
180
|
+
|
|
181
|
+
```text
|
|
182
|
+
.quiver/runs/<run-id>/
|
|
183
|
+
state.json
|
|
184
|
+
approvals.json
|
|
185
|
+
requirement.md
|
|
186
|
+
drafts/
|
|
187
|
+
prompts/
|
|
188
|
+
logs/
|
|
189
|
+
snapshots/
|
|
190
|
+
decisions.md
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
Versionable artifacts:
|
|
194
|
+
|
|
195
|
+
```text
|
|
196
|
+
specs/<spec-slug>/
|
|
197
|
+
SPEC.md
|
|
198
|
+
STATUS.md
|
|
199
|
+
EVIDENCE_REPORT.md
|
|
200
|
+
EXECUTION_PLAN.md
|
|
201
|
+
pr.md
|
|
202
|
+
slices/<slice-id>/
|
|
203
|
+
slice.json
|
|
204
|
+
EXECUTION_BRIEF.md
|
|
205
|
+
CLOSURE_BRIEF.md
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
## Slicing Strategy
|
|
209
|
+
|
|
210
|
+
`slice-00` lands first and only publishes the documentation package. Implementation starts with command/state contracts because every later feature depends on predictable commands, persistent state, and phase safety. Automatic provider execution is deliberately placed after prompt-only adapters and approval gates so Quiver can deliver value without requiring provider credentials.
|
|
211
|
+
|
|
212
|
+
## Slice Roadmap
|
|
213
|
+
|
|
214
|
+
| Slice | Title | Status | Dependencies |
|
|
215
|
+
|---|---|---|---|
|
|
216
|
+
| slice-00 | Spec foundation and source-of-truth sync | Completed | none |
|
|
217
|
+
| slice-01 | CLI contract and compatibility | Completed | slice-00 |
|
|
218
|
+
| slice-02 | Run state, phase gates, and locks | Completed | slice-01 |
|
|
219
|
+
| slice-03 | Safe AI onboarding documentation | Completed | slice-02 |
|
|
220
|
+
| slice-04 | Agent profiles and provider adapters | Completed | slice-02 |
|
|
221
|
+
| slice-05 | Approval gates and planner iterations | Completed | slice-02, slice-04 |
|
|
222
|
+
| slice-06 | Spec, slice, handoff, and PR body generation | Completed | slice-05 |
|
|
223
|
+
| slice-07 | Slice execution planning and parallel safety | Completed | slice-06 |
|
|
224
|
+
| slice-08 | Controlled slice execution and evidence | Planned | slice-07 |
|
|
225
|
+
| slice-09 | Git worktree, commit, PR, and close lifecycle | Planned | slice-08 |
|
|
226
|
+
| slice-10 | Validation, actionable errors, redaction, and fixtures | Planned | slice-01, slice-02, slice-08 |
|
|
227
|
+
| slice-11 | Export, dashboard-friendly output, and migration | Planned | slice-07, slice-10 |
|
|
228
|
+
|
|
229
|
+
## Risks
|
|
230
|
+
|
|
231
|
+
- Provider CLI behavior can drift across tools and versions.
|
|
232
|
+
- AI-generated documentation can overstate confidence.
|
|
233
|
+
- Concurrent agents can corrupt run state without locks.
|
|
234
|
+
- Worktrees and commits can mix unrelated changes if scope is not enforced.
|
|
235
|
+
- Secret redaction is best-effort and cannot replace careful user handling.
|
|
236
|
+
- A large command surface can hurt first-use clarity unless `flow`, `status`, and error messages stay focused.
|
|
237
|
+
|
|
238
|
+
## Open Questions
|
|
239
|
+
|
|
240
|
+
- Whether `ia` should ship as an alias for `ai`, or remain documentation-only for Spanish examples.
|
|
241
|
+
- Whether automatic provider execution should be enabled in the first implementation pass or remain prompt-only until dogfooded.
|
|
242
|
+
- Whether a static HTML export is enough for visualization, or a companion package will be needed later.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Status - Quiver v25 AI-First Lifecycle Orchestrator
|
|
2
|
+
|
|
3
|
+
**Overall status:** Completed and published in `create-quiver@0.12.0`
|
|
4
|
+
**Created:** 2026-05-22
|
|
5
|
+
**Current slice:** slice-11 completed
|
|
6
|
+
|
|
7
|
+
## Summary
|
|
8
|
+
|
|
9
|
+
The v25 implementation slices are complete. The CLI contract, run state, safe onboarding docs, provider profile adapter contract, planner approval gates, generated spec/slice artifact contract, execution planning safety, controlled slice execution closure, Git/worktree/PR lifecycle hardening, validation fixture hardening, lifecycle export, dashboard-friendly state, and migration dry-run support are implemented.
|
|
10
|
+
|
|
11
|
+
## Slice Status
|
|
12
|
+
|
|
13
|
+
| Slice | Status | Notes |
|
|
14
|
+
|---|---|---|
|
|
15
|
+
| slice-00-spec-foundation | Completed | Planning artifacts created. |
|
|
16
|
+
| slice-01-cli-contract-compatibility | Completed | Top-level version handling, CLI contract tests, and docs added. |
|
|
17
|
+
| slice-02-run-state-phase-locks | Completed | Persistent runs, status/resume, phase helpers, approval metadata, and locks added. |
|
|
18
|
+
| slice-03-safe-ai-onboarding-docs | Completed | Docs-only context prep now supports broader onboarding docs, dry-run diffs, snapshots, human-content preservation, and contradiction reporting. |
|
|
19
|
+
| slice-04-agent-profiles-adapters | Completed | Doctor profile, prompt-only output, redacted provider output, focused tests, and docs added. |
|
|
20
|
+
| slice-05-approval-gates | Completed | Versioned drafts, `ai revise`, explicit `--version` approval, technical-plan review gate, flow guidance, docs, and tests added. |
|
|
21
|
+
| slice-06-spec-slice-generator | Completed | Generated slice JSON and execution briefs now include read paths, allowed write paths, validation hints, dependency data, and parallel safety. |
|
|
22
|
+
| slice-07-slice-execution-planner | Completed | Execution waves now use generated allowed write paths for conflicts and expose scope metadata in JSON. |
|
|
23
|
+
| slice-08-controlled-slice-execution | Completed | Direct slice execution now validates branch/worktree, scope, writes closure/evidence/status artifacts, and redacts logs. |
|
|
24
|
+
| slice-09-git-worktree-pr-lifecycle | Completed | Spec worktree dry-run, commit cleanliness, PR alias/body/open-slice preflight, and close guidance hardened. |
|
|
25
|
+
| slice-10-validation-errors-fixtures | Completed | Actionable errors, doctor environment warnings, fixture matrix, and smoke coverage added. |
|
|
26
|
+
| slice-11-export-dashboard-migration | Completed | AI inspection/export/list/trace surfaces, dashboard-friendly state, migration dry-run, docs, parser hardening, and tests added. |
|
|
27
|
+
|
|
28
|
+
## Current Blockers
|
|
29
|
+
|
|
30
|
+
- None for v25.
|
|
31
|
+
- Post-release smoke findings were promoted to `specs/quiver-v26-0121-smoke-hardening/`.
|
|
32
|
+
|
|
33
|
+
## Next Step
|
|
34
|
+
|
|
35
|
+
Use v26 for the `0.12.1` smoke hardening hotfix before using the published package for the next real dogfooding project.
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
## Title
|
|
2
|
+
Quiver v25 - AI-First Lifecycle Orchestrator
|
|
3
|
+
|
|
4
|
+
## Summary
|
|
5
|
+
|
|
6
|
+
- Implements the Quiver v25 AI-first lifecycle orchestrator across CLI, state, planner approval gates, generated artifacts, controlled execution, worktrees/PRs, validation hardening, export, and migration dry-runs.
|
|
7
|
+
- Adds durable `.quiver/` run state, agent profiles, prompt-only/provider adapter flows, phase-gated planning, reviewed technical-plan approval, generated specs/slices/handoffs/PR body, and one-slice execution closure.
|
|
8
|
+
- Adds dashboard/agent-friendly lifecycle inspection and export commands for specs, slices, runs, agents, dependencies, blockers, progress, and migration state.
|
|
9
|
+
|
|
10
|
+
## Scope
|
|
11
|
+
|
|
12
|
+
- Product implementation for all v25 slices from `slice-01` through `slice-11`.
|
|
13
|
+
- Documentation, templates, tests, smoke coverage, CLI help, generated npm scripts, and spec evidence.
|
|
14
|
+
- No package release is included.
|
|
15
|
+
|
|
16
|
+
## Files
|
|
17
|
+
|
|
18
|
+
- `README.md`
|
|
19
|
+
- `README_FOR_AI.md`
|
|
20
|
+
- `docs/**`
|
|
21
|
+
- `package.json`
|
|
22
|
+
- `scripts/ci/**`
|
|
23
|
+
- `src/create-quiver/**`
|
|
24
|
+
- `specs/quiver-v25-ai-first-lifecycle-orchestrator/**`
|
|
25
|
+
- `tests/**`
|
|
26
|
+
|
|
27
|
+
## How to Test (DETAILED - REQUIRED)
|
|
28
|
+
|
|
29
|
+
### Required Environment
|
|
30
|
+
|
|
31
|
+
- Node.js and npm available.
|
|
32
|
+
- Git checkout with the v25 branch.
|
|
33
|
+
- No provider CLI credentials are required for dry-run/prompt-only validations.
|
|
34
|
+
|
|
35
|
+
### Worktree Access
|
|
36
|
+
|
|
37
|
+
- Run commands from the repository root.
|
|
38
|
+
- This PR does not require a running app server.
|
|
39
|
+
|
|
40
|
+
### Run the Project
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
node --test tests/**/*.test.js
|
|
44
|
+
npm run smoke:create-quiver
|
|
45
|
+
npm run smoke:guided-workflow
|
|
46
|
+
npm run smoke:doctor-fixtures
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### Use Cases
|
|
50
|
+
|
|
51
|
+
- Create and inspect AI lifecycle runs with `ai run create`, `ai status`, and `ai resume`.
|
|
52
|
+
- Prepare docs-only context with `ai prepare-context --dry-run`.
|
|
53
|
+
- Generate planner drafts, revise them, approve concrete versions, and create specs only after reviewed approval.
|
|
54
|
+
- Execute or print slice prompts with `ai prompt-slice`, `ai execute-slice`, and `ai execute-plan`.
|
|
55
|
+
- Inspect/export lifecycle state with `ai inspect`, `ai export`, `ai specs list`, `ai slices list`, and `ai trace report`.
|
|
56
|
+
|
|
57
|
+
### Technical Verification
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
git diff --check
|
|
61
|
+
node -e "JSON.parse(require('fs').readFileSync('package.json','utf8')); JSON.parse(require('fs').readFileSync('specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-11-export-dashboard-migration/slice.json','utf8'));"
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## Evidence
|
|
65
|
+
|
|
66
|
+
- See `specs/quiver-v25-ai-first-lifecycle-orchestrator/EVIDENCE_REPORT.md`.
|
|
67
|
+
|
|
68
|
+
## Rollback
|
|
69
|
+
|
|
70
|
+
- Revert the v25 slice commits in reverse order.
|
|
71
|
+
- No migration or PR command writes unless invoked explicitly; dry-runs remain available for recovery.
|
|
72
|
+
|
|
73
|
+
## Risks / Notes
|
|
74
|
+
|
|
75
|
+
- Source-of-truth docs should not claim npm publication unless publication has been verified.
|
|
76
|
+
- `CHANGELOG.md`/`ROADMAP.md` still need release-version sync before npm publishing.
|
|
77
|
+
- The lifecycle export JSON is `schema_version: 1`; dashboard consumers should pin expectations.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# CLOSURE BRIEF - slice-00: Spec foundation and source-of-truth sync
|
|
2
|
+
|
|
3
|
+
## Summary of Work
|
|
4
|
+
|
|
5
|
+
- Created the v25 planning package.
|
|
6
|
+
- Added spec, status, evidence report, execution plan, PR body, slice definitions, and handoffs.
|
|
7
|
+
- Synced source-of-truth planning docs with v25 as planned work.
|
|
8
|
+
|
|
9
|
+
## Validation Against Acceptance Criteria
|
|
10
|
+
|
|
11
|
+
- [x] Spec folder created.
|
|
12
|
+
- [x] `slice-00` created.
|
|
13
|
+
- [x] Every slice has `slice.json`, `EXECUTION_BRIEF.md`, and `CLOSURE_BRIEF.md`.
|
|
14
|
+
- [x] JSON validation captured.
|
|
15
|
+
- [x] `git diff --check` captured.
|
|
16
|
+
- [x] No product code modified.
|
|
17
|
+
|
|
18
|
+
## Relevant Changes
|
|
19
|
+
|
|
20
|
+
- New folder: `specs/quiver-v25-ai-first-lifecycle-orchestrator/`.
|
|
21
|
+
- Source-of-truth planning docs updated.
|
|
22
|
+
|
|
23
|
+
## Pending
|
|
24
|
+
|
|
25
|
+
- Execute implementation slices from `slice-01` onward.
|
|
26
|
+
- Implement `slice-01` onward.
|
|
27
|
+
|
|
28
|
+
## Remaining Risks
|
|
29
|
+
|
|
30
|
+
- Release status wording for v24/v0.11-v0.12 should be verified before claiming npm publication in source docs.
|
|
31
|
+
|
|
32
|
+
## Future Recommendations
|
|
33
|
+
|
|
34
|
+
- Execute slices according to `EXECUTION_PLAN.md`.
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# EXECUTION BRIEF - slice-00: Spec foundation and source-of-truth sync
|
|
2
|
+
|
|
3
|
+
## Context
|
|
4
|
+
|
|
5
|
+
This slice publishes the v25 planning package generated from approved acceptance criteria and a production-readiness review.
|
|
6
|
+
|
|
7
|
+
## Objective
|
|
8
|
+
|
|
9
|
+
Create the durable spec foundation for Quiver v25 without changing product behavior.
|
|
10
|
+
|
|
11
|
+
## Scope
|
|
12
|
+
|
|
13
|
+
- Create `SPEC.md`, `STATUS.md`, `EVIDENCE_REPORT.md`, `EXECUTION_PLAN.md`, and `pr.md`.
|
|
14
|
+
- Create every slice folder with `slice.json`, `EXECUTION_BRIEF.md`, and `CLOSURE_BRIEF.md`.
|
|
15
|
+
- Update `README_FOR_AI.md` and `ROADMAP.md` so source-of-truth docs mention v25 as planned work.
|
|
16
|
+
|
|
17
|
+
## Acceptance Criteria
|
|
18
|
+
|
|
19
|
+
- Spec folder exists.
|
|
20
|
+
- Mandatory `slice-00` exists.
|
|
21
|
+
- Every slice has required handoff files.
|
|
22
|
+
- Every `slice.json` parses.
|
|
23
|
+
- No product code is modified.
|
|
24
|
+
|
|
25
|
+
## Technical Plan Summary
|
|
26
|
+
|
|
27
|
+
Write documentation only, following the existing `specs/quiver-v24-dx-onboarding-hardening/` structure.
|
|
28
|
+
|
|
29
|
+
## Suggested Execution Steps
|
|
30
|
+
|
|
31
|
+
1. Create the spec folder and top-level spec files.
|
|
32
|
+
2. Create all slice folders and handoffs.
|
|
33
|
+
3. Sync source-of-truth planning docs.
|
|
34
|
+
4. Validate JSON and whitespace.
|
|
35
|
+
|
|
36
|
+
## Restrictions
|
|
37
|
+
|
|
38
|
+
- Do not edit CLI source.
|
|
39
|
+
- Do not modify tests.
|
|
40
|
+
- Do not publish or open a PR from this slice.
|
|
41
|
+
|
|
42
|
+
## Risks
|
|
43
|
+
|
|
44
|
+
- Source-of-truth docs could accidentally imply v25 is implemented. Keep wording as planned only.
|
|
45
|
+
|
|
46
|
+
## Completion Checklist
|
|
47
|
+
|
|
48
|
+
- [x] Spec files created.
|
|
49
|
+
- [x] Slice handoffs created.
|
|
50
|
+
- [x] Source-of-truth docs synced.
|
|
51
|
+
- [x] JSON parse validation captured.
|
|
52
|
+
- [x] `git diff --check` captured.
|
package/specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-00-spec-foundation/slice.json
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slice_id": "slice-00-spec-foundation",
|
|
3
|
+
"ticket": "QUIVER-25-00",
|
|
4
|
+
"type": "docs",
|
|
5
|
+
"title": "Spec foundation and source-of-truth sync",
|
|
6
|
+
"objective": "Create the documentation foundation for the AI-first lifecycle orchestrator spec before product implementation starts.",
|
|
7
|
+
"description": "Publish the v25 spec, status, evidence report, execution plan, PR body, slice definitions, handoffs, and source-of-truth planning references.",
|
|
8
|
+
"git": {
|
|
9
|
+
"branch_type": "feature",
|
|
10
|
+
"base_branch": "main",
|
|
11
|
+
"branch_slug": "ai-first-lifecycle-orchestrator-spec-foundation",
|
|
12
|
+
"branch_name": "feature/QUIVER-25-00-ai-first-lifecycle-orchestrator-spec-foundation"
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"README_FOR_AI.md",
|
|
16
|
+
"ROADMAP.md",
|
|
17
|
+
"specs/quiver-v25-ai-first-lifecycle-orchestrator/**"
|
|
18
|
+
],
|
|
19
|
+
"depends_on": [],
|
|
20
|
+
"parallel_safe": "no",
|
|
21
|
+
"parallel_safe_reason": "slice-00 must land before every implementation slice.",
|
|
22
|
+
"must": [
|
|
23
|
+
"Create SPEC.md, STATUS.md, EVIDENCE_REPORT.md, EXECUTION_PLAN.md, and pr.md.",
|
|
24
|
+
"Create slice.json, EXECUTION_BRIEF.md, and CLOSURE_BRIEF.md for every slice.",
|
|
25
|
+
"Sync README_FOR_AI.md and ROADMAP.md with v25 as planned work only.",
|
|
26
|
+
"Avoid product code changes."
|
|
27
|
+
],
|
|
28
|
+
"not_included": [
|
|
29
|
+
"Implementing CLI behavior.",
|
|
30
|
+
"Changing package behavior.",
|
|
31
|
+
"Running AI providers.",
|
|
32
|
+
"Publishing a package.",
|
|
33
|
+
"Opening a PR."
|
|
34
|
+
],
|
|
35
|
+
"acceptance": [
|
|
36
|
+
"Spec folder exists under specs/quiver-v25-ai-first-lifecycle-orchestrator.",
|
|
37
|
+
"Mandatory slice-00 exists.",
|
|
38
|
+
"Every slice has slice.json, EXECUTION_BRIEF.md, and CLOSURE_BRIEF.md.",
|
|
39
|
+
"Every slice.json parses successfully.",
|
|
40
|
+
"README_FOR_AI.md and ROADMAP.md mention v25 as planned, not implemented.",
|
|
41
|
+
"No product code is modified."
|
|
42
|
+
],
|
|
43
|
+
"tests": [
|
|
44
|
+
"git diff --check",
|
|
45
|
+
"find specs/quiver-v25-ai-first-lifecycle-orchestrator -name \"slice.json\" -print -exec node -e \"JSON.parse(require('fs').readFileSync(process.argv[1], 'utf8'))\" {} \\;"
|
|
46
|
+
],
|
|
47
|
+
"estimated_hours": 2,
|
|
48
|
+
"status": "completed",
|
|
49
|
+
"blocked_reason": null,
|
|
50
|
+
"actual_hours": 2,
|
|
51
|
+
"completed_at": "2026-05-22T00:00:00-0300"
|
|
52
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# CLOSURE BRIEF - slice-01: CLI contract and compatibility
|
|
2
|
+
|
|
3
|
+
## Summary of Work
|
|
4
|
+
|
|
5
|
+
- Added top-level CLI version support for `--version` and `-V`.
|
|
6
|
+
- Preserved `ai approve --version <n>` as the planner draft-version option.
|
|
7
|
+
- Added CLI contract tests for version output and unsupported command guidance.
|
|
8
|
+
- Documented `npx create-quiver --version` in the README command table and generated commands template.
|
|
9
|
+
|
|
10
|
+
## Validation Against Acceptance Criteria
|
|
11
|
+
|
|
12
|
+
- [x] Version commands verified.
|
|
13
|
+
- [x] Alias behavior verified through shared binary entrypoint and package bin contract.
|
|
14
|
+
- [x] Unknown command behavior verified.
|
|
15
|
+
- [x] Docs updated.
|
|
16
|
+
- [x] Tests run.
|
|
17
|
+
|
|
18
|
+
## Relevant Changes
|
|
19
|
+
|
|
20
|
+
- `src/create-quiver/index.js`
|
|
21
|
+
- `tests/commands/cli-contract.test.js`
|
|
22
|
+
- `README.md`
|
|
23
|
+
- `docs/COMMANDS.md.template`
|
|
24
|
+
- `specs/quiver-v25-ai-first-lifecycle-orchestrator/slices/slice-01-cli-contract-compatibility/slice.json`
|
|
25
|
+
|
|
26
|
+
## Pending
|
|
27
|
+
|
|
28
|
+
- None.
|
|
29
|
+
|
|
30
|
+
## Remaining Risks
|
|
31
|
+
|
|
32
|
+
- The `quiver` alias itself is covered through package bin metadata and shared entrypoint behavior, not by installing a real local package binary during the test.
|
|
33
|
+
|
|
34
|
+
## Future Recommendations
|
|
35
|
+
|
|
36
|
+
- Keep top-level `--version` limited to the commandless case so `ai approve --version <n>` remains unambiguous.
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# EXECUTION BRIEF - slice-01: CLI contract and compatibility
|
|
2
|
+
|
|
3
|
+
## Context
|
|
4
|
+
|
|
5
|
+
Every later AI lifecycle feature depends on a clear command surface. This slice stabilizes command naming before state, approvals, agents, and execution are added.
|
|
6
|
+
|
|
7
|
+
## Objective
|
|
8
|
+
|
|
9
|
+
Make `create-quiver`, local `quiver`, generated `quiver:*` scripts, version reporting, and unknown-command errors consistent.
|
|
10
|
+
|
|
11
|
+
## Scope
|
|
12
|
+
|
|
13
|
+
- CLI routing and binary alias behavior.
|
|
14
|
+
- `--version` support.
|
|
15
|
+
- Documentation for canonical bootstrap vs local shortcut.
|
|
16
|
+
- Tests for command compatibility and ambiguity.
|
|
17
|
+
|
|
18
|
+
## Acceptance Criteria
|
|
19
|
+
|
|
20
|
+
- `npx create-quiver --version` works.
|
|
21
|
+
- Local `quiver --version` works when installed.
|
|
22
|
+
- Unknown commands fail clearly.
|
|
23
|
+
- Docs do not contradict `README_FOR_AI.md`.
|
|
24
|
+
- Generated scripts target supported commands.
|
|
25
|
+
|
|
26
|
+
## Technical Plan Summary
|
|
27
|
+
|
|
28
|
+
Audit CLI entrypoints, normalize version handling, harden unknown command routing, and update docs/tests.
|
|
29
|
+
|
|
30
|
+
## Suggested Execution Steps
|
|
31
|
+
|
|
32
|
+
1. Read current CLI entrypoint and command router.
|
|
33
|
+
2. Add/adjust version handling.
|
|
34
|
+
3. Verify alias behavior.
|
|
35
|
+
4. Update docs.
|
|
36
|
+
5. Add focused tests.
|
|
37
|
+
|
|
38
|
+
## Restrictions
|
|
39
|
+
|
|
40
|
+
- Do not add new AI workflow behavior in this slice.
|
|
41
|
+
- Do not change spec/slice generation behavior.
|
|
42
|
+
|
|
43
|
+
## Risks
|
|
44
|
+
|
|
45
|
+
- Changing routing may break legacy `npx create-quiver --name` usage.
|
|
46
|
+
|
|
47
|
+
## Completion Checklist
|
|
48
|
+
|
|
49
|
+
- [ ] Tests added or updated.
|
|
50
|
+
- [ ] Docs updated.
|
|
51
|
+
- [ ] Existing init behavior preserved.
|
|
52
|
+
- [ ] Evidence appended.
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slice_id": "slice-01-cli-contract-compatibility",
|
|
3
|
+
"ticket": "QUIVER-25-01",
|
|
4
|
+
"type": "feature",
|
|
5
|
+
"title": "CLI contract and compatibility",
|
|
6
|
+
"objective": "Make command naming, aliases, version reporting, and generated script behavior explicit and consistent.",
|
|
7
|
+
"description": "Define and implement the contract between canonical `npx create-quiver`, local `quiver`, and generated `quiver:*` scripts before adding more AI lifecycle commands.",
|
|
8
|
+
"git": {
|
|
9
|
+
"branch_type": "feature",
|
|
10
|
+
"base_branch": "main",
|
|
11
|
+
"branch_slug": "cli-contract-compatibility",
|
|
12
|
+
"branch_name": "feature/QUIVER-25-01-cli-contract-compatibility"
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"bin/**",
|
|
16
|
+
"package.json",
|
|
17
|
+
"src/create-quiver/**",
|
|
18
|
+
"docs/**",
|
|
19
|
+
"README.md",
|
|
20
|
+
"README_FOR_AI.md",
|
|
21
|
+
"tests/**"
|
|
22
|
+
],
|
|
23
|
+
"depends_on": [
|
|
24
|
+
"slice-00-spec-foundation"
|
|
25
|
+
],
|
|
26
|
+
"parallel_safe": "no",
|
|
27
|
+
"parallel_safe_reason": "Establishes shared CLI routing and naming contracts used by all later slices.",
|
|
28
|
+
"must": [
|
|
29
|
+
"Preserve `npx create-quiver` as the canonical bootstrap path.",
|
|
30
|
+
"Keep `quiver` as local alias behavior where installed.",
|
|
31
|
+
"Make `--version` work for both command surfaces.",
|
|
32
|
+
"Document whether `ia` is supported or intentionally not supported.",
|
|
33
|
+
"Ensure unknown commands fail with actionable guidance."
|
|
34
|
+
],
|
|
35
|
+
"not_included": [
|
|
36
|
+
"Run state persistence.",
|
|
37
|
+
"Agent execution.",
|
|
38
|
+
"Spec generation."
|
|
39
|
+
],
|
|
40
|
+
"acceptance": [
|
|
41
|
+
"`npx create-quiver --version` prints the installed version without error.",
|
|
42
|
+
"Local `quiver --version` prints the installed version when the binary alias is available.",
|
|
43
|
+
"Docs explain bootstrap vs local alias without contradiction.",
|
|
44
|
+
"Unknown commands are not treated as project names.",
|
|
45
|
+
"Generated scripts target supported command names."
|
|
46
|
+
],
|
|
47
|
+
"tests": [
|
|
48
|
+
"node --test tests/**/*.test.js",
|
|
49
|
+
"git diff --check"
|
|
50
|
+
],
|
|
51
|
+
"estimated_hours": 4,
|
|
52
|
+
"status": "completed",
|
|
53
|
+
"blocked_reason": null,
|
|
54
|
+
"actual_hours": 1,
|
|
55
|
+
"completed_at": "2026-05-22T00:00:00-0300"
|
|
56
|
+
}
|