create-quiver 0.7.0 → 0.9.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/.claude/settings.local.json +52 -0
- package/.github/workflows/ci.yml +2 -2
- package/BACKLOG.md +139 -0
- package/CHANGELOG.md +20 -1
- package/README.md +31 -1
- package/README_FOR_AI.md +25 -13
- package/ROADMAP.md +28 -6
- package/docs/AI_ONBOARDING_PROMPT.md.template +4 -0
- package/docs/COMMANDS.md.template +25 -0
- package/docs/INDEX.md.template +2 -0
- package/docs/SUPPORT_MATRIX.md.template +9 -0
- package/docs/WORKFLOW.md.template +4 -0
- package/docs/examples/graph.md.template +62 -0
- package/docs/examples/next.md.template +27 -0
- package/docs/examples/plan.md.template +28 -0
- package/package.json +5 -2
- package/package.template.json +8 -3
- package/scripts/check-slice-readiness.sh +6 -4
- package/scripts/init-docs.sh +57 -9
- package/specs/[project-name]/HANDOFF.md.template +37 -0
- package/specs/[project-name]/slices/slice-template/slice.json +5 -0
- package/specs/quiver-v08-agent-onboarding-analysis/slices/slice-01-project-scan-command/slice.json +1 -1
- package/specs/quiver-v08-agent-onboarding-analysis/slices/slice-02-ai-onboarding-prompt/slice.json +1 -1
- package/specs/quiver-v08-agent-onboarding-analysis/slices/slice-03-doctor-readme-adoption-flow/slice.json +1 -1
- package/specs/quiver-v12-cross-platform-native-runtime/slices/slice-01-cross-platform-support-contract/slice.json +1 -1
- package/specs/quiver-v12-cross-platform-native-runtime/slices/slice-02-node-init-docs-runtime/slice.json +1 -1
- package/specs/quiver-v12-cross-platform-native-runtime/slices/slice-03-node-migrate-analyze-doctor-flow/slice.json +1 -1
- package/specs/quiver-v12-cross-platform-native-runtime/slices/slice-04-node-slice-lifecycle-commands/slice.json +1 -1
- package/specs/quiver-v12-cross-platform-native-runtime/slices/slice-05-generated-project-scripts-and-migration/slice.json +1 -1
- package/specs/quiver-v13-token-efficient-ai-context/EVIDENCE_REPORT.md +1 -1
- package/specs/quiver-v13-token-efficient-ai-context/SPEC.md +1 -1
- package/specs/quiver-v15-init-required-before-migrate/EVIDENCE_REPORT.md +26 -0
- package/specs/quiver-v15-init-required-before-migrate/SPEC.md +66 -0
- package/specs/quiver-v15-init-required-before-migrate/STATUS.md +26 -0
- package/specs/quiver-v15-init-required-before-migrate/slices/slice-01-migrate-initialization-precondition/slice.json +65 -0
- package/specs/quiver-v15-init-required-before-migrate/slices/slice-02-doctor-not-initialized-guidance/slice.json +61 -0
- package/specs/quiver-v15-init-required-before-migrate/slices/slice-03-docs-smokes-init-before-migrate/slice.json +64 -0
- package/specs/quiver-v16-handoff-contract/EVIDENCE_REPORT.md +26 -0
- package/specs/quiver-v16-handoff-contract/SPEC.md +68 -0
- package/specs/quiver-v16-handoff-contract/STATUS.md +26 -0
- package/specs/quiver-v16-handoff-contract/slices/slice-01-handoff-template-and-contract/slice.json +66 -0
- package/specs/quiver-v16-handoff-contract/slices/slice-02-check-handoff-command/slice.json +70 -0
- package/specs/quiver-v16-handoff-contract/slices/slice-03-handoff-scaffold-optional/slice.json +67 -0
- package/specs/quiver-v17-orchestration-foundation/EVIDENCE_REPORT.md +32 -0
- package/specs/quiver-v17-orchestration-foundation/SPEC.md +79 -0
- package/specs/quiver-v17-orchestration-foundation/STATUS.md +31 -0
- package/specs/quiver-v17-orchestration-foundation/slices/slice-01-ci-matrix-verified/slice.json +68 -0
- package/specs/quiver-v17-orchestration-foundation/slices/slice-02-slice-graph-library/slice.json +65 -0
- package/specs/quiver-v17-orchestration-foundation/slices/slice-03-depends-on-validation/slice.json +72 -0
- package/specs/quiver-v18-slice-orchestration/EVIDENCE_REPORT.md +38 -0
- package/specs/quiver-v18-slice-orchestration/SPEC.md +91 -0
- package/specs/quiver-v18-slice-orchestration/STATUS.md +33 -0
- package/specs/quiver-v18-slice-orchestration/slices/slice-01-plan-command/slice.json +79 -0
- package/specs/quiver-v18-slice-orchestration/slices/slice-02-graph-mvp-tree/slice.json +75 -0
- package/specs/quiver-v18-slice-orchestration/slices/slice-03-graph-extended-formats/slice.json +70 -0
- package/specs/quiver-v18-slice-orchestration/slices/slice-04-next-command/slice.json +73 -0
- package/specs/quiver-v18-stabilization/EVIDENCE_REPORT.md +26 -0
- package/specs/quiver-v18-stabilization/SPEC.md +62 -0
- package/specs/quiver-v18-stabilization/STATUS.md +30 -0
- package/specs/quiver-v18-stabilization/slices/slice-01-fix-legacy-dependency-resolution/CLOSURE_BRIEF.md +29 -0
- package/specs/quiver-v18-stabilization/slices/slice-01-fix-legacy-dependency-resolution/EXECUTION_BRIEF.md +134 -0
- package/specs/quiver-v18-stabilization/slices/slice-01-fix-legacy-dependency-resolution/slice.json +56 -0
- package/specs/quiver-v18-stabilization/slices/slice-02-roadmap-and-branch-cleanup/CLOSURE_BRIEF.md +29 -0
- package/specs/quiver-v18-stabilization/slices/slice-02-roadmap-and-branch-cleanup/EXECUTION_BRIEF.md +118 -0
- package/specs/quiver-v18-stabilization/slices/slice-02-roadmap-and-branch-cleanup/slice.json +57 -0
- package/specs/quiver-v18-stabilization/slices/slice-03-publish-drafts-branch/CLOSURE_BRIEF.md +23 -0
- package/specs/quiver-v18-stabilization/slices/slice-03-publish-drafts-branch/EXECUTION_BRIEF.md +73 -0
- package/specs/quiver-v18-stabilization/slices/slice-03-publish-drafts-branch/slice.json +49 -0
- package/specs/quiver-v19-self-install-dev-dep/EVIDENCE_REPORT.md +19 -0
- package/specs/quiver-v19-self-install-dev-dep/SPEC.md +51 -0
- package/specs/quiver-v19-self-install-dev-dep/STATUS.md +20 -0
- package/specs/quiver-v19-self-install-dev-dep/slices/slice-01-auto-install-dev-dep/CLOSURE_BRIEF.md +29 -0
- package/specs/quiver-v19-self-install-dev-dep/slices/slice-01-auto-install-dev-dep/EXECUTION_BRIEF.md +287 -0
- package/specs/quiver-v19-self-install-dev-dep/slices/slice-01-auto-install-dev-dep/slice.json +56 -0
- package/src/create-quiver/commands/graph.js +97 -0
- package/src/create-quiver/commands/next.js +134 -0
- package/src/create-quiver/commands/plan.js +205 -0
- package/src/create-quiver/index.js +203 -3
- package/src/create-quiver/lib/handoff.js +104 -0
- package/src/create-quiver/lib/init-docs.js +108 -13
- package/src/create-quiver/lib/json.js +14 -0
- package/src/create-quiver/lib/lifecycle.js +3 -2
- package/src/create-quiver/lib/readiness.js +55 -1
- package/src/create-quiver/lib/renderers/dot.js +129 -0
- package/src/create-quiver/lib/renderers/mermaid.js +119 -0
- package/src/create-quiver/lib/renderers/tree.js +116 -0
- package/src/create-quiver/lib/slice-graph.js +453 -0
- package/src/create-quiver/lib/slice.js +2 -1
- package/src/create-quiver/lib/state.js +50 -0
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
{
|
|
2
|
+
"permissions": {
|
|
3
|
+
"allow": [
|
|
4
|
+
"Bash(git fetch *)",
|
|
5
|
+
"Bash(git checkout *)",
|
|
6
|
+
"Bash(git add *)",
|
|
7
|
+
"Bash(git commit -m ' *)",
|
|
8
|
+
"Bash(git cherry-pick *)",
|
|
9
|
+
"Bash(git reset *)",
|
|
10
|
+
"Bash(gh pr create --title 'docs: register v17-v22 orchestration plan and park web console idea' --base main --head docs/register-orchestration-plan-park-web-console --body ' *)",
|
|
11
|
+
"Bash(gh auth *)",
|
|
12
|
+
"Bash(gh pr *)",
|
|
13
|
+
"Bash(node -e \"const g=require\\('./src/create-quiver/lib/slice-graph'\\); const slices=g.readAllSlices\\('.'\\); console.log\\('Total slices:', slices.length\\); const graph=g.buildGraph\\(slices\\); const levels=g.computeLevels\\(graph\\); console.log\\('Levels:', levels.length\\);\")",
|
|
14
|
+
"Bash(npx . plan)",
|
|
15
|
+
"Bash(git pull *)",
|
|
16
|
+
"Read(//Users/fabrijk/Documents/Work/Proyectos Personales/nika/frameworks/.worktrees/quiver/bugfix-QUIVER-01-fix-legacy-dependency-resolution/**)",
|
|
17
|
+
"Bash(node --test tests/)",
|
|
18
|
+
"Bash(node --test tests/**/*.test.js)",
|
|
19
|
+
"Bash(node bin/create-quiver.js plan)",
|
|
20
|
+
"Bash(echo \"EXIT_$?\")",
|
|
21
|
+
"Bash(node bin/create-quiver.js plan --json)",
|
|
22
|
+
"Bash(node -e \"const d=JSON.parse\\(require\\('fs'\\).readFileSync\\('/dev/stdin','utf8'\\)\\); console.log\\('plan items:', Array.isArray\\(d.plan\\) ? d.plan.length : 'NOT ARRAY'\\); console.log\\('critical_path:', Array.isArray\\(d.critical_path\\)\\); console.log\\('total_hours:', typeof d.total_hours\\); process.exit\\(Array.isArray\\(d.plan\\) && Array.isArray\\(d.critical_path\\) && typeof d.total_hours === 'number' ? 0 : 1\\)\")",
|
|
23
|
+
"Bash(grep -v \"^\\\\-\\\\-$\")",
|
|
24
|
+
"Bash(echo \"EXIT:$?\")",
|
|
25
|
+
"Bash(node -e \"const d=JSON.parse\\(require\\('fs'\\).readFileSync\\('/tmp/plan_json.txt','utf8'\\)\\); console.log\\('plan:', Array.isArray\\(d.plan\\) ? d.plan.length + ' items' : 'INVALID'\\); console.log\\('critical_path:', Array.isArray\\(d.critical_path\\)\\); console.log\\('total_hours:', typeof d.total_hours\\)\")",
|
|
26
|
+
"Bash(xargs git branch -d)",
|
|
27
|
+
"Bash(git branch *)",
|
|
28
|
+
"Read(//private/tmp/**)",
|
|
29
|
+
"Read(//Users/fabrijk/Documents/Work/Proyectos Personales/nika/frameworks/quiver-v18-slice02/**)",
|
|
30
|
+
"Bash(git worktree *)",
|
|
31
|
+
"Bash(git ls-remote *)",
|
|
32
|
+
"Bash(node *)",
|
|
33
|
+
"Bash(npm view *)",
|
|
34
|
+
"Bash(bash scripts/release-quiver.sh)",
|
|
35
|
+
"Bash(git stash *)",
|
|
36
|
+
"Bash(npm whoami *)",
|
|
37
|
+
"Bash(bash scripts/release-quiver.sh --publish-current)",
|
|
38
|
+
"Bash(npm pkg *)",
|
|
39
|
+
"Bash(NPM_TOKEN=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 npm publish --access public)",
|
|
40
|
+
"Bash(NPM_TOKEN=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 npm publish --access public)",
|
|
41
|
+
"Bash(npm info *)",
|
|
42
|
+
"Bash(npm publish *)",
|
|
43
|
+
"Bash(rm -rf /tmp/quiver-skip-test)",
|
|
44
|
+
"Bash(mkdir -p /tmp/quiver-skip-test)",
|
|
45
|
+
"Bash(echo '{\"name\":\"test\",\"scripts\":{}}')",
|
|
46
|
+
"Bash(ls /tmp/quiver-skip-test/node_modules/create-quiver)",
|
|
47
|
+
"Bash(rm -rf /tmp/quiver-install-test)",
|
|
48
|
+
"Bash(mkdir -p /tmp/quiver-install-test)",
|
|
49
|
+
"Bash(npm config *)"
|
|
50
|
+
]
|
|
51
|
+
}
|
|
52
|
+
}
|
package/.github/workflows/ci.yml
CHANGED
|
@@ -22,8 +22,8 @@ jobs:
|
|
|
22
22
|
|
|
23
23
|
- name: Validate slice templates
|
|
24
24
|
run: |
|
|
25
|
-
node -e "
|
|
26
|
-
node -e "
|
|
25
|
+
node -e "const fs=require('fs'); const {parseJsonWithComments}=require('./src/create-quiver/lib/json'); parseJsonWithComments(fs.readFileSync('specs/[project-name]/slices/slice-template/slice.json', 'utf8'))"
|
|
26
|
+
node -e "const fs=require('fs'); const {parseJsonWithComments}=require('./src/create-quiver/lib/json'); parseJsonWithComments(fs.readFileSync('specs/quiver-v01/slices/slice-01-legal-integrity/slice.json', 'utf8'))"
|
|
27
27
|
|
|
28
28
|
cross-platform-smoke:
|
|
29
29
|
strategy:
|
package/BACKLOG.md
ADDED
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
# Quiver Backlog
|
|
2
|
+
|
|
3
|
+
> **Purpose:** Emerging patterns and ideas that are not yet scoped as specs.
|
|
4
|
+
> Reviewed periodically to decide which ones graduate into a spec.
|
|
5
|
+
>
|
|
6
|
+
> **Audience:** The Quiver maintainer and any AI agent doing project onboarding.
|
|
7
|
+
> **Not to be confused with:** `ROADMAP.md` (committed work with versions) or
|
|
8
|
+
> active specs in `specs/quiver-vNN-*/` (in-progress or completed work).
|
|
9
|
+
|
|
10
|
+
## How this file works
|
|
11
|
+
|
|
12
|
+
- Each entry is an **idea, pattern, or methodology** observed in real use.
|
|
13
|
+
- Entries stay here until one of three things happens:
|
|
14
|
+
1. Enough evidence accumulates to promote it to a spec (move to `ROADMAP.md`).
|
|
15
|
+
2. Evidence shows it is not worth formalizing (mark `parked` with reasoning).
|
|
16
|
+
3. It turns out to already exist elsewhere (mark `resolved` with the link).
|
|
17
|
+
- **Do not delete parked entries.** The reasoning is valuable when the idea comes back.
|
|
18
|
+
- **Do not auto-promote.** A pattern graduates to a spec only when the maintainer confirms it is time.
|
|
19
|
+
|
|
20
|
+
## Entry template
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
### [Short name]
|
|
24
|
+
|
|
25
|
+
- **Observed:** YYYY-MM-DD
|
|
26
|
+
- **Status:** emerging | evaluating | promoted | parked | resolved
|
|
27
|
+
- **Evidence so far:** <how often has this pattern appeared in real work>
|
|
28
|
+
- **Problem it solves:** <one or two sentences>
|
|
29
|
+
- **Proposed shape:** <what a formalization would look like>
|
|
30
|
+
- **Cost to formalize:** <rough estimate in slices/hours>
|
|
31
|
+
- **Reasons to wait:** <what would count as insufficient evidence>
|
|
32
|
+
- **Trigger to promote:** <concrete threshold to move into ROADMAP.md>
|
|
33
|
+
- **Related:** <links to specs, conversations, or handoffs>
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Active Entries
|
|
39
|
+
|
|
40
|
+
### Slice Orchestration and Tooling Commands
|
|
41
|
+
|
|
42
|
+
- **Observed:** 2026-04-23
|
|
43
|
+
- **Status:** planned
|
|
44
|
+
- **Evidence so far:** 0 real cases. Drafted by the maintainer anticipating multi-model coordination (Opus/GPT-5.4 planning, Sonnet/GPT-5.4 Mini/Qwen Code execution) and visibility pain once specs accumulate.
|
|
45
|
+
- **Problem it solves:** Today coordinating multiple agents across pending slices requires ad-hoc grep, ls, and git commands. There is no canonical way to ask "what runs next", "what can run in parallel", "what is this repo's state", or "how expensive is this slice to load".
|
|
46
|
+
- **Proposed shape:**
|
|
47
|
+
- v17 Orchestration Foundation (CI matrix, `lib/slice-graph.js`, `depends_on` validation)
|
|
48
|
+
- v18 Slice Orchestration (`plan`, `graph`, `next`)
|
|
49
|
+
- v19 Project Visibility (`status`, `estimate`, `lint-spec`)
|
|
50
|
+
- v20 Context Diagnostics (`cost`, `diff-pack`, `replay`)
|
|
51
|
+
- v21 Slice Archaeology (`archive`, `blame-slice`)
|
|
52
|
+
- v22 Deferred Tooling (`fork-slice`, `squash-spec`, `share`, evidence-gated per slice)
|
|
53
|
+
- **Cost to formalize:** ~55h across 15 slices in 4 specs (v19–v22). Spec/slice files drafted under `drafts/v19-v22-orchestration-followups`.
|
|
54
|
+
- **Reasons to wait:** v17 and v18 shipped. v18 must pass its validation checkpoint (≥1 week real use) before v19 starts. Building orchestration before validating the existing commands risks reinforcing a design that does not earn its place.
|
|
55
|
+
- **Trigger to promote (per spec):**
|
|
56
|
+
- v19: immediately after v18 checkpoint passes (≥1 week real use of `plan`, `graph`, `next`)
|
|
57
|
+
- v20–v21: previous spec validation checkpoint passed (≥1 week real use)
|
|
58
|
+
- v22 per slice: explicit occurrence recorded in this file for each of `fork-slice`, `squash-spec`, `share`
|
|
59
|
+
- **Related:**
|
|
60
|
+
- `drafts/v19-v22-orchestration-followups` (parked spec drafts)
|
|
61
|
+
- `ROADMAP.md` Orchestration and Tooling section
|
|
62
|
+
|
|
63
|
+
### Handoff Contract
|
|
64
|
+
|
|
65
|
+
- **Observed:** 2026-04-23
|
|
66
|
+
- **Status:** emerging
|
|
67
|
+
- **Evidence so far:** 1 real case. `specs/quiver-v14-tiered-context-pack/HANDOFF.md`, written to reconcile v13 and v14 before either could execute. Used to delegate meta-work to a separate agent with self-contained context, explicit validation, and negative constraints.
|
|
68
|
+
- **Problem it solves:** Today Quiver has no first-class vehicle for work that is neither a slice (product code) nor a spec (planning document). Examples: reconciling two in-flight specs, delegating a cleanup task to a different agent, transferring planning context from a planning-tier model (Opus, GPT-5.4) to an execution-tier model (Sonnet, GPT-5.4 Mini, Qwen Code). Without a vehicle, these tasks happen in ad-hoc chats or untracked commits and lose reproducibility.
|
|
69
|
+
- **Proposed shape:**
|
|
70
|
+
- `HANDOFF.md.template` with canonical sections (Background, What you will change, Validation checklist, Out of scope, Expected deliverable, Constraints)
|
|
71
|
+
- Convention for location (for example `specs/<spec>/HANDOFF-<slug>.md` or `specs/handoffs/<date>-<slug>.md`)
|
|
72
|
+
- Convention for lifecycle (created when needed, deleted after validation passes)
|
|
73
|
+
- Optional `create-quiver new-handoff <slug>` command
|
|
74
|
+
- Optional `create-quiver check-handoff <path>` that validates canonical sections
|
|
75
|
+
- Optional smoke that confirms merged handoffs followed the contract
|
|
76
|
+
- **Explicitly not** a new `type` in `slice.json` — handoffs are orthogonal to slices, not a variant of them
|
|
77
|
+
- **Cost to formalize:** ~2-3 slices, ~8-10 hours
|
|
78
|
+
- **Reasons to wait:** A single occurrence is not enough evidence that this needs tooling. The ad-hoc `HANDOFF.md` already works. Formalizing now risks building infrastructure for a case that may not repeat often enough to justify the surface area.
|
|
79
|
+
- **Trigger to promote:** 3 or more organic handoffs appear in real work over 2-3 months without this backlog entry being revisited. Or: one external user reports they wrote a handoff-like artifact for their own spec.
|
|
80
|
+
- **Related:**
|
|
81
|
+
- `specs/quiver-v14-tiered-context-pack/HANDOFF.md` (the first real handoff)
|
|
82
|
+
- `specs/quiver-v16-handoff-contract/SPEC.md` (draft spec created, pending evidence and execution)
|
|
83
|
+
- `ROADMAP.md` "Post-Checkpoint Plan" section
|
|
84
|
+
- Multi-model setup context: planning models (Opus, GPT-5.4) to execution models (Sonnet, GPT-5.4 Mini, Qwen Code)
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## Parked Entries
|
|
89
|
+
|
|
90
|
+
### Local Web Console for Slice Visualization
|
|
91
|
+
|
|
92
|
+
- **Observed:** 2026-05-12
|
|
93
|
+
- **Status:** parked
|
|
94
|
+
- **Evidence so far:** 0 real cases. Standalone prototype explored (`devflow-console`, Express + WebSocket + React, ~350 LoC, lives outside this repo at `/Users/fabrijk/Downloads/devflow-console`).
|
|
95
|
+
- **Problem it would solve:** Visual graph of slices (parallel vs sequential, file-level conflicts), button-driven workflow, in-browser terminal, reusable prompts panel.
|
|
96
|
+
- **Why parked:**
|
|
97
|
+
- Breaks Quiver's CLI-first identity; turns a scaffolder into a mini-IDE.
|
|
98
|
+
- ~80% of visible value duplicates planned CLI work in v19–v22 (`quiver:status`, `quiver:estimate`, etc.) and already-shipped v18 (`quiver:plan`, `quiver:graph`, `quiver:next`).
|
|
99
|
+
- Real security surface: arbitrary command execution via HTTP, DNS rebinding against localhost, open CORS, no auth, race conditions on shared filesystem state.
|
|
100
|
+
- Adds heavy maintenance cost (React + Vite + Express + ws) to a package distributed as a lightweight `npx create-quiver`.
|
|
101
|
+
- Multi-model agents (the actual audience for Quiver workflows) do not use UI.
|
|
102
|
+
- **Cheaper alternatives identified first:**
|
|
103
|
+
- `quiver:graph --html` static export (no server, single self-contained file). Explore as subflag of v18 if Mermaid proves insufficient.
|
|
104
|
+
- Mermaid output shipped in v18 slice-03, renders natively in VSCode/IntelliJ.
|
|
105
|
+
- Optional VSCode extension as companion if UI is ever justified.
|
|
106
|
+
- **Trigger to promote:**
|
|
107
|
+
1. v18 (`plan`, `graph`, `next`) is used in real work for ≥3 weeks after its checkpoint passes.
|
|
108
|
+
2. Mermaid/ASCII output of `quiver:graph` is documented as insufficient with concrete friction examples.
|
|
109
|
+
3. `quiver:graph --html` static export is built and also proves insufficient.
|
|
110
|
+
4. If ever implemented: must be a separate companion package (e.g. `@quiver/console`) or VSCode extension — never integrated into `create-quiver` core.
|
|
111
|
+
- **Related:**
|
|
112
|
+
- Reference prototype: outside repo (not tracked)
|
|
113
|
+
- `specs/quiver-v18-slice-orchestration/` — CLI alternative already shipped
|
|
114
|
+
|
|
115
|
+
## Resolved Entries
|
|
116
|
+
|
|
117
|
+
_None yet._
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## Review cadence
|
|
122
|
+
|
|
123
|
+
Revisit this file:
|
|
124
|
+
|
|
125
|
+
- After each spec reaches its validation checkpoint
|
|
126
|
+
- Before writing a new spec (to confirm the work is not already an emerging backlog pattern)
|
|
127
|
+
- When adding a new entry (check if it overlaps with an existing one)
|
|
128
|
+
|
|
129
|
+
## Discovery hooks
|
|
130
|
+
|
|
131
|
+
This file is referenced from:
|
|
132
|
+
|
|
133
|
+
- `README.md` References section
|
|
134
|
+
- `README_FOR_AI.md` onboarding guidance
|
|
135
|
+
- `ROADMAP.md` Post-Checkpoint Plan
|
|
136
|
+
|
|
137
|
+
If you are an AI agent doing onboarding, read this file after `ROADMAP.md` and
|
|
138
|
+
before proposing any new spec. Ideas that look novel may already be tracked
|
|
139
|
+
here with documented reasons not to formalize them yet.
|
package/CHANGELOG.md
CHANGED
|
@@ -4,11 +4,30 @@ All notable changes to this project will be documented in this file.
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [0.9.0] - 2026-05-14
|
|
8
|
+
|
|
7
9
|
### Added
|
|
8
10
|
|
|
9
|
-
-
|
|
11
|
+
- Auto-install `create-quiver` as a dev dependency after `init` and `migrate` — detects yarn/pnpm/bun/npm via lockfiles and runs the appropriate install command
|
|
12
|
+
- `--skip-install` flag to suppress the dev dependency install step (useful for CI environments)
|
|
13
|
+
|
|
14
|
+
## [0.8.0] - 2026-05-13
|
|
15
|
+
|
|
16
|
+
### Added
|
|
17
|
+
|
|
18
|
+
- `quiver:plan` — lists all pending slices in dependency order with estimated hours, status, and critical path
|
|
19
|
+
- `quiver:graph` — visualizes the slice dependency graph in ASCII tree, Mermaid, and DOT formats
|
|
20
|
+
- `quiver:next` — suggests the next ready slice; supports `--all-ready`, `--json`, and `--auto-start`
|
|
21
|
+
- Slice graph library — `readAllSlices`, `buildGraph`, `topoSort`, `computeLevels`, `detectFileConflicts` for programmatic graph access
|
|
22
|
+
- `depends_on` and `parallel_safe` fields with validation in `check-slice`
|
|
23
|
+
- JSON-with-comments support for slice templates
|
|
24
|
+
- Cross-platform CI matrix covering macOS, Linux, and Windows for the Node-native runtime
|
|
10
25
|
- Node-native generated project npm scripts and additive migration support for existing projects
|
|
11
26
|
|
|
27
|
+
### Fixed
|
|
28
|
+
|
|
29
|
+
- `quiver:plan` no longer crashes on repos with legacy bare spec names in the `dependencies` field (e.g. `"quiver-v01"`) — these are silently dropped instead of throwing `MISSING_DEPENDENCY`
|
|
30
|
+
|
|
12
31
|
## [0.4.0] - 2026-04-21
|
|
13
32
|
|
|
14
33
|
### Added
|
package/README.md
CHANGED
|
@@ -38,14 +38,19 @@ Run the local analyzer and then validate the generated contract from the project
|
|
|
38
38
|
|
|
39
39
|
```bash
|
|
40
40
|
npx create-quiver analyze
|
|
41
|
+
npx create-quiver graph
|
|
41
42
|
npx create-quiver doctor
|
|
43
|
+
npx create-quiver next
|
|
42
44
|
```
|
|
43
45
|
|
|
46
|
+
Use `npx create-quiver graph --format mermaid` for PR-ready Markdown or `npx create-quiver graph --format dot` for Graphviz source.
|
|
47
|
+
|
|
44
48
|
If you need to target another directory from outside the project, pass `--dir` explicitly. For the current project root, omit it.
|
|
45
49
|
|
|
46
50
|
The analyzer creates `docs/PROJECT_SCAN.json` and `docs/PROJECT_MAP.md`. These files give the AI agent a deterministic project map before it edits context docs.
|
|
47
51
|
|
|
48
52
|
The doctor checks the generated project contract and prints the next workflow steps. If the scan artifacts are missing, it recommends `npx create-quiver analyze` first.
|
|
53
|
+
`npx create-quiver next` prints the next ready slice and can auto-start it behind a confirmation prompt.
|
|
49
54
|
|
|
50
55
|
### Project NPM Scripts
|
|
51
56
|
|
|
@@ -53,6 +58,9 @@ Generated projects include `quiver:*` npm scripts that call the Node CLI and are
|
|
|
53
58
|
|
|
54
59
|
```bash
|
|
55
60
|
npm run quiver:analyze
|
|
61
|
+
npm run quiver:plan
|
|
62
|
+
npm run quiver:graph
|
|
63
|
+
npm run quiver:next
|
|
56
64
|
npm run quiver:doctor
|
|
57
65
|
npm run quiver:migrate
|
|
58
66
|
npm run quiver:start-slice -- specs/<project-slug>/slices/slice-01/slice.json
|
|
@@ -63,7 +71,12 @@ npm run quiver:check-scope -- specs/<project-slug>/slices/slice-01/slice.json
|
|
|
63
71
|
npm run quiver:refresh-active-slices
|
|
64
72
|
```
|
|
65
73
|
|
|
74
|
+
`npm run quiver:graph` prints the tree view by default. Pass `--format mermaid` or `--format dot` when you need an exportable graph artifact.
|
|
75
|
+
`npm run quiver:next` points to the next ready slice and can auto-start it behind a confirmation prompt.
|
|
76
|
+
`npx create-quiver next --all-ready` shows the full ready level when you want the whole queue instead of one slice.
|
|
77
|
+
|
|
66
78
|
The legacy Bash wrappers remain in `tools/scripts/` for compatibility, but new project-level automation should prefer the `quiver:*` scripts and the direct `npx create-quiver ...` commands.
|
|
79
|
+
`npm run quiver:migrate` is only for projects that were already initialized by Quiver.
|
|
67
80
|
|
|
68
81
|
### 3. Upgrade Existing Projects
|
|
69
82
|
|
|
@@ -73,7 +86,17 @@ If the project already had Quiver from an older version, upgrade it from the pro
|
|
|
73
86
|
cd /path/to/your-project
|
|
74
87
|
npx create-quiver migrate
|
|
75
88
|
npx create-quiver analyze
|
|
89
|
+
npx create-quiver graph
|
|
76
90
|
npx create-quiver doctor
|
|
91
|
+
npx create-quiver next
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
Use `npx create-quiver graph --format mermaid` for GitHub-friendly graph embeds or `npx create-quiver graph --format dot` for Graphviz pipelines.
|
|
95
|
+
|
|
96
|
+
If the project never ran Quiver initialization before, do not use `migrate` as bootstrap. Run:
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
npx create-quiver --name "Project Name"
|
|
77
100
|
```
|
|
78
101
|
|
|
79
102
|
If your team prefers a pinned local dependency, update the package first and then run the same flow:
|
|
@@ -82,9 +105,12 @@ If your team prefers a pinned local dependency, update the package first and the
|
|
|
82
105
|
npm install --save-dev create-quiver@latest
|
|
83
106
|
npx create-quiver migrate
|
|
84
107
|
npx create-quiver analyze
|
|
108
|
+
npx create-quiver graph
|
|
85
109
|
npx create-quiver doctor
|
|
86
110
|
```
|
|
87
111
|
|
|
112
|
+
The tree output remains the default, but Mermaid and DOT are available on demand for exported docs and slide decks.
|
|
113
|
+
|
|
88
114
|
### 4. Ask The AI To Prepare Context
|
|
89
115
|
|
|
90
116
|
Open your AI agent in the target project and run this short handoff:
|
|
@@ -130,6 +156,10 @@ Quiver generates a project-local workflow under:
|
|
|
130
156
|
- `docs/` for project context, workflow, support, troubleshooting, and AI guidance
|
|
131
157
|
- `docs/PROJECT_SCAN.json` and `docs/PROJECT_MAP.md` after `create-quiver analyze`
|
|
132
158
|
- `docs/AI_ONBOARDING_PROMPT.md` as the generated handoff prompt for the AI agent
|
|
159
|
+
- `specs/<project-slug>/HANDOFF.md` as the exceptional transfer artifact between agents or phases
|
|
160
|
+
- `npx create-quiver new-handoff <spec-slug>` to scaffold an optional handoff artifact when work needs to move between agents or phases
|
|
161
|
+
- `npx create-quiver check-handoff specs/<project-slug>/HANDOFF.md` to validate a transferred handoff before execution
|
|
162
|
+
- `docs/COMMANDS.md` as the canonical command reference table for orchestration
|
|
133
163
|
- `specs/<project-slug>/` for the project spec, status, evidence, and slice contracts
|
|
134
164
|
- `tools/scripts/` for slice lifecycle and readiness gates
|
|
135
165
|
- `.github/` for default PR, issue, and CI templates
|
|
@@ -146,7 +176,7 @@ Use the manual flow only when developing Quiver locally or testing a template ch
|
|
|
146
176
|
```
|
|
147
177
|
|
|
148
178
|
The CLI path is the supported adoption path for users.
|
|
149
|
-
For analyzed projects, the agent handoff prompt lives at `docs/AI_ONBOARDING_PROMPT.md` in the generated project.
|
|
179
|
+
For analyzed projects, the agent handoff prompt lives at `docs/AI_ONBOARDING_PROMPT.md` in the generated project. If a bounded transfer between agents or phases 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`.
|
|
150
180
|
|
|
151
181
|
## For AI Agents
|
|
152
182
|
|
package/README_FOR_AI.md
CHANGED
|
@@ -8,14 +8,17 @@ Important: slice numbering resets inside each spec. `slice-01` is the first slic
|
|
|
8
8
|
The canonical installer entrypoint is `npx create-quiver` run from the target project root.
|
|
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
|
-
If the project already exists from an older Quiver version, run `npx create-quiver migrate` before `analyze` from the project root.
|
|
12
|
-
|
|
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, and `quiver:next` for the next ready slice. Use `quiver:graph --format mermaid` for PR-ready Markdown or `quiver:graph --format dot` for Graphviz source.
|
|
13
14
|
Maintain release notes and package publishing with `scripts/release-quiver.sh`.
|
|
14
15
|
The primary generated project context for agents is `docs/AI_CONTEXT.md`.
|
|
15
16
|
The project map is the single source of truth for stack, package manager, commands, and file hints: `docs/PROJECT_MAP.md`.
|
|
16
17
|
The universal router for generated projects is `AGENTS.md`; read it before `docs/AI_CONTEXT.md` and `docs/AI_ONBOARDING_PROMPT.md`.
|
|
17
18
|
Generated projects also get `docs/DECISIONS.md`; use it for durable choices that should not be re-litigated.
|
|
18
19
|
If a generated project has been analyzed, the exact agent handoff prompt is `docs/AI_ONBOARDING_PROMPT.md`.
|
|
20
|
+
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
|
+
Use `npx create-quiver check-handoff specs/<project-slug>/HANDOFF.md` to validate a transferred handoff before execution.
|
|
19
22
|
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.
|
|
20
23
|
|
|
21
24
|
## Token-Efficient Reading Rules
|
|
@@ -25,6 +28,8 @@ Use the smallest context that still answers the current task.
|
|
|
25
28
|
- **Onboarding:** start from `docs/PROJECT_MAP.md`, `docs/PROJECT_SCAN.json`, `docs/AI_CONTEXT.md`, and `docs/AI_ONBOARDING_PROMPT.md` before opening source files.
|
|
26
29
|
- **Onboarding router:** start from `AGENTS.md` first, then the onboarding files above.
|
|
27
30
|
- **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
|
+
- **Handoff:** start from `specs/<project-slug>/HANDOFF.md` when the work was explicitly transferred through a handoff artifact.
|
|
32
|
+
- **Handoff scaffold:** if no handoff exists yet and the work needs one, use `npx create-quiver new-handoff <spec-slug>` first.
|
|
28
33
|
- **Review:** start from `git diff` and the slice scope before opening full files.
|
|
29
34
|
- **Debug:** start from the command, exit code, first relevant error, stacktrace, and the nearest changed code before reading long logs.
|
|
30
35
|
|
|
@@ -38,11 +43,15 @@ Prefer maps, metadata, diffs, and summaries over full file reads when they are e
|
|
|
38
43
|
- Not every project needs every optional file.
|
|
39
44
|
- 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.
|
|
40
45
|
- The onboarding prompt lives in `docs/AI_ONBOARDING_PROMPT.md` and should reference the analyzer outputs.
|
|
46
|
+
- `specs/<project-slug>/HANDOFF.md` is reserved for exceptional context transfers between agents or phases.
|
|
41
47
|
- Initial onboarding should complete context docs and report assumptions before any feature work starts.
|
|
42
48
|
- The normal workflow runs from the project root without `--dir`; use `--dir` only when targeting another directory explicitly.
|
|
43
49
|
- The cross-platform work targets native macOS, Linux, and Windows shells; Bash is a legacy compatibility path until the runtime slices land, and Windows support is only considered verified once the CI matrix is green.
|
|
44
50
|
- The support contract lives in `docs/SUPPORT_MATRIX.md` and `docs/TROUBLESHOOTING.md`.
|
|
45
|
-
- Generated project npm scripts should prefer `quiver:*` names such as `quiver:analyze`, `quiver:doctor`, `quiver:start-slice`, `quiver:check-slice`, and `quiver:check-pr`.
|
|
51
|
+
- Generated project npm scripts should prefer `quiver:*` names such as `quiver:analyze`, `quiver:plan`, `quiver:graph`, `quiver:next`, `quiver:doctor`, `quiver:start-slice`, `quiver:check-slice`, and `quiver:check-pr`.
|
|
52
|
+
- `quiver:graph` defaults to the tree view; choose `--format mermaid` or `--format dot` when you need exportable graph artifacts.
|
|
53
|
+
- `quiver:next` prints the next ready slice and can auto-start it behind a confirmation prompt.
|
|
54
|
+
- `quiver:next --all-ready` prints the whole ready level when you want to inspect every actionable slice at once.
|
|
46
55
|
|
|
47
56
|
## Initialization Flow
|
|
48
57
|
|
|
@@ -97,16 +106,19 @@ After initialization, the user should:
|
|
|
97
106
|
3. Fill in `docs/CONTEXTO.md`
|
|
98
107
|
4. Fill in `docs/STATUS.md`
|
|
99
108
|
5. Run `npx create-quiver analyze` if scan artifacts are missing
|
|
100
|
-
6. If the project already exists from an older Quiver version, run `npx create-quiver migrate`
|
|
101
|
-
7.
|
|
102
|
-
8.
|
|
103
|
-
9.
|
|
104
|
-
10.
|
|
105
|
-
11.
|
|
106
|
-
12.
|
|
107
|
-
13.
|
|
108
|
-
14.
|
|
109
|
-
|
|
109
|
+
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`
|
|
111
|
+
8. Ask the AI agent to execute `docs/AI_ONBOARDING_PROMPT.md`
|
|
112
|
+
9. Review context docs before creating the first implementation slice
|
|
113
|
+
10. Open and merge the documentation PR that establishes the workflow files
|
|
114
|
+
11. Create the first slice in `specs/{{PROJECT_SLUG}}/slices/[slice-id]/`
|
|
115
|
+
12. Add `ticket` and `git.*`
|
|
116
|
+
13. Run `npx create-quiver plan` or `npm run quiver:plan`
|
|
117
|
+
14. Run `npx create-quiver next` or `npm run quiver:next`
|
|
118
|
+
14. Run `npx create-quiver start-slice [--allow-draft] <slice.json>` or `npm run quiver:start-slice -- [--allow-draft] <slice.json>`
|
|
119
|
+
15. Make one commit per slice
|
|
120
|
+
16. Open one PR per spec
|
|
121
|
+
17. Validate the slice and the final PR with the workflow gates
|
|
110
122
|
|
|
111
123
|
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.
|
|
112
124
|
|
package/ROADMAP.md
CHANGED
|
@@ -30,18 +30,22 @@
|
|
|
30
30
|
- Onboarding README flow polish
|
|
31
31
|
- Local project installation guidance
|
|
32
32
|
|
|
33
|
-
## v0.6 (
|
|
33
|
+
## v0.6 (shipped)
|
|
34
|
+
|
|
35
|
+
> Scope absorbed into v0.7. Node-native runtime and `quiver:*` npm scripts
|
|
36
|
+
> landed together with the token-efficient context pack work.
|
|
34
37
|
|
|
35
38
|
- Cross-platform CI matrix (macOS, Linux, Windows) for Node-native runtime
|
|
36
39
|
- Node-native generated project npm scripts (`quiver:*`)
|
|
37
40
|
- Additive migration support for existing projects
|
|
38
41
|
|
|
39
|
-
## v0.7 — Token-Efficient AI Context Packs (
|
|
42
|
+
## v0.7 — Token-Efficient AI Context Packs (shipped 2026-04-23)
|
|
40
43
|
|
|
41
|
-
- **v13** — Token-efficient AI modes guidance (
|
|
42
|
-
- **v14** — Tiered context pack: QUICK/STANDARD/DEEP tiers, AGENTS.md router, ACTIVE_SLICE lifecycle, YAML front-matter, dedup (
|
|
44
|
+
- **v13** — Token-efficient AI modes guidance (Completed)
|
|
45
|
+
- **v14** — Tiered context pack: QUICK/STANDARD/DEEP tiers, AGENTS.md router, ACTIVE_SLICE lifecycle, YAML front-matter, dedup (Completed)
|
|
46
|
+
- **v15** — Init required before migrate (Completed)
|
|
43
47
|
- v13 slice-04 reconciled into v14 slice-05 (2026-04-23); v13 slice-02 narrowed to `DECISIONS.md` only
|
|
44
|
-
-
|
|
48
|
+
- Validation checkpoint passed after real-world use and spec completion
|
|
45
49
|
|
|
46
50
|
## Post-Checkpoint Plan (do not execute before validating v14)
|
|
47
51
|
|
|
@@ -49,7 +53,25 @@
|
|
|
49
53
|
> evidence from v14 in real use. Rescope or drop anything that does not
|
|
50
54
|
> respond to observed friction.
|
|
51
55
|
|
|
52
|
-
###
|
|
56
|
+
### Orchestration and Tooling (v19–v22, spec drafts created 2026-04-23)
|
|
57
|
+
|
|
58
|
+
Draft specs exist but are **not executed until v18 passes its validation checkpoint**. Each subsequent spec requires the previous one to pass its own checkpoint before it starts.
|
|
59
|
+
|
|
60
|
+
- **v19 — Project Visibility** (3 slices, ~11h): `quiver:status`, `quiver:estimate`, `quiver:lint-spec`
|
|
61
|
+
- **v20 — Context Diagnostics** (3 slices, ~13h): `quiver:cost`, `quiver:diff-pack`, `quiver:replay`
|
|
62
|
+
- **v21 — Slice Archaeology** (2 slices, ~7h): `quiver:archive`, `quiver:blame-slice`; `bisect-slice` documented via `git bisect run` in TROUBLESHOOTING
|
|
63
|
+
- **v22 — Deferred Tooling** (3 slices, ~10h, evidence-gated): `quiver:fork-slice`, `quiver:squash-spec`, `quiver:share`
|
|
64
|
+
|
|
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
|
+
|
|
67
|
+
### v0.8 — Handoff Contract (draft spec created, pending evidence)
|
|
68
|
+
|
|
69
|
+
- Canonical `HANDOFF.md.template` for exceptional context transfers
|
|
70
|
+
- `create-quiver check-handoff <path>` validation for structure and placement
|
|
71
|
+
- Optional `create-quiver new-handoff <slug>` scaffold
|
|
72
|
+
- Keep handoffs orthogonal to `slice.json`, not a new slice type
|
|
73
|
+
|
|
74
|
+
### v0.9 — Context Hygiene and Diagnostics (proposed, not yet spec-ed)
|
|
53
75
|
|
|
54
76
|
- Analyzer noise filter (ignore lockfiles, dist/, build/, binaries, generated files)
|
|
55
77
|
- `create-quiver token-cost` diagnostic (4 chars/token heuristic)
|
|
@@ -15,12 +15,16 @@ You are the onboarding agent for this project. Your job is to analyze the genera
|
|
|
15
15
|
6. `specs/{{PROJECT_SLUG}}/SPEC.md`
|
|
16
16
|
7. `specs/{{PROJECT_SLUG}}/STATUS.md`
|
|
17
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
|
|
18
20
|
|
|
19
21
|
## Mission
|
|
20
22
|
|
|
21
23
|
- Use the analyzer outputs to understand the repository instead of guessing.
|
|
22
24
|
- Treat `docs/PROJECT_MAP.md` as the single source of truth for stack, package manager, commands, and file hints.
|
|
23
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.
|
|
24
28
|
- Preserve Quiver workflow invariants: one slice = one commit, one spec = one PR.
|
|
25
29
|
- Ask for confirmation before making product-code changes.
|
|
26
30
|
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Commands
|
|
2
|
+
|
|
3
|
+
**Project:** {{PROJECT_NAME}}
|
|
4
|
+
**Last updated:** {{FECHA}}
|
|
5
|
+
|
|
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
|
+
|
|
9
|
+
## Command Table
|
|
10
|
+
|
|
11
|
+
| Command | Purpose | OS | Since | Example |
|
|
12
|
+
|---------|---------|----|-------|---------|
|
|
13
|
+
| `quiver:plan` | Sequential orchestration planning command | macOS, Linux, Windows | v0.18 | [docs/examples/plan.md](./examples/plan.md) |
|
|
14
|
+
| `quiver:graph` | Parallel-level orchestration tree command | macOS, Linux, Windows | v0.18 | [docs/examples/graph.md](./examples/graph.md) |
|
|
15
|
+
| `quiver:next` | Ready-slice suggestion command | macOS, Linux, Windows | v0.18 | [docs/examples/next.md](./examples/next.md) |
|
|
16
|
+
|
|
17
|
+
## Notes
|
|
18
|
+
|
|
19
|
+
- Add new rows here only when a command is officially shipped.
|
|
20
|
+
- Keep the table concise and cross-platform.
|
|
21
|
+
- 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.
|
|
23
|
+
- `quiver:next` prints the next ready slice and can auto-start it behind a confirmation prompt.
|
|
24
|
+
- `check-slice` now validates optional `depends_on` targets and requires `parallel_safe_reason` when `parallel_safe` is set to `never`.
|
|
25
|
+
- Cross-platform authoring rules live in `docs/SUPPORT_MATRIX.md`.
|
package/docs/INDEX.md.template
CHANGED
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
- **Decision Log** - `./DECISIONS.md`
|
|
11
11
|
- **AI Onboarding Prompt** - `./AI_ONBOARDING_PROMPT.md`
|
|
12
12
|
- **Workflow** - `./WORKFLOW.md`
|
|
13
|
+
- **Commands** - `./COMMANDS.md`
|
|
13
14
|
- **Support Matrix** - `./SUPPORT_MATRIX.md`
|
|
14
15
|
- **Troubleshooting** - `./TROUBLESHOOTING.md`
|
|
15
16
|
- **Multi-agent workflow** - `./MULTI_AGENT_WORKFLOW.md`
|
|
@@ -44,6 +45,7 @@ docs/
|
|
|
44
45
|
├── CONTEXTO.md
|
|
45
46
|
├── STATUS.md
|
|
46
47
|
├── WORKFLOW.md
|
|
48
|
+
├── COMMANDS.md
|
|
47
49
|
├── SUPPORT_MATRIX.md
|
|
48
50
|
├── TROUBLESHOOTING.md
|
|
49
51
|
├── MULTI_AGENT_WORKFLOW.md
|
|
@@ -17,6 +17,15 @@ Quiver is intentionally opinionated about the first-run environment. If your set
|
|
|
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
19
|
|
|
20
|
+
## Cross-Platform Authoring Rules
|
|
21
|
+
|
|
22
|
+
- No shell invocations for logic: use Node.js `fs`, `path`, and `child_process` with `shell: false`.
|
|
23
|
+
- Build paths with `path.join` and `path.sep`; normalize to `/` only for human-readable output.
|
|
24
|
+
- Write files with `\n`; read files tolerating `\r\n`.
|
|
25
|
+
- `--json` is the primary contract; human output is courtesy and may vary.
|
|
26
|
+
- Colors are TTY-aware and suppressed with `NO_COLOR`; Unicode is opt-in unless UTF-8 is available.
|
|
27
|
+
- Optional external tools such as `gh` and `graphviz` should be probed and skipped gracefully if missing.
|
|
28
|
+
|
|
20
29
|
## Remote Modes
|
|
21
30
|
|
|
22
31
|
| Mode | Supported | Notes |
|
|
@@ -16,11 +16,15 @@ This document is the canonical implementation workflow for the project.
|
|
|
16
16
|
- The support matrix defines the supported OS, git, node, and remote modes.
|
|
17
17
|
- The troubleshooting guide explains the first-run recovery paths for common bootstrap failures.
|
|
18
18
|
- The AI onboarding prompt generated after analysis is the handoff for agents that need project context before editing.
|
|
19
|
+
- `specs/<project-slug>/HANDOFF.md` is the exceptional transfer artifact for agents or phases that need bounded context handoff.
|
|
20
|
+
- Scaffold a new handoff only when needed with `npx create-quiver new-handoff <spec-slug>`, then validate it with `npx create-quiver check-handoff specs/<project-slug>/HANDOFF.md`.
|
|
19
21
|
|
|
20
22
|
## Mode-Aware Context Selection
|
|
21
23
|
|
|
22
24
|
- **Onboarding:** read `PROJECT_SCAN.json`, `PROJECT_MAP.md`, `AI_CONTEXT.md`, and `AI_ONBOARDING_PROMPT.md` before source files.
|
|
23
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
|
+
- **Handoff:** read `specs/<project-slug>/HANDOFF.md` when the work was explicitly transferred through a handoff artifact.
|
|
27
|
+
- Validate a received handoff with `npx create-quiver check-handoff specs/<project-slug>/HANDOFF.md` before starting execution.
|
|
24
28
|
- **Review:** read `git diff` and the slice scope before opening full files.
|
|
25
29
|
- **Debug:** read the command, exit code, first relevant error, stacktrace, and nearest changed code before long logs.
|
|
26
30
|
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# Graph Example
|
|
2
|
+
|
|
3
|
+
Use `graph` to inspect the parallel levels and conflict groups before starting implementation work. The default tree view is best for humans, Mermaid is best for PR descriptions, and DOT is best for Graphviz pipelines.
|
|
4
|
+
|
|
5
|
+
## Input
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npx create-quiver graph --show-conflicts
|
|
9
|
+
npx create-quiver graph --format mermaid --show-conflicts
|
|
10
|
+
npx create-quiver graph --format dot --show-conflicts
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Representative Output
|
|
14
|
+
|
|
15
|
+
### Tree
|
|
16
|
+
|
|
17
|
+
```text
|
|
18
|
+
Quiver graph
|
|
19
|
+
Level 0 (2 slices, 2 lots)
|
|
20
|
+
+-- spec-a/slice-01-alpha Alpha [draft]
|
|
21
|
+
\-- spec-b/slice-01-beta Beta [draft]
|
|
22
|
+
|
|
|
23
|
+
Level 1 (2 slices, 1 lots)
|
|
24
|
+
+-- ! spec-c/slice-02-gamma Gamma [draft] [docs/shared.md]
|
|
25
|
+
\-- ! spec-d/slice-02-delta Delta [draft] [docs/shared.md]
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
### Mermaid
|
|
29
|
+
|
|
30
|
+
```mermaid
|
|
31
|
+
flowchart TD
|
|
32
|
+
n_spec_a_slice_01_alpha["spec-a/slice-01-alpha<br/>Alpha<br/>2h<br/>[draft]"]
|
|
33
|
+
n_spec_b_slice_01_beta["spec-b/slice-01-beta<br/>Beta<br/>3h<br/>[draft]"]
|
|
34
|
+
n_spec_c_slice_02_gamma["! spec-c/slice-02-gamma<br/>Gamma<br/>4h<br/>[draft]<br/>Files: docs/shared.md"]
|
|
35
|
+
n_spec_d_slice_02_delta["! spec-d/slice-02-delta<br/>Delta<br/>1h<br/>[draft]<br/>Files: docs/shared.md"]
|
|
36
|
+
n_spec_a_slice_01_alpha --> n_spec_c_slice_02_gamma
|
|
37
|
+
n_spec_b_slice_01_beta --> n_spec_d_slice_02_delta
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### DOT
|
|
41
|
+
|
|
42
|
+
```dot
|
|
43
|
+
digraph QuiverGraph {
|
|
44
|
+
rankdir=TB;
|
|
45
|
+
node [shape=box, style="rounded,filled", fillcolor="#f8f9fa", color="#495057", fontname="Helvetica"];
|
|
46
|
+
edge [color="#6c757d"];
|
|
47
|
+
n_spec_a_slice_01_alpha [label="spec-a/slice-01-alpha\nAlpha\n2h\n[draft]"];
|
|
48
|
+
n_spec_b_slice_01_beta [label="spec-b/slice-01-beta\nBeta\n3h\n[draft]"];
|
|
49
|
+
n_spec_c_slice_02_gamma [label="! spec-c/slice-02-gamma\nGamma\n4h\n[draft]\nFiles: docs/shared.md", fillcolor="#fff3cd", color="#d39e00"];
|
|
50
|
+
n_spec_d_slice_02_delta [label="! spec-d/slice-02-delta\nDelta\n1h\n[draft]\nFiles: docs/shared.md", fillcolor="#fff3cd", color="#d39e00"];
|
|
51
|
+
n_spec_a_slice_01_alpha -> n_spec_c_slice_02_gamma;
|
|
52
|
+
n_spec_b_slice_01_beta -> n_spec_d_slice_02_delta;
|
|
53
|
+
}
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Notes
|
|
57
|
+
|
|
58
|
+
- GitHub renders Mermaid fenced blocks directly in markdown.
|
|
59
|
+
- DOT output is plain source; render it with Graphviz if you want an image.
|
|
60
|
+
- The exact level grouping depends on the repo's pending dependency graph.
|
|
61
|
+
- Use `--level <n>` to focus on a single level.
|
|
62
|
+
- Use `--json` when another tool needs structured levels and conflict groups.
|