create-quiver 0.5.0 → 0.7.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.
Files changed (69) hide show
  1. package/.github/workflows/ci.yml +7 -30
  2. package/AGENTS.md.template +41 -0
  3. package/CHANGELOG.md +5 -0
  4. package/README.md +53 -9
  5. package/README_FOR_AI.md +36 -14
  6. package/ROADMAP.md +78 -0
  7. package/docs/AI_CONTEXT.md.template +19 -25
  8. package/docs/AI_ONBOARDING_PROMPT.md.template +12 -0
  9. package/docs/CONTEXTO.md.template +4 -17
  10. package/docs/DECISIONS.md.template +18 -0
  11. package/docs/DEEP.md.template +34 -0
  12. package/docs/DOCUMENTATION_GUIDE.md.template +9 -7
  13. package/docs/GITFLOW_PR_GUIDE.md.template +7 -0
  14. package/docs/INDEX.md.template +9 -0
  15. package/docs/QUICK.md.template +27 -0
  16. package/docs/STANDARD.md.template +49 -0
  17. package/docs/STATUS.md.template +2 -2
  18. package/docs/SUPPORT_MATRIX.md.template +7 -4
  19. package/docs/TESTING_GUIDE_FOR_AI.md.template +4 -3
  20. package/docs/TROUBLESHOOTING.md.template +14 -0
  21. package/docs/WORKFLOW.md.template +19 -5
  22. package/package.json +3 -1
  23. package/package.template.json +13 -1
  24. package/scripts/cleanup-slice.sh +2 -172
  25. package/scripts/init-docs.sh +246 -44
  26. package/scripts/package-quiver.sh +5 -0
  27. package/scripts/start-slice.sh +3 -425
  28. package/specs/[project-name]/EVIDENCE_REPORT.md.template +3 -1
  29. package/specs/[project-name]/slices/slice-template/slice.json +2 -2
  30. package/specs/quiver-v11-existing-project-migration/EVIDENCE_REPORT.md +38 -0
  31. package/specs/quiver-v11-existing-project-migration/SPEC.md +59 -0
  32. package/specs/quiver-v11-existing-project-migration/STATUS.md +26 -0
  33. package/specs/quiver-v11-existing-project-migration/slices/slice-01-non-destructive-migrate-command/slice.json +73 -0
  34. package/specs/quiver-v11-existing-project-migration/slices/slice-02-version-metadata-doctor-upgrade-checks/slice.json +71 -0
  35. package/specs/quiver-v11-existing-project-migration/slices/slice-03-upgrade-docs-legacy-project-smokes/slice.json +78 -0
  36. package/specs/quiver-v12-cross-platform-native-runtime/EVIDENCE_REPORT.md +30 -0
  37. package/specs/quiver-v12-cross-platform-native-runtime/SPEC.md +86 -0
  38. package/specs/quiver-v12-cross-platform-native-runtime/STATUS.md +29 -0
  39. package/specs/quiver-v12-cross-platform-native-runtime/slices/slice-01-cross-platform-support-contract/slice.json +69 -0
  40. package/specs/quiver-v12-cross-platform-native-runtime/slices/slice-02-node-init-docs-runtime/slice.json +76 -0
  41. package/specs/quiver-v12-cross-platform-native-runtime/slices/slice-03-node-migrate-analyze-doctor-flow/slice.json +74 -0
  42. package/specs/quiver-v12-cross-platform-native-runtime/slices/slice-04-node-slice-lifecycle-commands/slice.json +81 -0
  43. package/specs/quiver-v12-cross-platform-native-runtime/slices/slice-05-generated-project-scripts-and-migration/slice.json +78 -0
  44. package/specs/quiver-v12-cross-platform-native-runtime/slices/slice-06-cross-platform-ci-release-readiness/slice.json +74 -0
  45. package/specs/quiver-v13-token-efficient-ai-context/EVIDENCE_REPORT.md +28 -0
  46. package/specs/quiver-v13-token-efficient-ai-context/SPEC.md +68 -0
  47. package/specs/quiver-v13-token-efficient-ai-context/STATUS.md +26 -0
  48. package/specs/quiver-v13-token-efficient-ai-context/slices/slice-01-token-efficient-ai-modes-guidance/slice.json +65 -0
  49. package/specs/quiver-v13-token-efficient-ai-context/slices/slice-02-decision-log-context-checkpoint/slice.json +64 -0
  50. package/specs/quiver-v13-token-efficient-ai-context/slices/slice-03-project-map-reading-order/slice.json +66 -0
  51. package/specs/quiver-v14-tiered-context-pack/EVIDENCE_REPORT.md +42 -0
  52. package/specs/quiver-v14-tiered-context-pack/SPEC.md +116 -0
  53. package/specs/quiver-v14-tiered-context-pack/STATUS.md +35 -0
  54. package/specs/quiver-v14-tiered-context-pack/slices/slice-01-tiered-context-pack/slice.json +77 -0
  55. package/specs/quiver-v14-tiered-context-pack/slices/slice-02-agents-md-router/slice.json +74 -0
  56. package/specs/quiver-v14-tiered-context-pack/slices/slice-03-active-slice-lifecycle/slice.json +74 -0
  57. package/specs/quiver-v14-tiered-context-pack/slices/slice-04-dedup-frontmatter/slice.json +83 -0
  58. package/specs/quiver-v14-tiered-context-pack/slices/slice-05-doctor-smokes-tiered-pack/slice.json +84 -0
  59. package/src/create-quiver/index.js +360 -40
  60. package/src/create-quiver/lib/analyze.js +9 -0
  61. package/src/create-quiver/lib/doctor.js +212 -0
  62. package/src/create-quiver/lib/git.js +154 -0
  63. package/src/create-quiver/lib/init-docs.js +616 -0
  64. package/src/create-quiver/lib/lifecycle.js +478 -0
  65. package/src/create-quiver/lib/paths.js +19 -0
  66. package/src/create-quiver/lib/readiness.js +300 -0
  67. package/src/create-quiver/lib/scope.js +5 -0
  68. package/src/create-quiver/lib/slice.js +194 -0
  69. package/src/create-quiver/lib/state.js +89 -0
