create-quiver 0.6.0 → 0.8.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 +45 -0
- package/.github/workflows/ci.yml +9 -32
- package/AGENTS.md.template +41 -0
- package/BACKLOG.md +139 -0
- package/CHANGELOG.md +17 -0
- package/README.md +68 -14
- package/README_FOR_AI.md +48 -16
- package/ROADMAP.md +100 -0
- package/docs/AI_CONTEXT.md.template +19 -26
- package/docs/AI_ONBOARDING_PROMPT.md.template +16 -0
- package/docs/COMMANDS.md.template +25 -0
- package/docs/CONTEXTO.md.template +4 -17
- package/docs/DECISIONS.md.template +18 -0
- package/docs/DEEP.md.template +34 -0
- package/docs/DOCUMENTATION_GUIDE.md.template +9 -7
- package/docs/GITFLOW_PR_GUIDE.md.template +7 -0
- package/docs/INDEX.md.template +11 -0
- package/docs/QUICK.md.template +27 -0
- package/docs/STANDARD.md.template +49 -0
- package/docs/STATUS.md.template +2 -2
- package/docs/SUPPORT_MATRIX.md.template +16 -4
- package/docs/TESTING_GUIDE_FOR_AI.md.template +4 -3
- package/docs/TROUBLESHOOTING.md.template +14 -0
- package/docs/WORKFLOW.md.template +21 -4
- 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 +6 -2
- package/package.template.json +16 -0
- package/scripts/check-slice-readiness.sh +6 -4
- package/scripts/cleanup-slice.sh +2 -172
- package/scripts/init-docs.sh +147 -26
- package/scripts/package-quiver.sh +5 -0
- package/scripts/start-slice.sh +3 -425
- package/specs/[project-name]/EVIDENCE_REPORT.md.template +3 -1
- package/specs/[project-name]/HANDOFF.md.template +37 -0
- package/specs/[project-name]/slices/slice-template/slice.json +7 -2
- 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/EVIDENCE_REPORT.md +30 -0
- package/specs/quiver-v12-cross-platform-native-runtime/SPEC.md +86 -0
- package/specs/quiver-v12-cross-platform-native-runtime/STATUS.md +29 -0
- package/specs/quiver-v12-cross-platform-native-runtime/slices/slice-01-cross-platform-support-contract/slice.json +69 -0
- package/specs/quiver-v12-cross-platform-native-runtime/slices/slice-02-node-init-docs-runtime/slice.json +76 -0
- package/specs/quiver-v12-cross-platform-native-runtime/slices/slice-03-node-migrate-analyze-doctor-flow/slice.json +74 -0
- package/specs/quiver-v12-cross-platform-native-runtime/slices/slice-04-node-slice-lifecycle-commands/slice.json +81 -0
- package/specs/quiver-v12-cross-platform-native-runtime/slices/slice-05-generated-project-scripts-and-migration/slice.json +78 -0
- package/specs/quiver-v12-cross-platform-native-runtime/slices/slice-06-cross-platform-ci-release-readiness/slice.json +74 -0
- package/specs/quiver-v13-token-efficient-ai-context/EVIDENCE_REPORT.md +28 -0
- package/specs/quiver-v13-token-efficient-ai-context/SPEC.md +68 -0
- package/specs/quiver-v13-token-efficient-ai-context/STATUS.md +26 -0
- package/specs/quiver-v13-token-efficient-ai-context/slices/slice-01-token-efficient-ai-modes-guidance/slice.json +65 -0
- package/specs/quiver-v13-token-efficient-ai-context/slices/slice-02-decision-log-context-checkpoint/slice.json +64 -0
- package/specs/quiver-v13-token-efficient-ai-context/slices/slice-03-project-map-reading-order/slice.json +66 -0
- package/specs/quiver-v14-tiered-context-pack/EVIDENCE_REPORT.md +42 -0
- package/specs/quiver-v14-tiered-context-pack/SPEC.md +116 -0
- package/specs/quiver-v14-tiered-context-pack/STATUS.md +35 -0
- package/specs/quiver-v14-tiered-context-pack/slices/slice-01-tiered-context-pack/slice.json +77 -0
- package/specs/quiver-v14-tiered-context-pack/slices/slice-02-agents-md-router/slice.json +74 -0
- package/specs/quiver-v14-tiered-context-pack/slices/slice-03-active-slice-lifecycle/slice.json +74 -0
- package/specs/quiver-v14-tiered-context-pack/slices/slice-04-dedup-frontmatter/slice.json +83 -0
- package/specs/quiver-v14-tiered-context-pack/slices/slice-05-doctor-smokes-tiered-pack/slice.json +84 -0
- 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/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 +476 -123
- package/src/create-quiver/lib/analyze.js +9 -0
- package/src/create-quiver/lib/doctor.js +212 -0
- package/src/create-quiver/lib/git.js +154 -0
- package/src/create-quiver/lib/handoff.js +104 -0
- package/src/create-quiver/lib/init-docs.js +674 -0
- package/src/create-quiver/lib/json.js +14 -0
- package/src/create-quiver/lib/lifecycle.js +479 -0
- package/src/create-quiver/lib/paths.js +19 -0
- package/src/create-quiver/lib/readiness.js +354 -0
- 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/scope.js +5 -0
- package/src/create-quiver/lib/slice-graph.js +453 -0
- package/src/create-quiver/lib/slice.js +195 -0
- package/src/create-quiver/lib/state.js +139 -0
|
@@ -0,0 +1,45 @@
|
|
|
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
|
+
]
|
|
44
|
+
}
|
|
45
|
+
}
|
package/.github/workflows/ci.yml
CHANGED
|
@@ -22,16 +22,17 @@ 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:
|
|
30
30
|
fail-fast: false
|
|
31
31
|
matrix:
|
|
32
32
|
os:
|
|
33
33
|
- ubuntu-latest
|
|
34
34
|
- macos-latest
|
|
35
|
+
- windows-latest
|
|
35
36
|
runs-on: ${{ matrix.os }}
|
|
36
37
|
steps:
|
|
37
38
|
- name: Checkout
|
|
@@ -42,33 +43,9 @@ jobs:
|
|
|
42
43
|
with:
|
|
43
44
|
node-version: 22
|
|
44
45
|
|
|
45
|
-
- name: Run
|
|
46
|
-
run:
|
|
46
|
+
- name: Run cross-platform smoke
|
|
47
|
+
run: node scripts/ci/smoke-cross-platform.js
|
|
47
48
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
- name: Checkout
|
|
52
|
-
uses: actions/checkout@v4
|
|
53
|
-
|
|
54
|
-
- name: Setup Node
|
|
55
|
-
uses: actions/setup-node@v4
|
|
56
|
-
with:
|
|
57
|
-
node-version: 22
|
|
58
|
-
|
|
59
|
-
- name: Run workflow gate smoke
|
|
60
|
-
run: bash scripts/ci/smoke-workflow-gates.sh
|
|
61
|
-
|
|
62
|
-
smoke-create-quiver:
|
|
63
|
-
runs-on: ubuntu-latest
|
|
64
|
-
steps:
|
|
65
|
-
- name: Checkout
|
|
66
|
-
uses: actions/checkout@v4
|
|
67
|
-
|
|
68
|
-
- name: Setup Node
|
|
69
|
-
uses: actions/setup-node@v4
|
|
70
|
-
with:
|
|
71
|
-
node-version: 22
|
|
72
|
-
|
|
73
|
-
- name: Run create-quiver smoke
|
|
74
|
-
run: bash scripts/ci/smoke-create-quiver.sh
|
|
49
|
+
- name: Run tiered pack smoke
|
|
50
|
+
shell: bash
|
|
51
|
+
run: bash scripts/ci/smoke-tiered-pack.sh
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# AGENTS Router
|
|
2
|
+
|
|
3
|
+
Purpose
|
|
4
|
+
|
|
5
|
+
This file is the universal router for AI agents in Quiver-generated projects. Read it before any other project context when you need to decide how deep to load.
|
|
6
|
+
|
|
7
|
+
## Reading Budget
|
|
8
|
+
|
|
9
|
+
- Planning: up to 10000 tokens
|
|
10
|
+
- Execution: under 2000 tokens before the first action
|
|
11
|
+
- Debug: under 1000 tokens before proposing a hypothesis
|
|
12
|
+
|
|
13
|
+
## Reading Order
|
|
14
|
+
|
|
15
|
+
1. QUICK
|
|
16
|
+
2. STANDARD if QUICK is insufficient
|
|
17
|
+
3. DEEP only when history or past decisions are requested
|
|
18
|
+
|
|
19
|
+
## Output Policy
|
|
20
|
+
|
|
21
|
+
- Do not restate the task before acting.
|
|
22
|
+
- Do not summarize diffs after edits.
|
|
23
|
+
- Keep confirmations to one sentence max.
|
|
24
|
+
|
|
25
|
+
## Slice Execution Rules
|
|
26
|
+
|
|
27
|
+
- If `docs/ai/ACTIVE_SLICE.md` exists, treat it as the source of truth.
|
|
28
|
+
- Do not read `SPEC.md` unless `ACTIVE_SLICE.md` points to it.
|
|
29
|
+
- Stay inside the slice `allowed_files` when an active slice is present.
|
|
30
|
+
- Prefer the slice tests and checklist over general repo context.
|
|
31
|
+
|
|
32
|
+
## Links
|
|
33
|
+
|
|
34
|
+
- QUICK: `./docs/ai/QUICK.md`
|
|
35
|
+
- STANDARD: `./docs/ai/STANDARD.md`
|
|
36
|
+
- DEEP: `./docs/ai/DEEP.md`
|
|
37
|
+
- Project Map: `./docs/PROJECT_MAP.md`
|
|
38
|
+
- AI Context: `./docs/AI_CONTEXT.md`
|
|
39
|
+
- Decision Log: `./docs/DECISIONS.md`
|
|
40
|
+
- AI Onboarding Prompt: `./docs/AI_ONBOARDING_PROMPT.md`
|
|
41
|
+
- Active Slice: `./docs/ai/ACTIVE_SLICE.md`
|
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,6 +4,23 @@ All notable changes to this project will be documented in this file.
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [0.8.0] - 2026-05-13
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- `quiver:plan` — lists all pending slices in dependency order with estimated hours, status, and critical path
|
|
12
|
+
- `quiver:graph` — visualizes the slice dependency graph in ASCII tree, Mermaid, and DOT formats
|
|
13
|
+
- `quiver:next` — suggests the next ready slice; supports `--all-ready`, `--json`, and `--auto-start`
|
|
14
|
+
- Slice graph library — `readAllSlices`, `buildGraph`, `topoSort`, `computeLevels`, `detectFileConflicts` for programmatic graph access
|
|
15
|
+
- `depends_on` and `parallel_safe` fields with validation in `check-slice`
|
|
16
|
+
- JSON-with-comments support for slice templates
|
|
17
|
+
- Cross-platform CI matrix covering macOS, Linux, and Windows for the Node-native runtime
|
|
18
|
+
- Node-native generated project npm scripts and additive migration support for existing projects
|
|
19
|
+
|
|
20
|
+
### Fixed
|
|
21
|
+
|
|
22
|
+
- `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`
|
|
23
|
+
|
|
7
24
|
## [0.4.0] - 2026-04-21
|
|
8
25
|
|
|
9
26
|
### Added
|
package/README.md
CHANGED
|
@@ -34,18 +34,49 @@ npx create-quiver --name "Project Name" --dir "/Users/me/My Project"
|
|
|
34
34
|
|
|
35
35
|
### 2. Analyze And Validate
|
|
36
36
|
|
|
37
|
-
Run the local analyzer and then validate the generated contract:
|
|
37
|
+
Run the local analyzer and then validate the generated contract from the project root:
|
|
38
38
|
|
|
39
39
|
```bash
|
|
40
|
-
npx create-quiver analyze
|
|
41
|
-
npx create-quiver
|
|
40
|
+
npx create-quiver analyze
|
|
41
|
+
npx create-quiver graph
|
|
42
|
+
npx create-quiver doctor
|
|
43
|
+
npx create-quiver next
|
|
42
44
|
```
|
|
43
45
|
|
|
44
|
-
|
|
46
|
+
Use `npx create-quiver graph --format mermaid` for PR-ready Markdown or `npx create-quiver graph --format dot` for Graphviz source.
|
|
47
|
+
|
|
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
|
-
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
|
|
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.
|
|
54
|
+
|
|
55
|
+
### Project NPM Scripts
|
|
56
|
+
|
|
57
|
+
Generated projects include `quiver:*` npm scripts that call the Node CLI and are the preferred repeatable workflow:
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
npm run quiver:analyze
|
|
61
|
+
npm run quiver:plan
|
|
62
|
+
npm run quiver:graph
|
|
63
|
+
npm run quiver:next
|
|
64
|
+
npm run quiver:doctor
|
|
65
|
+
npm run quiver:migrate
|
|
66
|
+
npm run quiver:start-slice -- specs/<project-slug>/slices/slice-01/slice.json
|
|
67
|
+
npm run quiver:check-slice -- specs/<project-slug>/slices/slice-01/slice.json
|
|
68
|
+
npm run quiver:check-pr -- specs/<project-slug>/slices/slice-01/slice.json
|
|
69
|
+
npm run quiver:cleanup-slice -- specs/<project-slug>/slices/slice-01/slice.json
|
|
70
|
+
npm run quiver:check-scope -- specs/<project-slug>/slices/slice-01/slice.json
|
|
71
|
+
npm run quiver:refresh-active-slices
|
|
72
|
+
```
|
|
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
|
+
|
|
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.
|
|
49
80
|
|
|
50
81
|
### 3. Upgrade Existing Projects
|
|
51
82
|
|
|
@@ -53,20 +84,33 @@ If the project already had Quiver from an older version, upgrade it from the pro
|
|
|
53
84
|
|
|
54
85
|
```bash
|
|
55
86
|
cd /path/to/your-project
|
|
56
|
-
npx create-quiver migrate
|
|
57
|
-
npx create-quiver analyze
|
|
58
|
-
npx create-quiver
|
|
87
|
+
npx create-quiver migrate
|
|
88
|
+
npx create-quiver analyze
|
|
89
|
+
npx create-quiver graph
|
|
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"
|
|
59
100
|
```
|
|
60
101
|
|
|
61
102
|
If your team prefers a pinned local dependency, update the package first and then run the same flow:
|
|
62
103
|
|
|
63
104
|
```bash
|
|
64
105
|
npm install --save-dev create-quiver@latest
|
|
65
|
-
npx create-quiver migrate
|
|
66
|
-
npx create-quiver analyze
|
|
67
|
-
npx create-quiver
|
|
106
|
+
npx create-quiver migrate
|
|
107
|
+
npx create-quiver analyze
|
|
108
|
+
npx create-quiver graph
|
|
109
|
+
npx create-quiver doctor
|
|
68
110
|
```
|
|
69
111
|
|
|
112
|
+
The tree output remains the default, but Mermaid and DOT are available on demand for exported docs and slide decks.
|
|
113
|
+
|
|
70
114
|
### 4. Ask The AI To Prepare Context
|
|
71
115
|
|
|
72
116
|
Open your AI agent in the target project and run this short handoff:
|
|
@@ -85,7 +129,7 @@ After the context docs are reviewed:
|
|
|
85
129
|
|
|
86
130
|
1. Define or refine `specs/<project-slug>/SPEC.md`.
|
|
87
131
|
2. Create the first slice from `specs/<project-slug>/slices/slice-template/slice.json`.
|
|
88
|
-
3. Start work with `
|
|
132
|
+
3. Start work with `npx create-quiver start-slice <slice.json>` or `npm run quiver:start-slice -- <slice.json>`.
|
|
89
133
|
4. Make one commit per slice.
|
|
90
134
|
5. Open one PR per spec.
|
|
91
135
|
|
|
@@ -95,10 +139,16 @@ Slice numbering is local to each spec: every new spec starts at `slice-01`.
|
|
|
95
139
|
|
|
96
140
|
- Node.js and npm for the installer
|
|
97
141
|
- Git for slice branches, worktrees, and PR workflow checks
|
|
98
|
-
- macOS
|
|
142
|
+
- macOS, Linux, and Windows PowerShell/CMD are the target developer environments for the cross-platform runtime work
|
|
143
|
+
|
|
144
|
+
Windows native support is verified only when the cross-platform CI matrix is green. Bash remains a legacy compatibility path until the runtime slices land.
|
|
99
145
|
|
|
100
146
|
See the generated `docs/SUPPORT_MATRIX.md` for the detailed support contract.
|
|
101
147
|
|
|
148
|
+
## Cross-Platform Support
|
|
149
|
+
|
|
150
|
+
Quiver is targeting native support on macOS, Linux, and Windows PowerShell/CMD. Bash is a legacy compatibility path until the runtime slices land, so the long-term contract is a Node-first workflow rather than a Bash-first one. The CI matrix must be green before Windows is considered fully verified.
|
|
151
|
+
|
|
102
152
|
## What Gets Generated
|
|
103
153
|
|
|
104
154
|
Quiver generates a project-local workflow under:
|
|
@@ -106,6 +156,10 @@ Quiver generates a project-local workflow under:
|
|
|
106
156
|
- `docs/` for project context, workflow, support, troubleshooting, and AI guidance
|
|
107
157
|
- `docs/PROJECT_SCAN.json` and `docs/PROJECT_MAP.md` after `create-quiver analyze`
|
|
108
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
|
|
109
163
|
- `specs/<project-slug>/` for the project spec, status, evidence, and slice contracts
|
|
110
164
|
- `tools/scripts/` for slice lifecycle and readiness gates
|
|
111
165
|
- `.github/` for default PR, issue, and CI templates
|
|
@@ -122,7 +176,7 @@ Use the manual flow only when developing Quiver locally or testing a template ch
|
|
|
122
176
|
```
|
|
123
177
|
|
|
124
178
|
The CLI path is the supported adoption path for users.
|
|
125
|
-
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`.
|
|
126
180
|
|
|
127
181
|
## For AI Agents
|
|
128
182
|
|
package/README_FOR_AI.md
CHANGED
|
@@ -7,11 +7,33 @@ The first AI job in a generated project is context preparation, not product impl
|
|
|
7
7
|
Important: slice numbering resets inside each spec. `slice-01` is the first slice of that spec, not a global repo counter.
|
|
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
|
-
The post-init contract is validated with `npx create-quiver doctor
|
|
11
|
-
If the project already exists from an older Quiver version, run `npx create-quiver migrate
|
|
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 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.
|
|
12
14
|
Maintain release notes and package publishing with `scripts/release-quiver.sh`.
|
|
13
15
|
The primary generated project context for agents is `docs/AI_CONTEXT.md`.
|
|
16
|
+
The project map is the single source of truth for stack, package manager, commands, and file hints: `docs/PROJECT_MAP.md`.
|
|
17
|
+
The universal router for generated projects is `AGENTS.md`; read it before `docs/AI_CONTEXT.md` and `docs/AI_ONBOARDING_PROMPT.md`.
|
|
18
|
+
Generated projects also get `docs/DECISIONS.md`; use it for durable choices that should not be re-litigated.
|
|
14
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.
|
|
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.
|
|
23
|
+
|
|
24
|
+
## Token-Efficient Reading Rules
|
|
25
|
+
|
|
26
|
+
Use the smallest context that still answers the current task.
|
|
27
|
+
|
|
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.
|
|
29
|
+
- **Onboarding router:** start from `AGENTS.md` first, then the onboarding files above.
|
|
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.
|
|
33
|
+
- **Review:** start from `git diff` and the slice scope before opening full files.
|
|
34
|
+
- **Debug:** start from the command, exit code, first relevant error, stacktrace, and the nearest changed code before reading long logs.
|
|
35
|
+
|
|
36
|
+
Prefer maps, metadata, diffs, and summaries over full file reads when they are enough. Treat front-matter as a skim-first signal: if the header is enough, do not open the body.
|
|
15
37
|
|
|
16
38
|
## Core Rules
|
|
17
39
|
|
|
@@ -19,10 +41,17 @@ If a generated project has been analyzed, the exact agent handoff prompt is `doc
|
|
|
19
41
|
- Always use `init-docs.sh` instead of copying files by hand.
|
|
20
42
|
- Treat `docs-template/` as generic and `docs/` as generated project-specific output.
|
|
21
43
|
- Not every project needs every optional file.
|
|
22
|
-
- The AI context pack lives in `docs/AI_CONTEXT.md`; `docs/CONTEXTO.md` is the broader project overview.
|
|
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.
|
|
23
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.
|
|
24
47
|
- Initial onboarding should complete context docs and report assumptions before any feature work starts.
|
|
48
|
+
- The normal workflow runs from the project root without `--dir`; use `--dir` only when targeting another directory explicitly.
|
|
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.
|
|
25
50
|
- The support contract lives in `docs/SUPPORT_MATRIX.md` and `docs/TROUBLESHOOTING.md`.
|
|
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.
|
|
26
55
|
|
|
27
56
|
## Initialization Flow
|
|
28
57
|
|
|
@@ -76,19 +105,22 @@ After initialization, the user should:
|
|
|
76
105
|
2. Fill in `docs/AI_ONBOARDING_PROMPT.md`
|
|
77
106
|
3. Fill in `docs/CONTEXTO.md`
|
|
78
107
|
4. Fill in `docs/STATUS.md`
|
|
79
|
-
5. Run `npx create-quiver analyze
|
|
80
|
-
6. If the project already exists from an older Quiver version, run `npx create-quiver migrate
|
|
81
|
-
7.
|
|
82
|
-
8.
|
|
83
|
-
9.
|
|
84
|
-
10.
|
|
85
|
-
11.
|
|
86
|
-
12.
|
|
87
|
-
13.
|
|
88
|
-
14.
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
108
|
+
5. Run `npx create-quiver analyze` if scan artifacts are missing
|
|
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
|
|
122
|
+
|
|
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.
|
|
92
124
|
|
|
93
125
|
## Optional Files
|
|
94
126
|
|
package/ROADMAP.md
CHANGED
|
@@ -18,3 +18,103 @@
|
|
|
18
18
|
- Add richer templates and examples
|
|
19
19
|
- Improve release workflows
|
|
20
20
|
|
|
21
|
+
## v0.4 (shipped 2026-04-21)
|
|
22
|
+
|
|
23
|
+
- `create-quiver` CLI installer surface
|
|
24
|
+
- Post-init `doctor` validation mode
|
|
25
|
+
- Release helper and packaged-installer smoke checks
|
|
26
|
+
|
|
27
|
+
## v0.5 (shipped)
|
|
28
|
+
|
|
29
|
+
- Existing project migration flow (`create-quiver migrate`)
|
|
30
|
+
- Onboarding README flow polish
|
|
31
|
+
- Local project installation guidance
|
|
32
|
+
|
|
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.
|
|
37
|
+
|
|
38
|
+
- Cross-platform CI matrix (macOS, Linux, Windows) for Node-native runtime
|
|
39
|
+
- Node-native generated project npm scripts (`quiver:*`)
|
|
40
|
+
- Additive migration support for existing projects
|
|
41
|
+
|
|
42
|
+
## v0.7 — Token-Efficient AI Context Packs (shipped 2026-04-23)
|
|
43
|
+
|
|
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)
|
|
47
|
+
- v13 slice-04 reconciled into v14 slice-05 (2026-04-23); v13 slice-02 narrowed to `DECISIONS.md` only
|
|
48
|
+
- Validation checkpoint passed after real-world use and spec completion
|
|
49
|
+
|
|
50
|
+
## Post-Checkpoint Plan (do not execute before validating v14)
|
|
51
|
+
|
|
52
|
+
> This section is intentionally speculative. Every item below is pending
|
|
53
|
+
> evidence from v14 in real use. Rescope or drop anything that does not
|
|
54
|
+
> respond to observed friction.
|
|
55
|
+
|
|
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)
|
|
75
|
+
|
|
76
|
+
- Analyzer noise filter (ignore lockfiles, dist/, build/, binaries, generated files)
|
|
77
|
+
- `create-quiver token-cost` diagnostic (4 chars/token heuristic)
|
|
78
|
+
- `create-quiver diff-pack` for review and debug modes
|
|
79
|
+
- Cache-friendly ordering within the pack (stable above, volatile below)
|
|
80
|
+
- `docs/ai/INDEX.yaml` inverted index (directory → purpose)
|
|
81
|
+
|
|
82
|
+
### Block A — Zero-Question First Use (proposed)
|
|
83
|
+
|
|
84
|
+
- `npx create-quiver` with no args auto-detects name, stack, runs analyze + doctor
|
|
85
|
+
- `--lite` template variant for small projects
|
|
86
|
+
- Optional `--interactive` wizard
|
|
87
|
+
- Auto-regenerate context pack on every `start-slice`
|
|
88
|
+
|
|
89
|
+
### Block B — Multi-Model Context Adapters (proposed, only if users ask)
|
|
90
|
+
|
|
91
|
+
- Additional adapters beyond `AGENTS.md`: `.cursorrules`, `.cursor/rules/*.mdc`, `copilot-instructions.md`, `PROMPT_FOR_EXECUTOR.md`
|
|
92
|
+
- Decision driven by which tools actual users adopt
|
|
93
|
+
|
|
94
|
+
### Block C — Convincing Example (proposed)
|
|
95
|
+
|
|
96
|
+
- Real end-to-end example in `examples/full-crud/` with 3 merged slices
|
|
97
|
+
- 30-second hello-world asciinema at top of README
|
|
98
|
+
- "When NOT to use Quiver" section
|
|
99
|
+
|
|
100
|
+
### Block D — Polish Debt (proposed)
|
|
101
|
+
|
|
102
|
+
- Actionable error messages (replace stack traces)
|
|
103
|
+
- Embedded JSON Schema validation for `slice.json`
|
|
104
|
+
- `start-slice` without arguments auto-detects active slice by branch
|
|
105
|
+
- `create-quiver status` dashboard
|
|
106
|
+
|
|
107
|
+
### Deferred Until Real Demand
|
|
108
|
+
|
|
109
|
+
- Killing Bash entirely (breaking change — needs user base first)
|
|
110
|
+
- `@quiver/cli` / `@quiver/template` package split
|
|
111
|
+
- Git hooks auto-install
|
|
112
|
+
- Metrics/telemetry
|
|
113
|
+
|
|
114
|
+
## Decision Rules
|
|
115
|
+
|
|
116
|
+
- No new spec is written until the previous spec's checkpoint passes
|
|
117
|
+
- Specs respond to observed friction, not pre-planned lists
|
|
118
|
+
- Breaking changes require at least one confirmed external user
|
|
119
|
+
- Prefer recording "we decided not to do X" over silently dropping ideas
|
|
120
|
+
- Emerging patterns that are not yet ready for a spec live in [`BACKLOG.md`](./BACKLOG.md) — review it before writing a new spec
|