create-quiver 0.9.0 → 0.10.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/README.md +312 -124
- package/README_FOR_AI.md +59 -45
- package/ROADMAP.md +12 -11
- package/docs/AI_ONBOARDING_PROMPT.md.template +120 -52
- package/docs/COMMANDS.md.template +41 -6
- package/docs/GITFLOW_PR_GUIDE.md.template +11 -0
- package/docs/STANDARD.md.template +1 -1
- package/docs/SUPPORT_MATRIX.md.template +4 -0
- package/docs/TROUBLESHOOTING.md.template +29 -1
- package/docs/WORKFLOW.md.template +1 -1
- package/package.json +6 -1
- package/package.template.json +11 -6
- package/scripts/check-pr-readiness.sh +1 -1
- package/scripts/check-scope.sh +0 -1
- package/scripts/check-slice-readiness.sh +3 -4
- package/scripts/init-docs.sh +55 -9
- package/specs/quiver-v19-self-install-dev-dep/EVIDENCE_REPORT.md +2 -2
- package/specs/quiver-v19-self-install-dev-dep/STATUS.md +4 -4
- package/specs/quiver-v19-self-install-dev-dep/slices/slice-01-auto-install-dev-dep/slice.json +4 -4
- package/specs/quiver-v20-ai-cli-orchestration/EVIDENCE_REPORT.md +23 -0
- package/specs/quiver-v20-ai-cli-orchestration/EXECUTION_PLAN.md +57 -0
- package/specs/quiver-v20-ai-cli-orchestration/SPEC.md +202 -0
- package/specs/quiver-v20-ai-cli-orchestration/STATUS.md +35 -0
- package/specs/quiver-v20-ai-cli-orchestration/pr.md +100 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-00-spec-foundation/CLOSURE_BRIEF.md +30 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-00-spec-foundation/EXECUTION_BRIEF.md +61 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-00-spec-foundation/slice.json +54 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-01-ai-provider-runner/CLOSURE_BRIEF.md +39 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-01-ai-provider-runner/EXECUTION_BRIEF.md +63 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-01-ai-provider-runner/slice.json +55 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-02-context-packs-token-budget/CLOSURE_BRIEF.md +40 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-02-context-packs-token-budget/EXECUTION_BRIEF.md +60 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-02-context-packs-token-budget/slice.json +54 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-03-ai-phase-gated-planner/CLOSURE_BRIEF.md +43 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-03-ai-phase-gated-planner/EXECUTION_BRIEF.md +62 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-03-ai-phase-gated-planner/slice.json +62 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-04-spec-slice-handoff-pr-generation/CLOSURE_BRIEF.md +36 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-04-spec-slice-handoff-pr-generation/EXECUTION_BRIEF.md +63 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-04-spec-slice-handoff-pr-generation/slice.json +59 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-05-execution-plan-parallel-worktrees/CLOSURE_BRIEF.md +32 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-05-execution-plan-parallel-worktrees/EXECUTION_BRIEF.md +61 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-05-execution-plan-parallel-worktrees/slice.json +59 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-06-ai-execute-slice-scope-enforcement/CLOSURE_BRIEF.md +36 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-06-ai-execute-slice-scope-enforcement/EXECUTION_BRIEF.md +64 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-06-ai-execute-slice-scope-enforcement/slice.json +65 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-07-github-pr-preflight/CLOSURE_BRIEF.md +36 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-07-github-pr-preflight/EXECUTION_BRIEF.md +66 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-07-github-pr-preflight/slice.json +63 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-08-docs-smokes-release-readiness/CLOSURE_BRIEF.md +35 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-08-docs-smokes-release-readiness/EXECUTION_BRIEF.md +64 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-08-docs-smokes-release-readiness/slice.json +77 -0
- package/specs/quiver-v21-ai-first-layout/EVIDENCE_REPORT.md +31 -0
- package/specs/quiver-v21-ai-first-layout/EXECUTION_PLAN.md +185 -0
- package/specs/quiver-v21-ai-first-layout/SPEC.md +212 -0
- package/specs/quiver-v21-ai-first-layout/STATUS.md +37 -0
- package/specs/quiver-v21-ai-first-layout/pr.md +110 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-00-spec-foundation/CLOSURE_BRIEF.md +30 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-00-spec-foundation/EXECUTION_BRIEF.md +63 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-00-spec-foundation/slice.json +45 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-01-init-profiles-dry-run/CLOSURE_BRIEF.md +31 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-01-init-profiles-dry-run/EXECUTION_BRIEF.md +59 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-01-init-profiles-dry-run/slice.json +57 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-02-internal-layout-template-resolver/CLOSURE_BRIEF.md +32 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-02-internal-layout-template-resolver/EXECUTION_BRIEF.md +60 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-02-internal-layout-template-resolver/slice.json +58 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-03-generation-profiles-visible-contract/CLOSURE_BRIEF.md +34 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-03-generation-profiles-visible-contract/EXECUTION_BRIEF.md +61 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-03-generation-profiles-visible-contract/slice.json +64 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-04-analyze-scan-relocation/CLOSURE_BRIEF.md +32 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-04-analyze-scan-relocation/EXECUTION_BRIEF.md +58 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-04-analyze-scan-relocation/slice.json +64 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-05-empty-specs-layout-doctor/CLOSURE_BRIEF.md +32 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-05-empty-specs-layout-doctor/EXECUTION_BRIEF.md +60 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-05-empty-specs-layout-doctor/slice.json +65 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-06-legacy-migration-optional-assets/CLOSURE_BRIEF.md +31 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-06-legacy-migration-optional-assets/EXECUTION_BRIEF.md +62 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-06-legacy-migration-optional-assets/slice.json +66 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-07-docs-guidance-alignment/CLOSURE_BRIEF.md +33 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-07-docs-guidance-alignment/EXECUTION_BRIEF.md +61 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-07-docs-guidance-alignment/slice.json +67 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-08-smokes-release-readiness/CLOSURE_BRIEF.md +35 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-08-smokes-release-readiness/EXECUTION_BRIEF.md +66 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-08-smokes-release-readiness/slice.json +62 -0
- package/src/create-quiver/commands/ai.js +442 -0
- package/src/create-quiver/index.js +421 -84
- package/src/create-quiver/lib/ai/context-packs.js +158 -0
- package/src/create-quiver/lib/ai/execution-plan.js +254 -0
- package/src/create-quiver/lib/ai/executor.js +323 -0
- package/src/create-quiver/lib/ai/github.js +329 -0
- package/src/create-quiver/lib/ai/phase-gates.js +72 -0
- package/src/create-quiver/lib/ai/preflight.js +58 -0
- package/src/create-quiver/lib/ai/prompt-transport.js +81 -0
- package/src/create-quiver/lib/ai/prompts.js +39 -0
- package/src/create-quiver/lib/ai/providers.js +314 -0
- package/src/create-quiver/lib/ai/safety.js +151 -0
- package/src/create-quiver/lib/ai/spec-generator.js +314 -0
- package/src/create-quiver/lib/ai/spec-templates.js +715 -0
- package/src/create-quiver/lib/doctor.js +114 -0
- package/src/create-quiver/lib/git.js +21 -0
- package/src/create-quiver/lib/init-docs.js +286 -25
- package/src/create-quiver/lib/init-layout.js +426 -0
- package/src/create-quiver/lib/lifecycle.js +2 -2
- package/src/create-quiver/lib/paths.js +63 -2
- package/src/create-quiver/lib/project-scan.js +66 -0
- package/src/create-quiver/lib/readiness.js +4 -2
- package/src/create-quiver/lib/scope.js +125 -0
- package/src/create-quiver/lib/slice-graph.js +6 -0
- package/src/create-quiver/lib/slice.js +51 -8
- package/src/create-quiver/lib/state.js +18 -1
- package/src/create-quiver/lib/template-resolver.js +74 -0
- package/.claude/settings.local.json +0 -52
package/README_FOR_AI.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
# AI Guide for Quiver
|
|
1
|
+
# AI Guide for Quiver
|
|
2
2
|
|
|
3
|
-
Use this guide when initializing a new project
|
|
3
|
+
Use this guide when initializing a new project with Quiver or when explaining the workflow to another agent.
|
|
4
4
|
|
|
5
5
|
The first AI job in a generated project is context preparation, not product implementation.
|
|
6
6
|
|
|
@@ -9,14 +9,16 @@ The canonical installer entrypoint is `npx create-quiver` run from the target pr
|
|
|
9
9
|
Do not recommend global installation; use `npx` or a project-local devDependency when the team needs a pinned version.
|
|
10
10
|
The post-init contract is validated with `npx create-quiver doctor` from the project root.
|
|
11
11
|
If the project already exists from an older Quiver version and was previously initialized by Quiver, run `npx create-quiver migrate` before `analyze` from the project root.
|
|
12
|
-
If the project was never initialized by Quiver, do not use `migrate` as bootstrap; run `npx create-quiver --name "Project Name"` first.
|
|
13
|
-
Generated projects also get `quiver:*` npm scripts that call the Node CLI directly; prefer those for repeatable project workflows, including `quiver:plan` for sequential planning, `quiver:graph` for parallel-level inspection,
|
|
12
|
+
If the project was never initialized by Quiver, do not use `migrate` as bootstrap; run `npx create-quiver init --name "Project Name"` first.
|
|
13
|
+
Generated projects also get `quiver:*` npm scripts that call the Node CLI directly; prefer those for repeatable project workflows, including `quiver:plan` for sequential planning, `quiver:graph` for parallel-level inspection, `quiver:next` for the next ready slice, and the AI family `quiver:ai:onboard`, `quiver:ai:plan`, `quiver:ai:execute-slice`, `quiver:ai:pr`, and `quiver:ai:doctor`. Use `quiver:graph --format mermaid` for PR-ready Markdown or `quiver:graph --format dot` for Graphviz source.
|
|
14
14
|
Maintain release notes and package publishing with `scripts/release-quiver.sh`.
|
|
15
15
|
The primary generated project context for agents is `docs/AI_CONTEXT.md`.
|
|
16
16
|
The project map is the single source of truth for stack, package manager, commands, and file hints: `docs/PROJECT_MAP.md`.
|
|
17
|
+
The raw analyzer output is internal machinery at `.quiver/scans/PROJECT_SCAN.json`; read it only when the visible map is not enough.
|
|
17
18
|
The universal router for generated projects is `AGENTS.md`; read it before `docs/AI_CONTEXT.md` and `docs/AI_ONBOARDING_PROMPT.md`.
|
|
18
19
|
Generated projects also get `docs/DECISIONS.md`; use it for durable choices that should not be re-litigated.
|
|
19
20
|
If a generated project has been analyzed, the exact agent handoff prompt is `docs/AI_ONBOARDING_PROMPT.md`.
|
|
21
|
+
Keep README copy-paste prompts short; the detailed onboarding contract lives in `docs/AI_ONBOARDING_PROMPT.md` generated from `docs/AI_ONBOARDING_PROMPT.md.template`.
|
|
20
22
|
If a new bounded transfer is needed, scaffold `specs/<project-slug>/HANDOFF.md` with `npx create-quiver new-handoff <spec-slug>` and validate it with `npx create-quiver check-handoff specs/<project-slug>/HANDOFF.md`.
|
|
21
23
|
Use `npx create-quiver check-handoff specs/<project-slug>/HANDOFF.md` to validate a transferred handoff before execution.
|
|
22
24
|
During onboarding, after reading `ROADMAP.md`, also read `BACKLOG.md` in the repository root: it tracks emerging patterns that are not yet scoped as specs. Before proposing a new spec, confirm the idea is not already parked or emerging there.
|
|
@@ -25,8 +27,8 @@ During onboarding, after reading `ROADMAP.md`, also read `BACKLOG.md` in the rep
|
|
|
25
27
|
|
|
26
28
|
Use the smallest context that still answers the current task.
|
|
27
29
|
|
|
28
|
-
- **Onboarding:** start from `docs/PROJECT_MAP.md`,
|
|
29
|
-
- **Onboarding router:** start from `AGENTS.md` first, then the onboarding files above.
|
|
30
|
+
- **Onboarding:** start from `README.md`, `AGENTS.md` when present, `docs/PROJECT_MAP.md`, `.quiver/scans/PROJECT_SCAN.json` when it exists, `docs/AI_CONTEXT.md`, and `docs/AI_ONBOARDING_PROMPT.md` before opening source files.
|
|
31
|
+
- **Onboarding router:** start from `README.md` and `AGENTS.md` first, then the onboarding files above.
|
|
30
32
|
- **Implementation:** start from `docs/ai/ACTIVE_SLICE.md` when it exists; otherwise start from `specs/<project-slug>/slices/<slice-id>/slice.json`, then read only the declared files, nearby tests, and directly related source.
|
|
31
33
|
- **Handoff:** start from `specs/<project-slug>/HANDOFF.md` when the work was explicitly transferred through a handoff artifact.
|
|
32
34
|
- **Handoff scaffold:** if no handoff exists yet and the work needs one, use `npx create-quiver new-handoff <spec-slug>` first.
|
|
@@ -37,12 +39,12 @@ Prefer maps, metadata, diffs, and summaries over full file reads when they are e
|
|
|
37
39
|
|
|
38
40
|
## Core Rules
|
|
39
41
|
|
|
40
|
-
-
|
|
41
|
-
-
|
|
42
|
-
- Treat
|
|
42
|
+
- Do not treat `docs-template/` as part of the default project contract. It is legacy or exported only when explicitly requested.
|
|
43
|
+
- Use `npx create-quiver init` or `npx create-quiver --name "Project Name"` instead of copying templates by hand.
|
|
44
|
+
- Treat `.quiver/` as Quiver internal machinery and `docs/` as the visible project-specific contract.
|
|
43
45
|
- Not every project needs every optional file.
|
|
44
46
|
- The AI context pack lives in `docs/AI_CONTEXT.md`; `docs/CONTEXTO.md` is the broader project overview; `docs/PROJECT_MAP.md` owns stack and command facts.
|
|
45
|
-
- The onboarding prompt lives in `docs/AI_ONBOARDING_PROMPT.md` and should reference
|
|
47
|
+
- The onboarding prompt lives in `docs/AI_ONBOARDING_PROMPT.md` and should reference `docs/PROJECT_MAP.md`; raw scan details live in `.quiver/scans/PROJECT_SCAN.json`.
|
|
46
48
|
- `specs/<project-slug>/HANDOFF.md` is reserved for exceptional context transfers between agents or phases.
|
|
47
49
|
- Initial onboarding should complete context docs and report assumptions before any feature work starts.
|
|
48
50
|
- The normal workflow runs from the project root without `--dir`; use `--dir` only when targeting another directory explicitly.
|
|
@@ -55,47 +57,58 @@ Prefer maps, metadata, diffs, and summaries over full file reads when they are e
|
|
|
55
57
|
|
|
56
58
|
## Initialization Flow
|
|
57
59
|
|
|
58
|
-
1.
|
|
59
|
-
2. Run:
|
|
60
|
+
1. From the target project root, run the default AI-first initializer:
|
|
60
61
|
|
|
61
62
|
```bash
|
|
62
|
-
|
|
63
|
+
npx create-quiver init --name "Project Name"
|
|
63
64
|
```
|
|
64
65
|
|
|
65
|
-
|
|
66
|
+
The compatibility alias is still valid:
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
npx create-quiver --name "Project Name"
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
2. Analyze and validate the project contract:
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
npx create-quiver analyze
|
|
76
|
+
npx create-quiver doctor
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
3. Tell the user to review or complete:
|
|
66
80
|
- `docs/AI_CONTEXT.md`
|
|
67
81
|
- `docs/AI_ONBOARDING_PROMPT.md`
|
|
68
82
|
- `docs/CONTEXTO.md`
|
|
69
83
|
- `docs/STATUS.md`
|
|
70
|
-
- `docs/
|
|
71
|
-
|
|
72
|
-
|
|
84
|
+
- `docs/PROJECT_MAP.md`
|
|
85
|
+
|
|
86
|
+
## What Init Creates
|
|
73
87
|
|
|
74
|
-
|
|
88
|
+
Default init creates the visible AI-first contract and Quiver internal state:
|
|
75
89
|
|
|
90
|
+
- `AGENTS.md`
|
|
76
91
|
- `docs/`
|
|
77
92
|
- `docs/ai/`
|
|
78
93
|
- `docs/AI_CONTEXT.md`
|
|
79
94
|
- `docs/AI_ONBOARDING_PROMPT.md`
|
|
80
|
-
- `specs/{{PROJECT_SLUG}}/`
|
|
81
|
-
- `tools/scripts/`
|
|
82
|
-
- `docs/SEARCH.md`
|
|
83
|
-
- a merged or copied `package.json` with the required npm scripts
|
|
84
|
-
- the default OSS baseline when those files are missing:
|
|
85
|
-
- `LICENSE`
|
|
86
|
-
- `CONTRIBUTING.md`
|
|
87
|
-
- `CODE_OF_CONDUCT.md`
|
|
88
|
-
- `SECURITY.md`
|
|
89
|
-
- `CHANGELOG.md`
|
|
90
|
-
- `ROADMAP.md`
|
|
91
95
|
- `docs/SUPPORT_MATRIX.md`
|
|
92
96
|
- `docs/TROUBLESHOOTING.md`
|
|
93
|
-
- `.
|
|
94
|
-
- `.
|
|
95
|
-
- `.
|
|
96
|
-
-
|
|
97
|
+
- `.quiver/config.json`
|
|
98
|
+
- `.quiver/state.json`
|
|
99
|
+
- `.quiver/.gitignore`
|
|
100
|
+
- a merged or copied `package.json` with `quiver:*` scripts
|
|
101
|
+
|
|
102
|
+
Default init does not create `docs-template/`, `tools/scripts/`, or a placeholder spec.
|
|
103
|
+
|
|
104
|
+
Optional compatibility profiles:
|
|
105
|
+
|
|
106
|
+
- `--minimal` creates only the essential onboarding contract.
|
|
107
|
+
- `--full` preserves the broad legacy-compatible layout, including placeholder spec assets and OSS/community files.
|
|
108
|
+
- `--legacy-scripts` adds Bash wrappers under `tools/scripts/`.
|
|
109
|
+
- `--include-templates` exports packaged templates under `.quiver/templates/`, not root `docs-template/`.
|
|
97
110
|
|
|
98
|
-
|
|
111
|
+
Init preserves existing target files and reports skipped copies instead of overwriting them.
|
|
99
112
|
|
|
100
113
|
## Required Follow-Up
|
|
101
114
|
|
|
@@ -105,20 +118,21 @@ After initialization, the user should:
|
|
|
105
118
|
2. Fill in `docs/AI_ONBOARDING_PROMPT.md`
|
|
106
119
|
3. Fill in `docs/CONTEXTO.md`
|
|
107
120
|
4. Fill in `docs/STATUS.md`
|
|
108
|
-
5. Run `npx create-quiver analyze` if
|
|
121
|
+
5. Run `npx create-quiver analyze` if `docs/PROJECT_MAP.md` or `.quiver/scans/PROJECT_SCAN.json` is missing
|
|
109
122
|
6. If the project already exists from an older Quiver version and was previously initialized by Quiver, run `npx create-quiver migrate`
|
|
110
|
-
7. If the project was never initialized by Quiver, run `npx create-quiver --name "Project Name"` instead of `migrate`
|
|
123
|
+
7. If the project was never initialized by Quiver, run `npx create-quiver init --name "Project Name"` instead of `migrate`
|
|
111
124
|
8. Ask the AI agent to execute `docs/AI_ONBOARDING_PROMPT.md`
|
|
112
125
|
9. Review context docs before creating the first implementation slice
|
|
113
126
|
10. Open and merge the documentation PR that establishes the workflow files
|
|
114
|
-
11.
|
|
115
|
-
12.
|
|
116
|
-
13.
|
|
117
|
-
14. Run `npx create-quiver
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
127
|
+
11. Use `npx create-quiver ai plan --phase acceptance --input requirements.md --dry-run`
|
|
128
|
+
12. After human approval, use `npx create-quiver ai plan --phase technical-plan --input acceptance-approved.md --dry-run`
|
|
129
|
+
13. After human approval, use `npx create-quiver ai plan --phase spec --input technical-plan-approved.md --dry-run` to create the real spec, slices, handoffs, execution plan, and PR body
|
|
130
|
+
14. Run `npx create-quiver plan` or `npm run quiver:plan`
|
|
131
|
+
15. Run `npx create-quiver next` or `npm run quiver:next`
|
|
132
|
+
16. Run `npx create-quiver start-slice [--allow-draft] <slice.json>` or `npm run quiver:start-slice -- [--allow-draft] <slice.json>`
|
|
133
|
+
17. Make one commit per slice
|
|
134
|
+
18. Open one PR per spec
|
|
135
|
+
19. Validate the slice and the final PR with the workflow gates
|
|
122
136
|
|
|
123
137
|
Bootstrap note: `start-slice` should resolve paths canonically, prefer a local `develop` or `main` base branch before reaching for `origin`, and reject `draft` slices unless `--allow-draft` is passed intentionally.
|
|
124
138
|
|
|
@@ -129,7 +143,7 @@ Bootstrap note: `start-slice` should resolve paths canonically, prefer a local `
|
|
|
129
143
|
- `docs/GITFLOW_PR_GUIDE.md` if the team wants a stricter branch workflow
|
|
130
144
|
- `docs/SUPPORT_MATRIX.md` and `docs/TROUBLESHOOTING.md` for first-run support
|
|
131
145
|
- `docs/ai/LESSONS.md` after each slice
|
|
132
|
-
-
|
|
146
|
+
- `.quiver/templates/` only when the team explicitly exports packaged templates
|
|
133
147
|
|
|
134
148
|
## Good Defaults
|
|
135
149
|
|
package/ROADMAP.md
CHANGED
|
@@ -64,20 +64,21 @@ Draft specs exist but are **not executed until v18 passes its validation checkpo
|
|
|
64
64
|
|
|
65
65
|
Plan total: ~41h across 11 slices. Drafts parked on `drafts/v19-v22-orchestration-followups`. v22 stays deferred until BACKLOG.md records ≥1 occurrence per slice.
|
|
66
66
|
|
|
67
|
-
### v0.8 —
|
|
67
|
+
### v0.8 — Slice Orchestration Commands (shipped 2026-05-13)
|
|
68
68
|
|
|
69
|
-
-
|
|
70
|
-
- `
|
|
71
|
-
-
|
|
72
|
-
-
|
|
69
|
+
- `quiver:plan` — pending slices in dependency order with critical path and estimated hours
|
|
70
|
+
- `quiver:graph` — dependency graph in ASCII tree, Mermaid, and DOT formats
|
|
71
|
+
- `quiver:next` — next ready slice with `--all-ready`, `--json`, and `--auto-start`
|
|
72
|
+
- Slice graph library (`slice-graph.js`) with `readAllSlices`, `buildGraph`, `topoSort`, `computeLevels`, `detectFileConflicts`
|
|
73
|
+
- `depends_on` and `parallel_safe` validation in `check-slice`
|
|
74
|
+
- Fix: `quiver:plan` no longer crashes on repos with legacy bare spec deps
|
|
73
75
|
|
|
74
|
-
### v0.9 —
|
|
76
|
+
### v0.9 — Auto-Install as Dev Dependency (shipped 2026-05-14)
|
|
75
77
|
|
|
76
|
-
-
|
|
77
|
-
-
|
|
78
|
-
- `create-quiver
|
|
79
|
-
-
|
|
80
|
-
- `docs/ai/INDEX.yaml` inverted index (directory → purpose)
|
|
78
|
+
- After `init` or `migrate`, Quiver installs itself as a dev dependency automatically
|
|
79
|
+
- Detects package manager via lockfile (bun → pnpm → yarn → npm)
|
|
80
|
+
- Resolves npx cache issues: `npx create-quiver plan` works without `@version`
|
|
81
|
+
- `--skip-install` flag for CI environments
|
|
81
82
|
|
|
82
83
|
### Block A — Zero-Question First Use (proposed)
|
|
83
84
|
|
|
@@ -1,72 +1,140 @@
|
|
|
1
1
|
# {{PROJECT_NAME}} AI Onboarding Prompt
|
|
2
2
|
|
|
3
|
-
**
|
|
4
|
-
**
|
|
3
|
+
**Fecha:** {{FECHA}}
|
|
4
|
+
**Estado:** {{ESTADO}}
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
Lee este archivo y ejecútalo como fuente principal de verdad para incorporarte a este repositorio.
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
Actúa como asistente de onboarding de IA para este proyecto. Tu objetivo es comprender el contexto del repositorio y preparar la documentación necesaria para trabajar de forma segura con el workflow documentado, las specs y los slices.
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
2. `docs/PROJECT_SCAN.json`
|
|
12
|
-
3. `docs/PROJECT_MAP.md`
|
|
13
|
-
4. `docs/CONTEXTO.md`
|
|
14
|
-
5. `docs/WORKFLOW.md`
|
|
15
|
-
6. `specs/{{PROJECT_SLUG}}/SPEC.md`
|
|
16
|
-
7. `specs/{{PROJECT_SLUG}}/STATUS.md`
|
|
17
|
-
8. `specs/{{PROJECT_SLUG}}/EVIDENCE_REPORT.md`
|
|
18
|
-
9. `specs/{{PROJECT_SLUG}}/HANDOFF.md` if this work was explicitly transferred through a handoff artifact
|
|
19
|
-
10. `npx create-quiver new-handoff <spec-slug>` if a new handoff artifact needs to be scaffolded before validation
|
|
10
|
+
## Reglas de ejecución
|
|
20
11
|
|
|
21
|
-
|
|
12
|
+
1. Comienza leyendo la documentación necesaria para el onboarding:
|
|
13
|
+
- `README.md`
|
|
14
|
+
- `AGENTS.md`, si existe
|
|
15
|
+
- `docs/AI_ONBOARDING_PROMPT.md`
|
|
16
|
+
- `docs/PROJECT_MAP.md`
|
|
17
|
+
- `.quiver/scans/PROJECT_SCAN.json`, si existe y el mapa visible no alcanza
|
|
18
|
+
- `docs/AI_CONTEXT.md`
|
|
19
|
+
- `docs/CONTEXTO.md`
|
|
20
|
+
- `docs/WORKFLOW.md`
|
|
21
|
+
- `docs/STATUS.md`
|
|
22
|
+
- `docs/DECISIONS.md`, si existe
|
|
23
|
+
- `specs/{{PROJECT_SLUG}}/SPEC.md`
|
|
24
|
+
- `specs/{{PROJECT_SLUG}}/STATUS.md`
|
|
25
|
+
- `specs/{{PROJECT_SLUG}}/EVIDENCE_REPORT.md`
|
|
26
|
+
- `specs/{{PROJECT_SLUG}}/HANDOFF.md`, si este trabajo fue transferido mediante un handoff
|
|
27
|
+
- cualquier documento sobre WDD o SDD referenciado por la documentación de onboarding
|
|
28
|
+
- cualquier archivo de estructura, contexto o convenciones del proyecto referenciado por esos documentos
|
|
22
29
|
|
|
23
|
-
|
|
24
|
-
- Treat `docs/PROJECT_MAP.md` as the single source of truth for stack, package manager, commands, and file hints.
|
|
25
|
-
- Complete or refine Quiver context docs so future agents can work safely.
|
|
26
|
-
- If a handoff artifact exists, treat it as the transfer brief for the current work and validate it against the requested change.
|
|
27
|
-
- If a handoff artifact does not exist yet but the work needs one, scaffold it with `npx create-quiver new-handoff <spec-slug>` and then validate it.
|
|
28
|
-
- Preserve Quiver workflow invariants: one slice = one commit, one spec = one PR.
|
|
29
|
-
- Ask for confirmation before making product-code changes.
|
|
30
|
+
2. Sigue las instrucciones definidas en `docs/AI_ONBOARDING_PROMPT.md`, salvo que entren en conflicto con las restricciones de este prompt.
|
|
30
31
|
|
|
31
|
-
|
|
32
|
+
3. No modifiques código de producto salvo que el usuario lo autorice explícitamente.
|
|
32
33
|
|
|
33
|
-
|
|
34
|
+
4. Considera como cambios que impactan el producto, y no los realices sin autorización explícita, cualquier modificación sobre:
|
|
35
|
+
- lógica de aplicación o negocio
|
|
36
|
+
- código de UI
|
|
37
|
+
- tests
|
|
38
|
+
- migraciones de base de datos
|
|
39
|
+
- configuración de runtime
|
|
40
|
+
- archivos de dependencias
|
|
41
|
+
- archivos de build
|
|
42
|
+
- archivos generados que no sean documentación/contexto de Quiver requerido por el onboarding
|
|
43
|
+
- manifiestos o lockfiles de paquetes
|
|
34
44
|
|
|
35
|
-
|
|
36
|
-
- **Implementation:** start from `specs/{{PROJECT_SLUG}}/slices/<slice-id>/slice.json`, then read the declared files, nearby tests, and only then adjacent source.
|
|
37
|
-
- **Review:** start from `git diff` and the slice scope before opening full files.
|
|
38
|
-
- **Debug:** start from the command, exit code, first relevant error, stacktrace, and the nearest changed code before reading long logs.
|
|
45
|
+
5. Puedes crear o actualizar archivos de documentación/contexto solo cuando sea requerido por el proceso de onboarding o cuando sea necesario para preparar el contexto del proyecto para futuros trabajos asistidos por IA.
|
|
39
46
|
|
|
40
|
-
|
|
47
|
+
6. Usa la documentación del repositorio como fuente de verdad. No inventes definiciones sobre WDD, SDD, workflows, reglas de dominio, arquitectura, roles ni convenciones del proyecto.
|
|
41
48
|
|
|
42
|
-
|
|
49
|
+
7. Si encuentras información faltante, ambigua o contradictoria:
|
|
50
|
+
- continúa por el camino más seguro y de solo lectura cuando sea posible
|
|
51
|
+
- documenta claramente la suposición realizada
|
|
52
|
+
- identifica el riesgo asociado
|
|
53
|
+
- no modifiques código de producto para resolver la ambigüedad
|
|
43
54
|
|
|
44
|
-
|
|
45
|
-
-
|
|
46
|
-
-
|
|
47
|
-
-
|
|
48
|
-
-
|
|
55
|
+
8. Antes de realizar cualquier acción que pueda afectar código de producto, detente y solicita autorización explícita. Incluye:
|
|
56
|
+
- los archivos que pretendes modificar
|
|
57
|
+
- el motivo de cada cambio
|
|
58
|
+
- el impacto esperado
|
|
59
|
+
- los riesgos asociados
|
|
49
60
|
|
|
50
|
-
|
|
61
|
+
9. Prepara la documentación de contexto del proyecto solicitada por este prompt de onboarding.
|
|
51
62
|
|
|
52
|
-
|
|
53
|
-
2. Update `docs/AI_CONTEXT.md` with the working contract for agents.
|
|
54
|
-
3. Update `docs/CONTEXTO.md` with the human-readable project overview.
|
|
55
|
-
4. Update `docs/STATUS.md` with the initial state and open questions.
|
|
56
|
-
5. If needed, refine `specs/{{PROJECT_SLUG}}/SPEC.md` only to align the onboarding spec with observed reality.
|
|
57
|
-
6. Record the files you inspected, the files you changed, and the assumptions you made.
|
|
63
|
+
10. Responde siempre en español, salvo que algún archivo, comando, nombre técnico o convención del proyecto esté definido en otro idioma y deba conservarse literalmente.
|
|
58
64
|
|
|
59
|
-
##
|
|
65
|
+
## Modo de trabajo
|
|
60
66
|
|
|
61
|
-
|
|
62
|
-
- Note any skipped paths or missing signals.
|
|
63
|
-
- Keep the response focused on documentation and onboarding context unless code changes were explicitly authorized.
|
|
67
|
+
Usa el menor contexto que todavía permita resolver la tarea:
|
|
64
68
|
|
|
65
|
-
|
|
69
|
+
- **Onboarding:** usa mapas y metadatos primero. Lee `docs/PROJECT_MAP.md` antes de abrir archivos fuente. Si necesitás el scan crudo, usá `.quiver/scans/PROJECT_SCAN.json`. Después usa `docs/AI_CONTEXT.md`, `docs/CONTEXTO.md` y `docs/WORKFLOW.md` para completar vacíos.
|
|
70
|
+
- **Planner:** usa contexto amplio solo para onboarding y planificación. El planner genera criterios de aceptación, plan técnico, specs, slices, handoffs y cuerpo de PR con aprobación humana entre fases.
|
|
71
|
+
- **Executor:** usa contexto mínimo del slice. El executor parte de `slice.json` y `EXECUTION_BRIEF.md`, puede modificar código solo cuando el usuario lo autoriza y debe mantenerse dentro de `slice.json.files`.
|
|
72
|
+
- **Implementación:** no implementes durante onboarding salvo autorización explícita. Si el usuario autoriza implementación, empieza por `specs/{{PROJECT_SLUG}}/slices/<slice-id>/slice.json`, archivos declarados, pruebas cercanas y código directamente relacionado.
|
|
73
|
+
- **Review:** empieza por `git diff` y el alcance del slice antes de abrir archivos completos.
|
|
74
|
+
- **Debug:** empieza por el comando, exit code, primer error relevante, stacktrace y código más cercano al cambio.
|
|
66
75
|
|
|
67
|
-
|
|
76
|
+
Prefiere resúmenes, deltas y metadatos antes que lecturas completas cuando sean suficientes.
|
|
68
77
|
|
|
69
|
-
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
78
|
+
Si usás los comandos de IA de Quiver, empezá con `--dry-run` para revisar provider, rol, context pack y transporte de prompt antes de ejecutar:
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
npm run quiver:ai:onboard -- --dry-run
|
|
82
|
+
npm run quiver:ai:plan -- --phase acceptance --input requirements.md --dry-run
|
|
83
|
+
npm run quiver:ai:execute-slice -- --slice specs/{{PROJECT_SLUG}}/slices/<slice-id>/slice.json --dry-run
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## Tareas
|
|
87
|
+
|
|
88
|
+
1. Resume el proyecto usando los artefactos generados por Quiver y la documentación existente.
|
|
89
|
+
2. Actualiza `docs/AI_CONTEXT.md` con el contrato de trabajo para agentes.
|
|
90
|
+
3. Actualiza `docs/CONTEXTO.md` con una descripción legible para humanos.
|
|
91
|
+
4. Actualiza `docs/STATUS.md` con el estado inicial, dudas abiertas y próximos pasos.
|
|
92
|
+
5. Si hace falta, refina `specs/{{PROJECT_SLUG}}/SPEC.md` solo para alinear la spec de onboarding con la realidad observada.
|
|
93
|
+
6. Si existe un handoff, trátalo como brief de transferencia y valida que aplique al trabajo solicitado.
|
|
94
|
+
7. Si no existe un handoff y el trabajo necesita uno, créalo con `npx create-quiver new-handoff <spec-slug>` y valídalo con `npx create-quiver check-handoff specs/<spec-slug>/HANDOFF.md`.
|
|
95
|
+
8. Registra los archivos inspeccionados, los archivos modificados y las suposiciones realizadas.
|
|
96
|
+
|
|
97
|
+
## Validación
|
|
98
|
+
|
|
99
|
+
- Cita `docs/PROJECT_MAP.md` cuando hagas afirmaciones sobre stack, comandos o estructura. Si usás datos del scan crudo, cita `.quiver/scans/PROJECT_SCAN.json`.
|
|
100
|
+
- Indica rutas omitidas o señales faltantes.
|
|
101
|
+
- Mantén la respuesta enfocada en documentación y contexto de onboarding salvo que el usuario haya autorizado cambios de código de producto.
|
|
102
|
+
- No cambies reglas del workflow de Quiver salvo que el usuario lo pida explícitamente.
|
|
103
|
+
|
|
104
|
+
## Reporte final
|
|
105
|
+
|
|
106
|
+
Al finalizar, entrega un reporte breve con esta estructura exacta:
|
|
107
|
+
|
|
108
|
+
## Reporte de Onboarding de IA
|
|
109
|
+
|
|
110
|
+
### 1. Archivos Leídos
|
|
111
|
+
|
|
112
|
+
Lista todos los archivos relevantes inspeccionados.
|
|
113
|
+
|
|
114
|
+
### 2. Archivos Creados o Modificados
|
|
115
|
+
|
|
116
|
+
Lista cada archivo modificado. Si no hubo cambios, indica: `No se modificaron archivos`.
|
|
117
|
+
|
|
118
|
+
### 3. Estado del Código de Producto
|
|
119
|
+
|
|
120
|
+
Confirma si se modificó código de producto. Si no se modificó, indica: `No se modificó código de producto`.
|
|
121
|
+
|
|
122
|
+
### 4. Contexto del Proyecto Preparado
|
|
123
|
+
|
|
124
|
+
Resume los documentos de contexto creados o actualizados y su propósito.
|
|
125
|
+
|
|
126
|
+
### 5. Comprensión de WDD/SDD
|
|
127
|
+
|
|
128
|
+
Resume únicamente lo que la documentación del repositorio define sobre WDD y SDD. No agregues supuestos externos. Si la documentación no define esos términos, indícalo explícitamente.
|
|
129
|
+
|
|
130
|
+
### 6. Supuestos
|
|
131
|
+
|
|
132
|
+
Lista todos los supuestos realizados durante el onboarding.
|
|
133
|
+
|
|
134
|
+
### 7. Riesgos y Bloqueos
|
|
135
|
+
|
|
136
|
+
Lista riesgos, información faltante, contradicciones o bloqueos encontrados.
|
|
137
|
+
|
|
138
|
+
### 8. Próximos Pasos Recomendados
|
|
139
|
+
|
|
140
|
+
Sugiere las acciones más seguras para continuar trabajando con IA en este proyecto.
|
|
@@ -4,22 +4,57 @@
|
|
|
4
4
|
**Last updated:** {{FECHA}}
|
|
5
5
|
|
|
6
6
|
This document is the canonical command reference for the orchestration roadmap.
|
|
7
|
-
It is intentionally small at v0.18: only the plan and graph rows are reserved for now, but `quiver:graph` already supports tree, Mermaid, and DOT output modes.
|
|
8
7
|
|
|
9
8
|
## Command Table
|
|
10
9
|
|
|
11
10
|
| Command | Purpose | OS | Since | Example |
|
|
12
11
|
|---------|---------|----|-------|---------|
|
|
13
|
-
| `quiver
|
|
14
|
-
| `quiver
|
|
15
|
-
| `quiver:
|
|
12
|
+
| `npx create-quiver init --name "<project>"` | Creates the default AI-first Quiver contract for a project | macOS, Linux, Windows | current | `npx create-quiver init --name "{{PROJECT_NAME}}"` |
|
|
13
|
+
| `npx create-quiver --name "<project>"` | Compatibility alias for the recommended init flow | macOS, Linux, Windows | current | `npx create-quiver --name "{{PROJECT_NAME}}"` |
|
|
14
|
+
| `quiver:analyze` | Writes raw analyzer data to `.quiver/scans/PROJECT_SCAN.json` and the visible project map to `docs/PROJECT_MAP.md` | macOS, Linux, Windows | v0.8 | `npm run quiver:analyze` |
|
|
15
|
+
| `quiver:doctor` | Validates the Quiver contract and reports layout or migration guidance | macOS, Linux, Windows | v0.8 | `npm run quiver:doctor` |
|
|
16
|
+
| `quiver:plan` | Sequential orchestration planning command | macOS, Linux, Windows | v0.8 | [docs/examples/plan.md](./examples/plan.md) |
|
|
17
|
+
| `quiver:graph` | Parallel-level orchestration tree command | macOS, Linux, Windows | v0.8 | [docs/examples/graph.md](./examples/graph.md) |
|
|
18
|
+
| `quiver:next` | Ready-slice suggestion command | macOS, Linux, Windows | v0.8 | [docs/examples/next.md](./examples/next.md) |
|
|
19
|
+
| `quiver:ai:onboard` | Runs AI onboarding prompt through a supported local provider CLI | macOS, Linux, Windows | v0.10 | `npm run quiver:ai:onboard -- --dry-run` |
|
|
20
|
+
| `quiver:ai:plan` | Runs phase-gated AI planning for acceptance criteria, technical plan, or spec generation | macOS, Linux, Windows | v0.10 | `npm run quiver:ai:plan -- --phase acceptance --input requirements.md --dry-run` |
|
|
21
|
+
| `quiver:ai:execute-slice` | Runs an executor agent against one slice handoff with scope checks | macOS, Linux, Windows | v0.10 | `npm run quiver:ai:execute-slice -- --slice specs/<spec>/slices/<slice>/slice.json --dry-run` |
|
|
22
|
+
| `quiver:ai:doctor` | Runs GitHub PR preflight checks without opening a PR | macOS, Linux, Windows | v0.10 | `npm run quiver:ai:doctor -- --dry-run --ssh-host-alias github-work --identity-file ~/.ssh/github-work` |
|
|
23
|
+
| `quiver:ai:pr` | Validates `gh`, GitFlow docs, branch/worktree state, and SSH inputs before PR work | macOS, Linux, Windows | v0.10 | `npm run quiver:ai:pr -- --dry-run --ssh-host-alias github-work --identity-file ~/.ssh/github-work` |
|
|
24
|
+
|
|
25
|
+
## CLI Flags
|
|
26
|
+
|
|
27
|
+
| Flag | Applies to | Purpose |
|
|
28
|
+
|------|------------|---------|
|
|
29
|
+
| `--minimal` | `init` | Create only the essential onboarding contract |
|
|
30
|
+
| `--full` | `init` | Create the broad legacy-compatible layout explicitly |
|
|
31
|
+
| `--legacy-scripts` | `init` | Add legacy Bash wrappers under `tools/scripts/` |
|
|
32
|
+
| `--include-templates` | `init` | Export packaged templates under `.quiver/templates/` |
|
|
33
|
+
| `--skip-install` | `init`, `migrate` | Skip auto-install of `create-quiver` as dev dependency (useful for CI) |
|
|
34
|
+
| `--json` | `plan`, `graph`, `next` | Emit machine-readable JSON |
|
|
35
|
+
| `--format <tree\|mermaid\|dot>` | `graph` | Output format |
|
|
36
|
+
| `--all-ready` | `next` | List all ready slices instead of just the next one |
|
|
37
|
+
| `--only-ready` | `plan` | Show only slices with no pending dependencies |
|
|
38
|
+
| `--spec <slug>` | `plan`, `graph` | Restrict output to one spec |
|
|
39
|
+
| `--provider <codex\|claude\|gemini>` | `ai onboard`, `ai plan`, `ai execute-slice` | Select the local AI CLI adapter |
|
|
40
|
+
| `--role <planner\|executor>` | `ai onboard`, `ai plan`, `ai execute-slice` | Select planner or executor role; `execute-slice` requires executor |
|
|
41
|
+
| `--context <full\|planning\|slice\|minimal>` | `ai onboard`, `ai plan`, `ai execute-slice` | Select a token-budgeted context pack |
|
|
42
|
+
| `--phase <acceptance\|technical-plan\|spec>` | `ai plan` | Select the gated planner phase |
|
|
43
|
+
| `--input <file>` | `ai plan` | Read approved requirements, criteria, or technical plan from a file |
|
|
44
|
+
| `--slice <slice.json>` | `ai execute-slice` | Select the slice handoff to execute |
|
|
45
|
+
| `--ssh-host-alias <alias>` | `ai doctor`, `ai pr` | SSH host alias from the user's Git config, for example `github-work` |
|
|
46
|
+
| `--identity-file <path>` | `ai doctor`, `ai pr` | SSH key path to validate separately from the host alias |
|
|
16
47
|
|
|
17
48
|
## Notes
|
|
18
49
|
|
|
19
50
|
- Add new rows here only when a command is officially shipped.
|
|
20
51
|
- Keep the table concise and cross-platform.
|
|
21
52
|
- Shared graph library: `src/create-quiver/lib/slice-graph.js`.
|
|
22
|
-
- `quiver:graph --format mermaid` is the PR-friendly export; `--format dot` is for Graphviz consumers.
|
|
53
|
+
- `quiver:graph --format mermaid` is the PR-friendly Mermaid export; `--format dot` is for Graphviz/DOT consumers.
|
|
23
54
|
- `quiver:next` prints the next ready slice and can auto-start it behind a confirmation prompt.
|
|
24
|
-
- `check-slice`
|
|
55
|
+
- `check-slice` validates `depends_on` targets and requires `parallel_safe_reason` when `parallel_safe` is `never`.
|
|
56
|
+
- `quiver:ai:onboard`, `quiver:ai:plan`, and `quiver:ai:execute-slice` support `codex`, `claude`, and `gemini` through local CLIs. Use `--dry-run` first to inspect the invocation without requiring provider auth.
|
|
57
|
+
- `quiver:ai:execute-slice` uses executor context only and validates changed files against `slice.json.files` after provider execution.
|
|
58
|
+
- `quiver:ai:pr -- --dry-run` validates GitHub CLI, auth, Git remote, current branch/worktree, `docs/GITFLOW_PR_GUIDE.md`, SSH host alias, and identity file without creating a PR.
|
|
59
|
+
- After `init` or `migrate`, Quiver auto-installs itself as a dev dependency. Use `--skip-install` to suppress.
|
|
25
60
|
- Cross-platform authoring rules live in `docs/SUPPORT_MATRIX.md`.
|
|
@@ -11,11 +11,22 @@ This guide explains how to open and review spec PRs without breaking the canonic
|
|
|
11
11
|
|
|
12
12
|
- One slice = one commit
|
|
13
13
|
- One spec = one PR
|
|
14
|
+
- One spec should be worked from one dedicated worktree/branch.
|
|
14
15
|
- Slice numbers reset per spec. `slice-01` is the first slice in each spec.
|
|
15
16
|
- Do not commit directly to `develop`
|
|
16
17
|
- Open and merge the documentation PR before the first slice starts execution
|
|
17
18
|
- Do not open the spec PR before the documentation PR is merged
|
|
18
19
|
|
|
20
|
+
## AI PR Preflight
|
|
21
|
+
|
|
22
|
+
Before asking an AI agent to prepare PR work, validate the local setup:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
npm run quiver:ai:pr -- --dry-run --ssh-host-alias github-work --identity-file ~/.ssh/github-work
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Use the SSH host alias from your Git remote separately from the key path. Quiver validates `gh`, `gh auth status`, the remote, branch/worktree state, this guide, and the identity file. It does not install `gh`, edit SSH config, or create a PR in dry-run mode.
|
|
29
|
+
|
|
19
30
|
## Review Guidance
|
|
20
31
|
|
|
21
32
|
- Start with `git diff` and the slice scope before opening full files.
|
|
@@ -25,7 +25,7 @@ This is the default context pack for everyday AI work.
|
|
|
25
25
|
|
|
26
26
|
## Workflow Overview
|
|
27
27
|
|
|
28
|
-
- Onboarding starts from `docs/PROJECT_SCAN.json`
|
|
28
|
+
- Onboarding starts from `docs/PROJECT_MAP.md`; use `.quiver/scans/PROJECT_SCAN.json` only when raw analyzer data is needed.
|
|
29
29
|
- Implementation starts from `specs/{{PROJECT_SLUG}}/slices/<slice-id>/slice.json`.
|
|
30
30
|
- Review starts from `git diff` and the slice scope.
|
|
31
31
|
- Debugging starts from the command, exit code, first relevant error, and stacktrace.
|
|
@@ -16,6 +16,8 @@ Quiver is intentionally opinionated about the first-run environment. If your set
|
|
|
16
16
|
| Base branches | `develop` or `main` | Local base branches are preferred; `origin` is optional. |
|
|
17
17
|
| Worktree state | Clean worktree | Slice execution and PR checks expect no unrelated local changes. |
|
|
18
18
|
| Path handling | Canonical filesystem paths | Use the physical path to the repo and slice files, not a symlinked alias. |
|
|
19
|
+
| AI providers | Local `codex`, `claude`, or `gemini` CLI | Required only for non-dry-run AI commands. Dry-run smokes do not require provider auth. |
|
|
20
|
+
| GitHub PR preflight | `gh` plus user-managed SSH config | Quiver validates `gh`, auth, host alias, identity file, branch, worktree, and `docs/GITFLOW_PR_GUIDE.md`; it does not install or edit credentials. |
|
|
19
21
|
|
|
20
22
|
## Cross-Platform Authoring Rules
|
|
21
23
|
|
|
@@ -25,6 +27,8 @@ Quiver is intentionally opinionated about the first-run environment. If your set
|
|
|
25
27
|
- `--json` is the primary contract; human output is courtesy and may vary.
|
|
26
28
|
- Colors are TTY-aware and suppressed with `NO_COLOR`; Unicode is opt-in unless UTF-8 is available.
|
|
27
29
|
- Optional external tools such as `gh` and `graphviz` should be probed and skipped gracefully if missing.
|
|
30
|
+
- Long AI prompts must be sent through stdin or another safe transport, never shell string concatenation.
|
|
31
|
+
- `sshHostAlias` and `identityFile` are separate values. The alias is the host entry used by Git; the identity file is the key path to validate.
|
|
28
32
|
|
|
29
33
|
## Remote Modes
|
|
30
34
|
|
|
@@ -48,7 +48,7 @@ Use this guide when a first-run bootstrap or gate check fails. The recovery path
|
|
|
48
48
|
|
|
49
49
|
### Symptom
|
|
50
50
|
|
|
51
|
-
- `init
|
|
51
|
+
- `npx create-quiver init` or a slice bootstrap stops because a file already exists
|
|
52
52
|
- The generated project has a partially initialized docs tree
|
|
53
53
|
|
|
54
54
|
### Recovery
|
|
@@ -82,3 +82,31 @@ Use this guide when a first-run bootstrap or gate check fails. The recovery path
|
|
|
82
82
|
2. If you are using an intermediate build and need a temporary bridge, use WSL2 or Git Bash manually.
|
|
83
83
|
3. Do not expect Quiver to install Bash, WSL, or MSYS2 for you.
|
|
84
84
|
4. Re-run the command after the cross-platform support slices are merged and the CI matrix is green.
|
|
85
|
+
|
|
86
|
+
## AI Provider CLI Missing
|
|
87
|
+
|
|
88
|
+
### Symptom
|
|
89
|
+
|
|
90
|
+
- `quiver:ai:onboard`, `quiver:ai:plan`, or `quiver:ai:execute-slice` fails before calling the model
|
|
91
|
+
- The error mentions a missing `codex`, `claude`, or `gemini` command
|
|
92
|
+
|
|
93
|
+
### Recovery
|
|
94
|
+
|
|
95
|
+
1. Re-run the command with `--dry-run` to validate role, context pack, prompt transport, and paths without provider auth.
|
|
96
|
+
2. Install or authenticate the selected provider CLI outside Quiver.
|
|
97
|
+
3. Use `--provider codex`, `--provider claude`, or `--provider gemini` explicitly if your default is unclear.
|
|
98
|
+
4. Re-run the command from a clean worktree when using `ai execute-slice`.
|
|
99
|
+
|
|
100
|
+
## GitHub PR Preflight Failure
|
|
101
|
+
|
|
102
|
+
### Symptom
|
|
103
|
+
|
|
104
|
+
- `quiver:ai:pr` or `quiver:ai:doctor` reports missing `gh`, failed `gh auth status`, missing `docs/GITFLOW_PR_GUIDE.md`, unsafe branch, dirty worktree, or missing SSH identity file
|
|
105
|
+
|
|
106
|
+
### Recovery
|
|
107
|
+
|
|
108
|
+
1. Install `gh` for your OS and run `gh auth login`.
|
|
109
|
+
2. Confirm `docs/GITFLOW_PR_GUIDE.md` exists in the project.
|
|
110
|
+
3. Commit or stash unrelated changes before PR preflight.
|
|
111
|
+
4. Pass the SSH host alias and key path separately, for example `--ssh-host-alias github-work --identity-file ~/.ssh/github-work`.
|
|
112
|
+
5. Re-run with `--dry-run`; Quiver validates the setup but does not open a PR in dry-run mode.
|
|
@@ -21,7 +21,7 @@ This document is the canonical implementation workflow for the project.
|
|
|
21
21
|
|
|
22
22
|
## Mode-Aware Context Selection
|
|
23
23
|
|
|
24
|
-
- **Onboarding:** read `
|
|
24
|
+
- **Onboarding:** read `docs/PROJECT_MAP.md`, `docs/AI_CONTEXT.md`, and `docs/AI_ONBOARDING_PROMPT.md` before source files. Use `.quiver/scans/PROJECT_SCAN.json` only when the visible project map is not enough.
|
|
25
25
|
- **Implementation:** read `docs/ai/ACTIVE_SLICE.md` first when it exists; otherwise read `slice.json`, declared files, nearby tests, and only then adjacent source.
|
|
26
26
|
- **Handoff:** read `specs/<project-slug>/HANDOFF.md` when the work was explicitly transferred through a handoff artifact.
|
|
27
27
|
- Validate a received handoff with `npx create-quiver check-handoff specs/<project-slug>/HANDOFF.md` before starting execution.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-quiver",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Quiver CLI for scaffolding projects from the packaged template",
|
|
6
6
|
"license": "MIT",
|
|
@@ -16,6 +16,11 @@
|
|
|
16
16
|
"quiver:plan": "npx create-quiver plan",
|
|
17
17
|
"quiver:graph": "npx create-quiver graph",
|
|
18
18
|
"quiver:next": "npx create-quiver next",
|
|
19
|
+
"quiver:ai:onboard": "npx create-quiver ai onboard",
|
|
20
|
+
"quiver:ai:plan": "npx create-quiver ai plan",
|
|
21
|
+
"quiver:ai:execute-slice": "npx create-quiver ai execute-slice",
|
|
22
|
+
"quiver:ai:pr": "npx create-quiver ai pr",
|
|
23
|
+
"quiver:ai:doctor": "npx create-quiver ai doctor",
|
|
19
24
|
"package:quiver": "bash scripts/package-quiver.sh",
|
|
20
25
|
"smoke:create-quiver": "bash scripts/ci/smoke-create-quiver.sh",
|
|
21
26
|
"smoke:tiered-pack": "bash scripts/ci/smoke-tiered-pack.sh",
|