@@ -0,0 +1,71 @@
1
+ {
2
+ "slice_id": "slice-02-version-metadata-doctor-upgrade-checks",
3
+ "ticket": "QUIVER-02",
4
+ "type": "feature",
5
+ "title": "Version Metadata and Doctor Upgrade Checks",
6
+ "objective": "Record Quiver project state and teach `doctor` to identify projects that need migration or analysis.",
7
+ "description": "After migration exists, Quiver needs a durable way to know which template version initialized or migrated the project. This slice adds metadata and extends doctor diagnostics so users get the right next command instead of guessing.",
8
+ "git": {
9
+ "branch_type": "feature",
10
+ "base_branch": "main",
11
+ "branch_slug": "existing-project-migration",
12
+ "branch_name": "feature/QUIVER-02-existing-project-migration"
13
+ },
14
+ "must": [
15
+ "Create or update a project-local metadata file such as `.quiver/state.json`",
16
+ "Record initialized version, migrated version, last migration date, and last analysis date where available",
17
+ "Update `init`, `migrate`, and `analyze` to maintain metadata",
18
+ "Teach `doctor` to report missing metadata without failing older projects unnecessarily",
19
+ "Teach `doctor` to recommend `npx create-quiver migrate --dir .` when required upgrade artifacts are missing",
20
+ "Keep metadata deterministic and free of secrets"
21
+ ],
22
+ "not_included": [
23
+ "Remote telemetry",
24
+ "User identity tracking",
25
+ "AI-generated metadata",
26
+ "Changing package publish flow"
27
+ ],
28
+ "acceptance": [
29
+ "Newly initialized projects include Quiver metadata",
30
+ "Migrated projects update metadata",
31
+ "`analyze` updates last analysis metadata",
32
+ "`doctor` distinguishes missing analysis from missing migration",
33
+ "Older projects without metadata receive a clear migration recommendation",
34
+ "Metadata contains no absolute secrets or credential values"
35
+ ],
36
+ "files": [
37
+ "src/create-quiver/index.js",
38
+ "scripts/ci/smoke-create-quiver.sh",
39
+ "scripts/ci/smoke-init-docs.sh",
40
+ "scripts/package-quiver.sh",
41
+ "specs/quiver-v11-existing-project-migration/STATUS.md",
42
+ "specs/quiver-v11-existing-project-migration/EVIDENCE_REPORT.md",
43
+ "specs/quiver-v11-existing-project-migration/slices/slice-02-version-metadata-doctor-upgrade-checks/slice.json"
44
+ ],
45
+ "tests": [
46
+ "init smoke verifies `.quiver/state.json`",
47
+ "migrate smoke verifies migration metadata",
48
+ "analyze smoke verifies last analysis metadata",
49
+ "doctor smoke verifies migration recommendation",
50
+ "git diff --check"
51
+ ],
52
+ "documentation": [
53
+ "specs/quiver-v11-existing-project-migration/STATUS.md",
54
+ "specs/quiver-v11-existing-project-migration/EVIDENCE_REPORT.md"
55
+ ],
56
+ "dependencies": [
57
+ "slice-01-non-destructive-migrate-command"
58
+ ],
59
+ "assumptions": [
60
+ "A local metadata file is simpler and more reliable than parsing docs for version state",
61
+ "Metadata should supplement, not replace, user-facing docs",
62
+ "Doctor should guide remediation but not run migration automatically"
63
+ ],
64
+ "estimated_hours": 4,
65
+ "actual_hours": 4,
66
+ "status": "completed",
67
+ "blocked_reason": null,
68
+ "ready_at": null,
69
+ "started_at": "2026-04-22T00:00:00Z",
70
+ "completed_at": "2026-04-22T00:00:00Z"
71
+ }
@@ -0,0 +1,78 @@
1
+ {
2
+ "slice_id": "slice-03-upgrade-docs-legacy-project-smokes",
3
+ "ticket": "QUIVER-03",
4
+ "type": "docs",
5
+ "title": "Upgrade Docs and Legacy Project Smokes",
6
+ "objective": "Document the upgrade path for existing projects and add smoke coverage for legacy generated projects.",
7
+ "description": "Users need a clear path when they already initialized Quiver with an older package. This slice updates README and generated docs with upgrade instructions and adds fixtures or smoke setup that simulate older projects missing newer onboarding artifacts.",
8
+ "git": {
9
+ "branch_type": "docs",
10
+ "base_branch": "main",
11
+ "branch_slug": "existing-project-migration",
12
+ "branch_name": "docs/QUIVER-03-existing-project-migration"
13
+ },
14
+ "must": [
15
+ "Add an `Upgrading Existing Projects` section to the root README",
16
+ "Document both `npx` and devDependency upgrade flows",
17
+ "Update generated README or AI docs to mention migration for already-initialized projects",
18
+ "Add smoke coverage for a legacy project missing `docs/AI_ONBOARDING_PROMPT.md` and metadata",
19
+ "Verify migration does not overwrite edited context docs",
20
+ "Close the spec status and evidence"
21
+ ],
22
+ "not_included": [
23
+ "Publishing a release",
24
+ "Changing migration behavior beyond doc/test-driven fixes found during validation",
25
+ "Adding provider-specific AI instructions",
26
+ "Supporting global installation as a recommended path"
27
+ ],
28
+ "acceptance": [
29
+ "README explains what to do if Quiver was already initialized with an older version",
30
+ "Generated guidance points existing projects to `migrate`, then `analyze`, then `doctor`",
31
+ "Legacy project smoke proves missing files are added",
32
+ "Legacy project smoke proves edited docs are preserved",
33
+ "Package smoke passes",
34
+ "Spec status and evidence show all slices completed"
35
+ ],
36
+ "files": [
37
+ "README.md",
38
+ "README_FOR_AI.md",
39
+ "scripts/init-docs.sh",
40
+ "scripts/ci/smoke-create-quiver.sh",
41
+ "scripts/ci/smoke-init-docs.sh",
42
+ "scripts/package-quiver.sh",
43
+ "specs/quiver-v11-existing-project-migration/SPEC.md",
44
+ "specs/quiver-v11-existing-project-migration/STATUS.md",
45
+ "specs/quiver-v11-existing-project-migration/EVIDENCE_REPORT.md",
46
+ "specs/quiver-v11-existing-project-migration/slices/slice-03-upgrade-docs-legacy-project-smokes/slice.json"
47
+ ],
48
+ "tests": [
49
+ "bash scripts/ci/smoke-init-docs.sh",
50
+ "bash scripts/ci/smoke-create-quiver.sh",
51
+ "bash scripts/package-quiver.sh",
52
+ "legacy migration fixture or smoke path",
53
+ "git diff --check"
54
+ ],
55
+ "documentation": [
56
+ "README.md",
57
+ "README_FOR_AI.md",
58
+ "specs/quiver-v11-existing-project-migration/SPEC.md",
59
+ "specs/quiver-v11-existing-project-migration/STATUS.md",
60
+ "specs/quiver-v11-existing-project-migration/EVIDENCE_REPORT.md"
61
+ ],
62
+ "dependencies": [
63
+ "slice-01-non-destructive-migrate-command",
64
+ "slice-02-version-metadata-doctor-upgrade-checks"
65
+ ],
66
+ "assumptions": [
67
+ "Existing projects should not need to delete generated docs before upgrading",
68
+ "The safest upgrade order is migrate, analyze, doctor, then AI prompt",
69
+ "Smoke fixtures can simulate old projects by deleting newer artifacts from a generated project"
70
+ ],
71
+ "estimated_hours": 3,
72
+ "actual_hours": 3,
73
+ "status": "completed",
74
+ "blocked_reason": null,
75
+ "ready_at": null,
76
+ "started_at": "2026-04-22T00:00:00Z",
77
+ "completed_at": "2026-04-22T00:00:00Z"
78
+ }
@@ -0,0 +1,30 @@
1
+ # Quiver v0.12 Evidence Report
2
+
3
+ **Spec:** quiver-v12-cross-platform-native-runtime
4
+ **Date:** 2026-04-22
5
+ **Status:** Completed
6
+
7
+ ## Summary
8
+
9
+ This spec will make Quiver native across macOS, Linux, and Windows by moving user-facing workflow commands from Bash scripts to Node.js CLI commands.
10
+
11
+ ## Slice Evidence
12
+
13
+ | Slice | Status | Evidence |
14
+ |-------|--------|----------|
15
+ | slice-01 | Completed | Updated README, README_FOR_AI, support matrix template, troubleshooting template, and init-docs README generation; validated with `bash scripts/ci/smoke-init-docs.sh`, `bash scripts/ci/smoke-create-quiver.sh`, and `git diff --check` |
16
+ | slice-02 | Completed | Ported `init` to the Node runtime via `src/create-quiver/lib/init-docs.js`; `src/create-quiver/index.js` now calls it directly; `scripts/ci/smoke-init-docs.sh` now validates the real CLI path. Verified with `node -c src/create-quiver/index.js`, `node -c src/create-quiver/lib/init-docs.js`, `bash -n scripts/init-docs.sh scripts/ci/smoke-init-docs.sh scripts/ci/smoke-create-quiver.sh scripts/package-quiver.sh`, `bash scripts/ci/smoke-init-docs.sh`, `bash scripts/ci/smoke-create-quiver.sh`, and `bash scripts/package-quiver.sh` |
17
+ | slice-03 | Completed | Ported `migrate` off Bash by calling the Node init runtime with `migrateMode: true`; added shared path and state helpers in `src/create-quiver/lib/paths.js` and `src/create-quiver/lib/state.js`; updated doctor/init output to use Node-native commands; added smoke coverage for spaces and Windows-style paths in `scripts/ci/smoke-create-quiver.sh`. Verified with `node -c src/create-quiver/index.js`, `node -c src/create-quiver/lib/init-docs.js`, `node -c src/create-quiver/lib/paths.js`, `node -c src/create-quiver/lib/state.js`, `node -c src/create-quiver/lib/analyze.js`, `node -c src/create-quiver/lib/doctor.js`, `bash -n scripts/init-docs.sh scripts/ci/smoke-init-docs.sh scripts/ci/smoke-create-quiver.sh scripts/package-quiver.sh`, `bash scripts/ci/smoke-init-docs.sh`, `bash scripts/ci/smoke-create-quiver.sh`, `bash scripts/package-quiver.sh`, and `git diff --check` |
18
+ | slice-04 | Completed | Ported slice lifecycle and readiness gates to Node CLI commands in `src/create-quiver/lib/lifecycle.js`, `src/create-quiver/lib/readiness.js`, `src/create-quiver/lib/scope.js`, `src/create-quiver/lib/git.js`, and `src/create-quiver/lib/slice.js`; updated `src/create-quiver/index.js` to route `start-slice`, `check-slice`, `check-pr`, `cleanup-slice`, `check-scope`, and `refresh-active-slices`; updated `scripts/ci/smoke-workflow-gates.sh` to exercise the CLI directly. Verified with `node -c src/create-quiver/index.js`, `node -c src/create-quiver/lib/git.js`, `node -c src/create-quiver/lib/slice.js`, `node -c src/create-quiver/lib/lifecycle.js`, `node -c src/create-quiver/lib/readiness.js`, `node -c src/create-quiver/lib/scope.js`, `bash -n scripts/ci/smoke-workflow-gates.sh scripts/ci/smoke-create-quiver.sh scripts/ci/smoke-init-docs.sh scripts/package-quiver.sh`, `bash scripts/ci/smoke-workflow-gates.sh`, `bash scripts/ci/smoke-create-quiver.sh`, `bash scripts/package-quiver.sh`, and `git diff --check` |
19
+ | slice-05 | Completed | Added `quiver:*` npm scripts to generated and migrated projects, kept legacy Bash aliases for compatibility, taught `doctor` to flag projects that still need script migration, and updated smoke coverage to verify additive migration and user script preservation. Verified with `node -c src/create-quiver/index.js`, `node -c src/create-quiver/lib/init-docs.js`, `bash -n scripts/init-docs.sh scripts/ci/smoke-init-docs.sh scripts/ci/smoke-create-quiver.sh scripts/package-quiver.sh`, `bash scripts/ci/smoke-init-docs.sh`, `bash scripts/ci/smoke-create-quiver.sh`, `bash scripts/package-quiver.sh`, and `git diff --check` |
20
+ | slice-06 | Completed | Added a cross-platform Node smoke script at `scripts/ci/smoke-cross-platform.js` and switched `.github/workflows/ci.yml` to a Linux/macOS/Windows matrix that runs the Node smoke without Bash as the required path. Verified with `node -c src/create-quiver/index.js`, `node -c src/create-quiver/lib/init-docs.js`, `node -c scripts/ci/smoke-cross-platform.js`, `bash -n scripts/init-docs.sh scripts/ci/smoke-init-docs.sh scripts/ci/smoke-create-quiver.sh scripts/package-quiver.sh`, `bash scripts/ci/smoke-init-docs.sh`, `node scripts/ci/smoke-cross-platform.js`, `bash scripts/package-quiver.sh`, and `git diff --check` |
21
+
22
+ ## Required Final Evidence
23
+
24
+ - Node syntax checks for all new runtime modules
25
+ - Unit or smoke coverage for path handling on Windows-style and POSIX-style paths
26
+ - Generated project smoke on Linux
27
+ - Generated project smoke on macOS
28
+ - Generated project smoke on Windows
29
+ - Package smoke proving npm wrappers invoke CLI commands correctly
30
+ - Documentation check proving Bash is no longer documented as the primary path
@@ -0,0 +1,86 @@
1
+ # Quiver v0.12 - Cross-Platform Native Runtime
2
+
3
+ **Date:** 2026-04-22
4
+ **Status:** Completed
5
+
6
+ Slice numbering resets here: this spec starts at `slice-01` and does not continue any previous spec's numbering.
7
+
8
+ ## Objective
9
+
10
+ Make Quiver run natively on macOS, Linux, and Windows by moving the framework runtime from Bash scripts to Node.js CLI commands.
11
+
12
+ ## Scope
13
+
14
+ ### Included
15
+
16
+ - Define the official cross-platform support contract for macOS, Linux, Windows PowerShell, and Windows CMD
17
+ - Remove Bash as a required runtime dependency for user-facing Quiver commands
18
+ - Port generated project initialization and migration from shell scripts to Node.js
19
+ - Add Node-native commands for slice lifecycle and readiness gates
20
+ - Update generated `package.json` scripts to call `create-quiver` directly
21
+ - Keep existing `.sh` scripts as legacy Unix wrappers where useful
22
+ - Add cross-platform CI coverage for Linux, macOS, and Windows
23
+ - Update docs, support matrix, troubleshooting, and generated project guidance
24
+
25
+ ### Excluded
26
+
27
+ - Auto-installing Bash, Git Bash, MSYS2, or WSL
28
+ - Removing existing Bash wrappers in this spec
29
+ - Changing the one slice = one commit or one spec = one PR workflow
30
+ - Integrating AI provider execution into the CLI
31
+ - Publishing a release as part of this spec
32
+
33
+ ## Target Native Flow
34
+
35
+ From any supported OS, inside the target project root:
36
+
37
+ ```bash
38
+ npx create-quiver migrate
39
+ npx create-quiver analyze
40
+ npx create-quiver doctor
41
+ npx create-quiver start-slice specs/app/slices/slice-01/slice.json
42
+ npx create-quiver check-slice specs/app/slices/slice-01/slice.json
43
+ npx create-quiver check-pr specs/app/slices/slice-01/slice.json
44
+ ```
45
+
46
+ `--dir` remains available for explicit out-of-project targeting, but it is not the primary developer path.
47
+
48
+ ## Support Contract
49
+
50
+ Quiver should support:
51
+
52
+ - macOS with Terminal shells
53
+ - Linux with standard shell environments
54
+ - Windows with PowerShell
55
+ - Windows with CMD
56
+ - Node.js LTS and npm
57
+ - Git with `worktree` support
58
+
59
+ Quiver should not require:
60
+
61
+ - Bash on Windows
62
+ - WSL for normal Windows usage
63
+ - executable bits for user-facing commands
64
+ - POSIX-only path behavior in generated project workflows
65
+
66
+ ## Slices
67
+
68
+ | Slice | Title | Status | Spec |
69
+ |-------|-------|--------|------|
70
+ | 01 | Cross-Platform Support Contract | Completed | [slice-01](./slices/slice-01-cross-platform-support-contract/slice.json) |
71
+ | 02 | Node Init Docs Runtime | Completed | [slice-02](./slices/slice-02-node-init-docs-runtime/slice.json) |
72
+ | 03 | Node Migrate, Analyze, and Doctor Flow | Completed | [slice-03](./slices/slice-03-node-migrate-analyze-doctor-flow/slice.json) |
73
+ | 04 | Node Slice Lifecycle Commands | Completed | [slice-04](./slices/slice-04-node-slice-lifecycle-commands/slice.json) |
74
+ | 05 | Generated Project Scripts and Migration | Completed | [slice-05](./slices/slice-05-generated-project-scripts-and-migration/slice.json) |
75
+ | 06 | Cross-Platform CI and Release Readiness | Completed | [slice-06](./slices/slice-06-cross-platform-ci-release-readiness/slice.json) |
76
+
77
+ ## Definition of Done
78
+
79
+ - New Quiver projects can be initialized without invoking Bash
80
+ - Existing Quiver projects can migrate without invoking Bash
81
+ - Analyzer and doctor work from PowerShell, CMD, macOS, and Linux
82
+ - Slice lifecycle commands have Node-native CLI entrypoints
83
+ - Generated `package.json` scripts use `create-quiver` commands instead of `bash tools/scripts/*.sh`
84
+ - Existing Unix wrappers still work or clearly point to the new CLI commands
85
+ - CI validates core workflows on `ubuntu-latest`, `macos-latest`, and `windows-latest`
86
+ - README and generated docs describe Windows native support accurately
@@ -0,0 +1,29 @@
1
+ # Quiver v0.12 Spec Status
2
+
3
+ **Spec:** quiver-v12-cross-platform-native-runtime
4
+ **Last updated:** 2026-04-22
5
+
6
+ Slice numbering is local to this spec. The first slice is `slice-01`.
7
+
8
+ ## Status
9
+
10
+ | Slice | Title | Status | PR | Estimated hours | Actual hours |
11
+ |-------|-------|--------|----|-----------------|--------------|
12
+ | slice-01 | Cross-Platform Support Contract | Completed | - | 3 | 3 |
13
+ | slice-02 | Node Init Docs Runtime | Completed | - | 8 | 4 |
14
+ | slice-03 | Node Migrate, Analyze, and Doctor Flow | Completed | - | 5 | 5 |
15
+ | slice-04 | Node Slice Lifecycle Commands | Completed | - | 10 | 10 |
16
+ | slice-05 | Generated Project Scripts and Migration | Completed | - | 5 | 5 |
17
+ | slice-06 | Cross-Platform CI and Release Readiness | Completed | - | 5 | 5 |
18
+
19
+ ## Progress
20
+
21
+ - Completed slices: 6 / 6
22
+ - Estimated hours: 36
23
+ - Actual hours: 32
24
+
25
+ ## Blockers
26
+
27
+ | Slice | Blocker | Since | Action needed |
28
+ |-------|---------|-------|---------------|
29
+ | - | - | - | - |
@@ -0,0 +1,69 @@
1
+ {
2
+ "slice_id": "slice-01-cross-platform-support-contract",
3
+ "ticket": "QUIVER-01",
4
+ "type": "documentation",
5
+ "title": "Cross-Platform Support Contract",
6
+ "objective": "Define the official macOS, Linux, and Windows support contract before runtime code is ported.",
7
+ "description": "Quiver currently documents macOS and Linux as the supported environments. This slice updates the support contract, README, generated docs, and troubleshooting language so the project has a precise target for native Windows support.",
8
+ "git": {
9
+ "branch_type": "docs",
10
+ "base_branch": "main",
11
+ "branch_slug": "cross-platform-support-contract",
12
+ "branch_name": "docs/QUIVER-01-cross-platform-support-contract"
13
+ },
14
+ "must": [
15
+ "Document macOS, Linux, Windows PowerShell, and Windows CMD as the target support matrix for the cross-platform work",
16
+ "State that Bash remains a legacy compatibility path, not the future required runtime",
17
+ "Define common requirements: Node.js LTS, npm, Git, and Git worktree support",
18
+ "Document that Quiver should not auto-install Bash, Git Bash, MSYS2, or WSL",
19
+ "Update generated support matrix and troubleshooting templates",
20
+ "Keep Windows marked as target support until CI proves native behavior"
21
+ ],
22
+ "not_included": [
23
+ "Porting Bash scripts to Node",
24
+ "Changing generated package scripts",
25
+ "Adding Windows CI",
26
+ "Publishing a release"
27
+ ],
28
+ "acceptance": [
29
+ "README explains the target native Windows support approach",
30
+ "Support matrix template includes macOS, Linux, PowerShell, and CMD expectations",
31
+ "Troubleshooting explains when to use WSL or Git Bash as a fallback during transition",
32
+ "No doc claims Windows is fully supported before runtime and CI slices are complete"
33
+ ],
34
+ "files": [
35
+ "README.md",
36
+ "README_FOR_AI.md",
37
+ "docs/SUPPORT_MATRIX.md.template",
38
+ "docs/TROUBLESHOOTING.md.template",
39
+ "scripts/init-docs.sh",
40
+ "specs/quiver-v12-cross-platform-native-runtime/SPEC.md",
41
+ "specs/quiver-v12-cross-platform-native-runtime/STATUS.md",
42
+ "specs/quiver-v12-cross-platform-native-runtime/EVIDENCE_REPORT.md",
43
+ "specs/quiver-v12-cross-platform-native-runtime/slices/slice-01-cross-platform-support-contract/slice.json"
44
+ ],
45
+ "tests": [
46
+ "bash scripts/ci/smoke-init-docs.sh",
47
+ "git diff --check"
48
+ ],
49
+ "documentation": [
50
+ "specs/quiver-v12-cross-platform-native-runtime/SPEC.md",
51
+ "specs/quiver-v12-cross-platform-native-runtime/STATUS.md",
52
+ "specs/quiver-v12-cross-platform-native-runtime/EVIDENCE_REPORT.md"
53
+ ],
54
+ "dependencies": [
55
+ "quiver-v11-existing-project-migration",
56
+ "docs/root-first-docs-flow"
57
+ ],
58
+ "assumptions": [
59
+ "The support contract should lead implementation but avoid overstating current Windows readiness",
60
+ "Bash wrappers can remain documented as legacy Unix compatibility"
61
+ ],
62
+ "estimated_hours": 3,
63
+ "actual_hours": null,
64
+ "status": "draft",
65
+ "blocked_reason": null,
66
+ "ready_at": null,
67
+ "started_at": null,
68
+ "completed_at": null
69
+ }
@@ -0,0 +1,76 @@
1
+ {
2
+ "slice_id": "slice-02-node-init-docs-runtime",
3
+ "ticket": "QUIVER-02",
4
+ "type": "feature",
5
+ "title": "Node Init Docs Runtime",
6
+ "objective": "Replace the Bash dependency in project initialization with a Node.js implementation.",
7
+ "description": "The current installer invokes `bash docs-template/scripts/init-docs.sh`, which blocks native Windows usage at the first command. This slice ports initialization behavior to Node while preserving generated file content, migration-safe copy behavior, package.json sync, and Quiver state metadata.",
8
+ "git": {
9
+ "branch_type": "feature",
10
+ "base_branch": "main",
11
+ "branch_slug": "node-init-docs-runtime",
12
+ "branch_name": "feature/QUIVER-02-node-init-docs-runtime"
13
+ },
14
+ "must": [
15
+ "Add a Node-native initialization module used by `create-quiver --name`",
16
+ "Copy templates and replace placeholders without invoking Bash, sed, cp, or chmod as required steps",
17
+ "Preserve existing files according to current init and migration behavior",
18
+ "Generate docs, specs, tools, package.json scripts, README, and `.quiver/state.json` with equivalent content",
19
+ "Keep `scripts/init-docs.sh` as a compatibility wrapper or legacy path where useful",
20
+ "Update package smoke so packaged installs initialize without Bash"
21
+ ],
22
+ "not_included": [
23
+ "Porting slice lifecycle scripts",
24
+ "Changing the spec/slice workflow semantics",
25
+ "Adding Windows CI matrix",
26
+ "Removing legacy shell scripts"
27
+ ],
28
+ "acceptance": [
29
+ "`node bin/create-quiver.js --name \"Smoke Project\" --dir <target>` initializes without spawning Bash",
30
+ "Generated project files match the current contract",
31
+ "Existing file preservation still works",
32
+ "Package smoke proves initialization from the tarball works through Node runtime",
33
+ "Unix `scripts/init-docs.sh` compatibility path still passes or clearly delegates to Node"
34
+ ],
35
+ "files": [
36
+ "src/create-quiver/index.js",
37
+ "src/create-quiver/lib/init-docs.js",
38
+ "src/create-quiver/lib/templates.js",
39
+ "src/create-quiver/lib/package-json.js",
40
+ "scripts/init-docs.sh",
41
+ "scripts/ci/smoke-init-docs.sh",
42
+ "scripts/ci/smoke-create-quiver.sh",
43
+ "scripts/package-quiver.sh",
44
+ "specs/quiver-v12-cross-platform-native-runtime/SPEC.md",
45
+ "specs/quiver-v12-cross-platform-native-runtime/STATUS.md",
46
+ "specs/quiver-v12-cross-platform-native-runtime/EVIDENCE_REPORT.md",
47
+ "specs/quiver-v12-cross-platform-native-runtime/slices/slice-02-node-init-docs-runtime/slice.json"
48
+ ],
49
+ "tests": [
50
+ "node -c src/create-quiver/index.js",
51
+ "node -c src/create-quiver/lib/init-docs.js",
52
+ "bash scripts/ci/smoke-init-docs.sh",
53
+ "bash scripts/ci/smoke-create-quiver.sh",
54
+ "bash scripts/package-quiver.sh",
55
+ "git diff --check"
56
+ ],
57
+ "documentation": [
58
+ "specs/quiver-v12-cross-platform-native-runtime/SPEC.md",
59
+ "specs/quiver-v12-cross-platform-native-runtime/STATUS.md",
60
+ "specs/quiver-v12-cross-platform-native-runtime/EVIDENCE_REPORT.md"
61
+ ],
62
+ "dependencies": [
63
+ "slice-01-cross-platform-support-contract"
64
+ ],
65
+ "assumptions": [
66
+ "Node.js is the shared runtime across all supported systems",
67
+ "Current generated content should remain stable unless cross-platform support requires a wording change"
68
+ ],
69
+ "estimated_hours": 8,
70
+ "actual_hours": null,
71
+ "status": "draft",
72
+ "blocked_reason": null,
73
+ "ready_at": null,
74
+ "started_at": null,
75
+ "completed_at": null
76
+ }
@@ -0,0 +1,74 @@
1
+ {
2
+ "slice_id": "slice-03-node-migrate-analyze-doctor-flow",
3
+ "ticket": "QUIVER-03",
4
+ "type": "feature",
5
+ "title": "Node Migrate, Analyze, and Doctor Flow",
6
+ "objective": "Make `migrate`, `analyze`, and `doctor` fully Node-native and Windows-safe.",
7
+ "description": "After initialization no longer requires Bash, the core maintenance loop must also avoid shell assumptions. This slice hardens path handling, metadata updates, and diagnostics for macOS, Linux, PowerShell, and CMD.",
8
+ "git": {
9
+ "branch_type": "feature",
10
+ "base_branch": "main",
11
+ "branch_slug": "node-core-flow",
12
+ "branch_name": "feature/QUIVER-03-node-core-flow"
13
+ },
14
+ "must": [
15
+ "Ensure `create-quiver migrate` uses the Node initialization runtime instead of Bash",
16
+ "Normalize paths with Node APIs and avoid POSIX-only separators in logic",
17
+ "Keep `analyze` and `doctor` usable from the project root without Bash",
18
+ "Update doctor diagnostics so Windows users see PowerShell/CMD-safe commands",
19
+ "Add focused tests or smoke fixtures for Windows-style paths and paths with spaces",
20
+ "Preserve existing metadata fields in `.quiver/state.json`"
21
+ ],
22
+ "not_included": [
23
+ "Porting `start-slice` or readiness gates",
24
+ "Adding GitHub Actions Windows matrix",
25
+ "Removing shell wrappers",
26
+ "Publishing a release"
27
+ ],
28
+ "acceptance": [
29
+ "`create-quiver migrate`, `analyze`, and `doctor` do not invoke Bash",
30
+ "Commands work when the project path contains spaces",
31
+ "Doctor output uses commands valid in PowerShell, CMD, macOS, and Linux",
32
+ "State metadata remains valid after migration and analysis",
33
+ "Existing smoke coverage still passes"
34
+ ],
35
+ "files": [
36
+ "src/create-quiver/index.js",
37
+ "src/create-quiver/lib/paths.js",
38
+ "src/create-quiver/lib/state.js",
39
+ "src/create-quiver/lib/analyze.js",
40
+ "src/create-quiver/lib/doctor.js",
41
+ "scripts/ci/smoke-create-quiver.sh",
42
+ "specs/quiver-v12-cross-platform-native-runtime/SPEC.md",
43
+ "specs/quiver-v12-cross-platform-native-runtime/STATUS.md",
44
+ "specs/quiver-v12-cross-platform-native-runtime/EVIDENCE_REPORT.md",
45
+ "specs/quiver-v12-cross-platform-native-runtime/slices/slice-03-node-migrate-analyze-doctor-flow/slice.json"
46
+ ],
47
+ "tests": [
48
+ "node -c src/create-quiver/index.js",
49
+ "node bin/create-quiver.js migrate",
50
+ "node bin/create-quiver.js analyze",
51
+ "node bin/create-quiver.js doctor",
52
+ "bash scripts/ci/smoke-create-quiver.sh",
53
+ "git diff --check"
54
+ ],
55
+ "documentation": [
56
+ "specs/quiver-v12-cross-platform-native-runtime/SPEC.md",
57
+ "specs/quiver-v12-cross-platform-native-runtime/STATUS.md",
58
+ "specs/quiver-v12-cross-platform-native-runtime/EVIDENCE_REPORT.md"
59
+ ],
60
+ "dependencies": [
61
+ "slice-02-node-init-docs-runtime"
62
+ ],
63
+ "assumptions": [
64
+ "Analyze and doctor should remain read-mostly except for analysis metadata updates",
65
+ "`--dir` remains supported for explicit out-of-project targeting"
66
+ ],
67
+ "estimated_hours": 5,
68
+ "actual_hours": null,
69
+ "status": "draft",
70
+ "blocked_reason": null,
71
+ "ready_at": null,
72
+ "started_at": null,
73
+ "completed_at": null
74
+ }
@@ -0,0 +1,81 @@
1
+ {
2
+ "slice_id": "slice-04-node-slice-lifecycle-commands",
3
+ "ticket": "QUIVER-04",
4
+ "type": "feature",
5
+ "title": "Node Slice Lifecycle Commands",
6
+ "objective": "Port slice lifecycle and readiness gates from Bash scripts to Node CLI commands.",
7
+ "description": "The primary developer workflow still depends on Bash for `start-slice`, readiness checks, PR checks, cleanup, and scope checks. This slice introduces Node-native commands that preserve current behavior while working from PowerShell and CMD.",
8
+ "git": {
9
+ "branch_type": "feature",
10
+ "base_branch": "main",
11
+ "branch_slug": "node-slice-lifecycle",
12
+ "branch_name": "feature/QUIVER-04-node-slice-lifecycle"
13
+ },
14
+ "must": [
15
+ "Add CLI commands for `start-slice`, `check-slice`, `check-pr`, `cleanup-slice`, `check-scope`, and `refresh-active-slices`",
16
+ "Port slice JSON parsing and validation to Node",
17
+ "Port Git worktree creation, lookup, cleanup, and status checks to Node",
18
+ "Handle paths with spaces and Windows drive letters safely",
19
+ "Handle Windows executable-bit differences without false failures",
20
+ "Keep legacy `.sh` wrappers usable on Unix by delegating to the new CLI commands where practical"
21
+ ],
22
+ "not_included": [
23
+ "Changing the slice JSON schema unless required for compatibility",
24
+ "Changing branch naming rules",
25
+ "Changing one slice = one commit validation",
26
+ "Adding release publishing"
27
+ ],
28
+ "acceptance": [
29
+ "`npx create-quiver start-slice <slice.json>` creates or reuses the expected worktree",
30
+ "`npx create-quiver check-slice <slice.json>` validates the same contract as the current shell gate",
31
+ "`npx create-quiver check-pr <slice.json>` validates PR readiness without Bash",
32
+ "`npx create-quiver cleanup-slice <slice.json>` removes worktree and branch according to existing flags",
33
+ "Unix shell wrappers still pass existing smokes",
34
+ "Cross-platform path tests cover spaces and Windows-style path strings"
35
+ ],
36
+ "files": [
37
+ "src/create-quiver/index.js",
38
+ "src/create-quiver/lib/git.js",
39
+ "src/create-quiver/lib/slice.js",
40
+ "src/create-quiver/lib/lifecycle.js",
41
+ "src/create-quiver/lib/readiness.js",
42
+ "src/create-quiver/lib/scope.js",
43
+ "scripts/start-slice.sh",
44
+ "scripts/check-slice-readiness.sh",
45
+ "scripts/check-pr-readiness.sh",
46
+ "scripts/cleanup-slice.sh",
47
+ "scripts/check-scope.sh",
48
+ "scripts/refresh-active-slices.sh",
49
+ "scripts/ci/smoke-workflow-gates.sh",
50
+ "scripts/ci/smoke-create-quiver.sh",
51
+ "specs/quiver-v12-cross-platform-native-runtime/SPEC.md",
52
+ "specs/quiver-v12-cross-platform-native-runtime/STATUS.md",
53
+ "specs/quiver-v12-cross-platform-native-runtime/EVIDENCE_REPORT.md",
54
+ "specs/quiver-v12-cross-platform-native-runtime/slices/slice-04-node-slice-lifecycle-commands/slice.json"
55
+ ],
56
+ "tests": [
57
+ "node -c src/create-quiver/index.js",
58
+ "bash scripts/ci/smoke-workflow-gates.sh",
59
+ "bash scripts/ci/smoke-create-quiver.sh",
60
+ "git diff --check"
61
+ ],
62
+ "documentation": [
63
+ "specs/quiver-v12-cross-platform-native-runtime/SPEC.md",
64
+ "specs/quiver-v12-cross-platform-native-runtime/STATUS.md",
65
+ "specs/quiver-v12-cross-platform-native-runtime/EVIDENCE_REPORT.md"
66
+ ],
67
+ "dependencies": [
68
+ "slice-03-node-migrate-analyze-doctor-flow"
69
+ ],
70
+ "assumptions": [
71
+ "Git remains an external dependency and is not bundled",
72
+ "The Node implementation should preserve current shell behavior before improving ergonomics"
73
+ ],
74
+ "estimated_hours": 10,
75
+ "actual_hours": null,
76
+ "status": "draft",
77
+ "blocked_reason": null,
78
+ "ready_at": null,
79
+ "started_at": null,
80
+ "completed_at": null
81
+ }