create-quiver 0.9.1 → 0.12.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/BACKLOG.md +16 -17
- package/CHANGELOG.md +34 -0
- package/README.md +419 -330
- package/README_FOR_AI.md +93 -56
- package/ROADMAP.md +22 -11
- package/docs/AI_CONTEXT.md.template +2 -0
- package/docs/AI_ONBOARDING_PROMPT.md.template +36 -19
- package/docs/COMMANDS.md.template +73 -1
- package/docs/CONTEXTO.md.template +2 -0
- package/docs/DECISIONS.md.template +1 -0
- package/docs/GITFLOW_PR_GUIDE.md.template +11 -0
- package/docs/INDEX.md.template +20 -18
- package/docs/STANDARD.md.template +1 -1
- package/docs/STATUS.md.template +1 -0
- package/docs/SUPPORT_MATRIX.md.template +6 -2
- package/docs/TROUBLESHOOTING.md.template +79 -1
- package/docs/WORKFLOW.md.template +26 -18
- package/package.json +24 -2
- package/package.template.json +24 -7
- package/scripts/check-pr-readiness.sh +1 -1
- package/scripts/check-scope.sh +0 -1
- package/scripts/check-slice-readiness.sh +3 -4
- package/scripts/init-docs.sh +53 -6
- package/scripts/package-quiver.sh +18 -2
- package/specs/quiver-v20-ai-cli-orchestration/EVIDENCE_REPORT.md +23 -0
- package/specs/quiver-v20-ai-cli-orchestration/EXECUTION_PLAN.md +57 -0
- package/specs/quiver-v20-ai-cli-orchestration/SPEC.md +202 -0
- package/specs/quiver-v20-ai-cli-orchestration/STATUS.md +35 -0
- package/specs/quiver-v20-ai-cli-orchestration/pr.md +100 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-00-spec-foundation/CLOSURE_BRIEF.md +30 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-00-spec-foundation/EXECUTION_BRIEF.md +61 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-00-spec-foundation/slice.json +54 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-01-ai-provider-runner/CLOSURE_BRIEF.md +39 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-01-ai-provider-runner/EXECUTION_BRIEF.md +63 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-01-ai-provider-runner/slice.json +55 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-02-context-packs-token-budget/CLOSURE_BRIEF.md +40 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-02-context-packs-token-budget/EXECUTION_BRIEF.md +60 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-02-context-packs-token-budget/slice.json +54 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-03-ai-phase-gated-planner/CLOSURE_BRIEF.md +43 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-03-ai-phase-gated-planner/EXECUTION_BRIEF.md +62 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-03-ai-phase-gated-planner/slice.json +62 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-04-spec-slice-handoff-pr-generation/CLOSURE_BRIEF.md +36 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-04-spec-slice-handoff-pr-generation/EXECUTION_BRIEF.md +63 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-04-spec-slice-handoff-pr-generation/slice.json +59 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-05-execution-plan-parallel-worktrees/CLOSURE_BRIEF.md +32 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-05-execution-plan-parallel-worktrees/EXECUTION_BRIEF.md +61 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-05-execution-plan-parallel-worktrees/slice.json +59 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-06-ai-execute-slice-scope-enforcement/CLOSURE_BRIEF.md +36 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-06-ai-execute-slice-scope-enforcement/EXECUTION_BRIEF.md +64 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-06-ai-execute-slice-scope-enforcement/slice.json +65 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-07-github-pr-preflight/CLOSURE_BRIEF.md +36 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-07-github-pr-preflight/EXECUTION_BRIEF.md +66 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-07-github-pr-preflight/slice.json +63 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-08-docs-smokes-release-readiness/CLOSURE_BRIEF.md +35 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-08-docs-smokes-release-readiness/EXECUTION_BRIEF.md +64 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-08-docs-smokes-release-readiness/slice.json +77 -0
- package/specs/quiver-v21-ai-first-layout/EVIDENCE_REPORT.md +31 -0
- package/specs/quiver-v21-ai-first-layout/EXECUTION_PLAN.md +185 -0
- package/specs/quiver-v21-ai-first-layout/SPEC.md +212 -0
- package/specs/quiver-v21-ai-first-layout/STATUS.md +37 -0
- package/specs/quiver-v21-ai-first-layout/pr.md +110 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-00-spec-foundation/CLOSURE_BRIEF.md +30 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-00-spec-foundation/EXECUTION_BRIEF.md +63 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-00-spec-foundation/slice.json +45 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-01-init-profiles-dry-run/CLOSURE_BRIEF.md +31 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-01-init-profiles-dry-run/EXECUTION_BRIEF.md +59 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-01-init-profiles-dry-run/slice.json +57 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-02-internal-layout-template-resolver/CLOSURE_BRIEF.md +32 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-02-internal-layout-template-resolver/EXECUTION_BRIEF.md +60 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-02-internal-layout-template-resolver/slice.json +58 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-03-generation-profiles-visible-contract/CLOSURE_BRIEF.md +34 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-03-generation-profiles-visible-contract/EXECUTION_BRIEF.md +61 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-03-generation-profiles-visible-contract/slice.json +64 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-04-analyze-scan-relocation/CLOSURE_BRIEF.md +32 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-04-analyze-scan-relocation/EXECUTION_BRIEF.md +58 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-04-analyze-scan-relocation/slice.json +64 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-05-empty-specs-layout-doctor/CLOSURE_BRIEF.md +32 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-05-empty-specs-layout-doctor/EXECUTION_BRIEF.md +60 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-05-empty-specs-layout-doctor/slice.json +65 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-06-legacy-migration-optional-assets/CLOSURE_BRIEF.md +31 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-06-legacy-migration-optional-assets/EXECUTION_BRIEF.md +62 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-06-legacy-migration-optional-assets/slice.json +66 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-07-docs-guidance-alignment/CLOSURE_BRIEF.md +33 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-07-docs-guidance-alignment/EXECUTION_BRIEF.md +61 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-07-docs-guidance-alignment/slice.json +67 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-08-smokes-release-readiness/CLOSURE_BRIEF.md +35 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-08-smokes-release-readiness/EXECUTION_BRIEF.md +66 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-08-smokes-release-readiness/slice.json +62 -0
- package/specs/quiver-v22-guided-ai-workflow/EVIDENCE_REPORT.md +58 -0
- package/specs/quiver-v22-guided-ai-workflow/EXECUTION_PLAN.md +88 -0
- package/specs/quiver-v22-guided-ai-workflow/SPEC.md +228 -0
- package/specs/quiver-v22-guided-ai-workflow/STATUS.md +42 -0
- package/specs/quiver-v22-guided-ai-workflow/pr.md +104 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-00-spec-foundation/CLOSURE_BRIEF.md +35 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-00-spec-foundation/EXECUTION_BRIEF.md +61 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-00-spec-foundation/slice.json +51 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-01-docs-source-of-truth-sync/CLOSURE_BRIEF.md +31 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-01-docs-source-of-truth-sync/EXECUTION_BRIEF.md +58 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-01-docs-source-of-truth-sync/slice.json +55 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-02-prepare-command-diagnostics/CLOSURE_BRIEF.md +30 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-02-prepare-command-diagnostics/EXECUTION_BRIEF.md +57 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-02-prepare-command-diagnostics/slice.json +57 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-03-context-doc-refresh/CLOSURE_BRIEF.md +32 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-03-context-doc-refresh/EXECUTION_BRIEF.md +56 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-03-context-doc-refresh/slice.json +56 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-04-planner-approval-state/CLOSURE_BRIEF.md +33 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-04-planner-approval-state/EXECUTION_BRIEF.md +56 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-04-planner-approval-state/slice.json +58 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-05-spec-worktree-lifecycle/CLOSURE_BRIEF.md +32 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-05-spec-worktree-lifecycle/EXECUTION_BRIEF.md +56 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-05-spec-worktree-lifecycle/slice.json +54 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-06-executor-commit-recovery/CLOSURE_BRIEF.md +32 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-06-executor-commit-recovery/EXECUTION_BRIEF.md +58 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-06-executor-commit-recovery/slice.json +57 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-07-execution-waves-delegation/CLOSURE_BRIEF.md +32 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-07-execution-waves-delegation/EXECUTION_BRIEF.md +58 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-07-execution-waves-delegation/slice.json +55 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-08-pr-create-gh-ssh/CLOSURE_BRIEF.md +32 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-08-pr-create-gh-ssh/EXECUTION_BRIEF.md +58 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-08-pr-create-gh-ssh/slice.json +53 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-09-post-merge-cleanup-release-safety/CLOSURE_BRIEF.md +33 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-09-post-merge-cleanup-release-safety/EXECUTION_BRIEF.md +59 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-09-post-merge-cleanup-release-safety/slice.json +59 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-10-docs-smokes-release-readiness/CLOSURE_BRIEF.md +34 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-10-docs-smokes-release-readiness/EXECUTION_BRIEF.md +58 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-10-docs-smokes-release-readiness/slice.json +60 -0
- package/specs/quiver-v23-guided-flow-productization/EVIDENCE_REPORT.md +80 -0
- package/specs/quiver-v23-guided-flow-productization/EXECUTION_PLAN.md +80 -0
- package/specs/quiver-v23-guided-flow-productization/SPEC.md +203 -0
- package/specs/quiver-v23-guided-flow-productization/STATUS.md +39 -0
- package/specs/quiver-v23-guided-flow-productization/pr.md +119 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-00-spec-foundation/CLOSURE_BRIEF.md +30 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-00-spec-foundation/EXECUTION_BRIEF.md +61 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-00-spec-foundation/slice.json +51 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-01-short-command-and-flow-entrypoint/CLOSURE_BRIEF.md +33 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-01-short-command-and-flow-entrypoint/EXECUTION_BRIEF.md +35 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-01-short-command-and-flow-entrypoint/slice.json +56 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-02-flow-status-wizard/CLOSURE_BRIEF.md +31 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-02-flow-status-wizard/EXECUTION_BRIEF.md +29 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-02-flow-status-wizard/slice.json +55 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-03-agent-profiles/CLOSURE_BRIEF.md +33 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-03-agent-profiles/EXECUTION_BRIEF.md +29 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-03-agent-profiles/slice.json +54 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-04-context-preparation-onboarding/CLOSURE_BRIEF.md +32 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-04-context-preparation-onboarding/EXECUTION_BRIEF.md +30 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-04-context-preparation-onboarding/slice.json +59 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-05-planner-iteration-history/CLOSURE_BRIEF.md +31 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-05-planner-iteration-history/EXECUTION_BRIEF.md +29 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-05-planner-iteration-history/slice.json +53 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-06-production-plan-review/CLOSURE_BRIEF.md +33 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-06-production-plan-review/EXECUTION_BRIEF.md +30 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-06-production-plan-review/slice.json +54 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-07-spec-create-experience/CLOSURE_BRIEF.md +33 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-07-spec-create-experience/EXECUTION_BRIEF.md +30 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-07-spec-create-experience/slice.json +55 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-08-executor-prompt-generation/CLOSURE_BRIEF.md +32 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-08-executor-prompt-generation/EXECUTION_BRIEF.md +30 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-08-executor-prompt-generation/slice.json +55 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-09-delegated-slice-execution/CLOSURE_BRIEF.md +33 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-09-delegated-slice-execution/EXECUTION_BRIEF.md +34 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-09-delegated-slice-execution/slice.json +57 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-10-docs-smokes-release-readiness/CLOSURE_BRIEF.md +33 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-10-docs-smokes-release-readiness/EXECUTION_BRIEF.md +32 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-10-docs-smokes-release-readiness/slice.json +63 -0
- package/specs/quiver-v24-dx-onboarding-hardening/EVIDENCE_REPORT.md +55 -0
- package/specs/quiver-v24-dx-onboarding-hardening/EXECUTION_PLAN.md +43 -0
- package/specs/quiver-v24-dx-onboarding-hardening/SPEC.md +149 -0
- package/specs/quiver-v24-dx-onboarding-hardening/STATUS.md +31 -0
- package/specs/quiver-v24-dx-onboarding-hardening/pr.md +76 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-00-spec-foundation/CLOSURE_BRIEF.md +31 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-00-spec-foundation/EXECUTION_BRIEF.md +52 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-00-spec-foundation/slice.json +51 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-01-init-template-hygiene/CLOSURE_BRIEF.md +38 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-01-init-template-hygiene/EXECUTION_BRIEF.md +53 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-01-init-template-hygiene/slice.json +55 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-02-cli-command-routing-version-errors/CLOSURE_BRIEF.md +33 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-02-cli-command-routing-version-errors/EXECUTION_BRIEF.md +50 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-02-cli-command-routing-version-errors/slice.json +52 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-03-doctor-fix-doc-link-checks/CLOSURE_BRIEF.md +33 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-03-doctor-fix-doc-link-checks/EXECUTION_BRIEF.md +50 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-03-doctor-fix-doc-link-checks/slice.json +53 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-04-prepare-output-ai-context-drafts/CLOSURE_BRIEF.md +33 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-04-prepare-output-ai-context-drafts/EXECUTION_BRIEF.md +50 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-04-prepare-output-ai-context-drafts/slice.json +70 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-05-local-slice-validation-base-guidance/CLOSURE_BRIEF.md +36 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-05-local-slice-validation-base-guidance/EXECUTION_BRIEF.md +49 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-05-local-slice-validation-base-guidance/slice.json +52 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-06-plan-graph-next-history-views/CLOSURE_BRIEF.md +43 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-06-plan-graph-next-history-views/EXECUTION_BRIEF.md +53 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-06-plan-graph-next-history-views/slice.json +60 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-07-analyzer-command-map-hardening/CLOSURE_BRIEF.md +32 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-07-analyzer-command-map-hardening/EXECUTION_BRIEF.md +50 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-07-analyzer-command-map-hardening/slice.json +51 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-08-evidence-run-command/CLOSURE_BRIEF.md +34 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-08-evidence-run-command/EXECUTION_BRIEF.md +52 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-08-evidence-run-command/slice.json +54 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-09-spec-viewer-demo-scaffolding/CLOSURE_BRIEF.md +34 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-09-spec-viewer-demo-scaffolding/EXECUTION_BRIEF.md +51 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-09-spec-viewer-demo-scaffolding/slice.json +59 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-10-docs-smokes-release-readiness/CLOSURE_BRIEF.md +33 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-10-docs-smokes-release-readiness/EXECUTION_BRIEF.md +54 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-10-docs-smokes-release-readiness/slice.json +76 -0
- package/src/create-quiver/commands/ai.js +915 -0
- package/src/create-quiver/commands/demo.js +22 -0
- package/src/create-quiver/commands/evidence.js +37 -0
- package/src/create-quiver/commands/flow.js +561 -0
- package/src/create-quiver/commands/graph.js +14 -1
- package/src/create-quiver/commands/next.js +28 -0
- package/src/create-quiver/commands/plan.js +6 -3
- package/src/create-quiver/commands/prepare.js +236 -0
- package/src/create-quiver/commands/spec.js +133 -0
- package/src/create-quiver/index.js +1096 -96
- package/src/create-quiver/lib/agent-profiles.js +148 -0
- package/src/create-quiver/lib/ai/context-packs.js +170 -0
- package/src/create-quiver/lib/ai/execution-plan.js +614 -0
- package/src/create-quiver/lib/ai/executor.js +682 -0
- package/src/create-quiver/lib/ai/github.js +525 -0
- package/src/create-quiver/lib/ai/onboarding-template.js +365 -0
- package/src/create-quiver/lib/ai/phase-gates.js +72 -0
- package/src/create-quiver/lib/ai/plan-review.js +283 -0
- package/src/create-quiver/lib/ai/preflight.js +58 -0
- package/src/create-quiver/lib/ai/prompt-transport.js +81 -0
- package/src/create-quiver/lib/ai/prompts.js +39 -0
- package/src/create-quiver/lib/ai/providers.js +315 -0
- package/src/create-quiver/lib/ai/safety.js +156 -0
- package/src/create-quiver/lib/ai/spec-generator.js +314 -0
- package/src/create-quiver/lib/ai/spec-templates.js +715 -0
- package/src/create-quiver/lib/approvals.js +350 -0
- package/src/create-quiver/lib/demo.js +657 -0
- package/src/create-quiver/lib/doctor.js +348 -0
- package/src/create-quiver/lib/evidence.js +115 -0
- package/src/create-quiver/lib/git.js +21 -0
- package/src/create-quiver/lib/init-docs.js +545 -23
- package/src/create-quiver/lib/init-layout.js +451 -0
- package/src/create-quiver/lib/lifecycle.js +8 -2
- package/src/create-quiver/lib/package-safety.js +117 -0
- package/src/create-quiver/lib/paths.js +63 -2
- package/src/create-quiver/lib/project-scan.js +66 -0
- package/src/create-quiver/lib/readiness.js +87 -18
- package/src/create-quiver/lib/scope.js +125 -0
- package/src/create-quiver/lib/slice-graph.js +7 -0
- package/src/create-quiver/lib/slice.js +59 -16
- package/src/create-quiver/lib/spec-worktrees.js +349 -0
- package/src/create-quiver/lib/state.js +18 -1
- package/src/create-quiver/lib/template-resolver.js +74 -0
|
@@ -25,7 +25,7 @@ This is the default context pack for everyday AI work.
|
|
|
25
25
|
|
|
26
26
|
## Workflow Overview
|
|
27
27
|
|
|
28
|
-
- Onboarding starts from `docs/PROJECT_SCAN.json`
|
|
28
|
+
- Onboarding starts from `docs/PROJECT_MAP.md`; use `.quiver/scans/PROJECT_SCAN.json` only when raw analyzer data is needed.
|
|
29
29
|
- Implementation starts from `specs/{{PROJECT_SLUG}}/slices/<slice-id>/slice.json`.
|
|
30
30
|
- Review starts from `git diff` and the slice scope.
|
|
31
31
|
- Debugging starts from the command, exit code, first relevant error, and stacktrace.
|
package/docs/STATUS.md.template
CHANGED
|
@@ -24,3 +24,4 @@ This page tracks progress, blockers, and the current slice. Stack and command de
|
|
|
24
24
|
|
|
25
25
|
- Update this file after each completed slice.
|
|
26
26
|
- Keep stack and command changes in `docs/PROJECT_MAP.md`, not here.
|
|
27
|
+
- Record uncertainty with `TODO`, `Assumption`, or `Pending confirmation` instead of treating it as product debt.
|
|
@@ -9,13 +9,15 @@ Quiver is intentionally opinionated about the first-run environment. If your set
|
|
|
9
9
|
|
|
10
10
|
| Area | Supported | Notes |
|
|
11
11
|
|------|-----------|-------|
|
|
12
|
-
| Operating systems | macOS, Linux, and Windows |
|
|
12
|
+
| Operating systems | macOS, Linux, and Windows | Primary runtime is the Node CLI and generated `quiver:*` npm scripts. |
|
|
13
13
|
| Shells | Terminal, bash-compatible shells, PowerShell, and CMD | Bash is a legacy compatibility path, not a required runtime dependency. |
|
|
14
14
|
| Git | Git 2.40+ | Must support worktrees and standard branch refs on every supported OS. |
|
|
15
15
|
| Node.js | Node 22.x LTS | Required on every supported OS. |
|
|
16
16
|
| Base branches | `develop` or `main` | Local base branches are preferred; `origin` is optional. |
|
|
17
17
|
| Worktree state | Clean worktree | Slice execution and PR checks expect no unrelated local changes. |
|
|
18
18
|
| Path handling | Canonical filesystem paths | Use the physical path to the repo and slice files, not a symlinked alias. |
|
|
19
|
+
| AI providers | Local `codex`, `claude`, or `gemini` CLI | Required only for non-dry-run AI commands. Dry-run smokes do not require provider auth. |
|
|
20
|
+
| GitHub PR preflight | `gh` plus user-managed SSH config | Quiver validates `gh`, auth, host alias, identity file, branch, worktree, and `docs/GITFLOW_PR_GUIDE.md`; it does not install or edit credentials. |
|
|
19
21
|
|
|
20
22
|
## Cross-Platform Authoring Rules
|
|
21
23
|
|
|
@@ -25,6 +27,8 @@ Quiver is intentionally opinionated about the first-run environment. If your set
|
|
|
25
27
|
- `--json` is the primary contract; human output is courtesy and may vary.
|
|
26
28
|
- Colors are TTY-aware and suppressed with `NO_COLOR`; Unicode is opt-in unless UTF-8 is available.
|
|
27
29
|
- Optional external tools such as `gh` and `graphviz` should be probed and skipped gracefully if missing.
|
|
30
|
+
- Long AI prompts must be sent through stdin or another safe transport, never shell string concatenation.
|
|
31
|
+
- `sshHostAlias` and `identityFile` are separate values. The alias is the host entry used by Git; the identity file is the key path to validate.
|
|
28
32
|
|
|
29
33
|
## Remote Modes
|
|
30
34
|
|
|
@@ -36,7 +40,7 @@ Quiver is intentionally opinionated about the first-run environment. If your set
|
|
|
36
40
|
|
|
37
41
|
## What This Means
|
|
38
42
|
|
|
39
|
-
- You can bootstrap and run Quiver on macOS, Linux, and Windows native shells
|
|
43
|
+
- You can bootstrap and run Quiver on macOS, Linux, and Windows native shells with the Node CLI.
|
|
40
44
|
- Windows native usage should target PowerShell or CMD instead of Bash.
|
|
41
45
|
- Quiver should not auto-install Bash, Git Bash, MSYS2, or WSL.
|
|
42
46
|
- You do not need a remote to begin work if a local base branch already exists.
|
|
@@ -44,11 +44,61 @@ Use this guide when a first-run bootstrap or gate check fails. The recovery path
|
|
|
44
44
|
2. Re-add the remote only if the workflow genuinely needs it.
|
|
45
45
|
3. Prefer the local base branch path when validating first-run behavior.
|
|
46
46
|
|
|
47
|
+
## Local Slice Validation In A New Repo
|
|
48
|
+
|
|
49
|
+
### Symptom
|
|
50
|
+
|
|
51
|
+
- `check-slice` asks for a remote/base branch while the repo is still local-only
|
|
52
|
+
|
|
53
|
+
### Recovery
|
|
54
|
+
|
|
55
|
+
1. Run `npx create-quiver check-slice --local <slice.json>` for structural validation.
|
|
56
|
+
2. Before PR readiness, run normal `check-slice <slice.json>` with a local base branch, `--base <branch>`, or a configured remote.
|
|
57
|
+
3. Treat `--local` as a first-use validation mode, not as a replacement for PR checks.
|
|
58
|
+
|
|
59
|
+
## Context Preparation Overwrites Docs
|
|
60
|
+
|
|
61
|
+
### Symptom
|
|
62
|
+
|
|
63
|
+
- `ai prepare-context` wrote generated context docs and you expected only a preview
|
|
64
|
+
|
|
65
|
+
### Recovery
|
|
66
|
+
|
|
67
|
+
1. Use `npx create-quiver ai prepare-context --dry-run` first.
|
|
68
|
+
2. Review assumptions, risks, files considered, and omitted paths.
|
|
69
|
+
3. Commit or preserve any manual edits before running write mode.
|
|
70
|
+
4. Write mode is intentionally limited to approved docs/context files and does not touch product code.
|
|
71
|
+
|
|
72
|
+
## Evidence Contains Sensitive Output
|
|
73
|
+
|
|
74
|
+
### Symptom
|
|
75
|
+
|
|
76
|
+
- `evidence run` captured output that may include secrets
|
|
77
|
+
|
|
78
|
+
### Recovery
|
|
79
|
+
|
|
80
|
+
1. Treat redaction as best effort, not a secret scanner.
|
|
81
|
+
2. Avoid running commands that intentionally print credentials.
|
|
82
|
+
3. Delete or rewrite the local evidence file before sharing it if sensitive output remains.
|
|
83
|
+
4. Prefer `--max-output <n>` for noisy commands.
|
|
84
|
+
|
|
85
|
+
## Demo Scaffold Conflict
|
|
86
|
+
|
|
87
|
+
### Symptom
|
|
88
|
+
|
|
89
|
+
- `demo create spec-viewer` reports preserved files in the target directory
|
|
90
|
+
|
|
91
|
+
### Recovery
|
|
92
|
+
|
|
93
|
+
1. Re-run with `--dry-run` and inspect the planned preserve/create list.
|
|
94
|
+
2. Use `--dir <empty-target>` when you want a clean demo.
|
|
95
|
+
3. Existing files are preserved; Quiver does not overwrite them for the demo.
|
|
96
|
+
|
|
47
97
|
## Generated File Conflicts
|
|
48
98
|
|
|
49
99
|
### Symptom
|
|
50
100
|
|
|
51
|
-
- `init
|
|
101
|
+
- `npx create-quiver init` or a slice bootstrap stops because a file already exists
|
|
52
102
|
- The generated project has a partially initialized docs tree
|
|
53
103
|
|
|
54
104
|
### Recovery
|
|
@@ -82,3 +132,31 @@ Use this guide when a first-run bootstrap or gate check fails. The recovery path
|
|
|
82
132
|
2. If you are using an intermediate build and need a temporary bridge, use WSL2 or Git Bash manually.
|
|
83
133
|
3. Do not expect Quiver to install Bash, WSL, or MSYS2 for you.
|
|
84
134
|
4. Re-run the command after the cross-platform support slices are merged and the CI matrix is green.
|
|
135
|
+
|
|
136
|
+
## AI Provider CLI Missing
|
|
137
|
+
|
|
138
|
+
### Symptom
|
|
139
|
+
|
|
140
|
+
- `quiver:ai:onboard`, `quiver:ai:plan`, or `quiver:ai:execute-slice` fails before calling the model
|
|
141
|
+
- The error mentions a missing `codex`, `claude`, or `gemini` command
|
|
142
|
+
|
|
143
|
+
### Recovery
|
|
144
|
+
|
|
145
|
+
1. Re-run the command with `--dry-run` to validate role, context pack, prompt transport, and paths without provider auth.
|
|
146
|
+
2. Install or authenticate the selected provider CLI outside Quiver.
|
|
147
|
+
3. Use `--provider codex`, `--provider claude`, or `--provider gemini` explicitly if your default is unclear.
|
|
148
|
+
4. Re-run the command from a clean worktree when using `ai execute-slice`.
|
|
149
|
+
|
|
150
|
+
## GitHub PR Preflight Failure
|
|
151
|
+
|
|
152
|
+
### Symptom
|
|
153
|
+
|
|
154
|
+
- `quiver:ai:pr` or `quiver:ai:doctor` reports missing `gh`, failed `gh auth status`, missing `docs/GITFLOW_PR_GUIDE.md`, unsafe branch, dirty worktree, or missing SSH identity file
|
|
155
|
+
|
|
156
|
+
### Recovery
|
|
157
|
+
|
|
158
|
+
1. Install `gh` for your OS and run `gh auth login`.
|
|
159
|
+
2. Confirm `docs/GITFLOW_PR_GUIDE.md` exists in the project.
|
|
160
|
+
3. Commit or stash unrelated changes before PR preflight.
|
|
161
|
+
4. Pass the SSH host alias and key path separately, for example `--ssh-host-alias github-work --identity-file ~/.ssh/github-work`.
|
|
162
|
+
5. Re-run with `--dry-run`; Quiver validates the setup but does not open a PR in dry-run mode.
|
|
@@ -9,7 +9,7 @@ This document is the canonical implementation workflow for the project.
|
|
|
9
9
|
- Do not implement without a slice.
|
|
10
10
|
- One slice maps to one commit.
|
|
11
11
|
- One spec maps to one PR.
|
|
12
|
-
- Slice numbering is local to each spec. Every spec starts
|
|
12
|
+
- Slice numbering is local to each spec. Every spec starts with mandatory `slice-00` as the documentary foundation; `slice-01` is the first implementation slice.
|
|
13
13
|
- The spec defines the plan; the slice defines the execution.
|
|
14
14
|
- No slice should enter execution until it is `ready`.
|
|
15
15
|
- The documentation PR establishes the workflow files before the first slice executes.
|
|
@@ -21,7 +21,7 @@ This document is the canonical implementation workflow for the project.
|
|
|
21
21
|
|
|
22
22
|
## Mode-Aware Context Selection
|
|
23
23
|
|
|
24
|
-
- **Onboarding:** read `
|
|
24
|
+
- **Onboarding:** read `docs/PROJECT_MAP.md`, `docs/AI_CONTEXT.md`, and `docs/AI_ONBOARDING_PROMPT.md` before source files. Use `.quiver/scans/PROJECT_SCAN.json` only when the visible project map is not enough.
|
|
25
25
|
- **Implementation:** read `docs/ai/ACTIVE_SLICE.md` first when it exists; otherwise read `slice.json`, declared files, nearby tests, and only then adjacent source.
|
|
26
26
|
- **Handoff:** read `specs/<project-slug>/HANDOFF.md` when the work was explicitly transferred through a handoff artifact.
|
|
27
27
|
- Validate a received handoff with `npx create-quiver check-handoff specs/<project-slug>/HANDOFF.md` before starting execution.
|
|
@@ -32,29 +32,37 @@ Use maps, metadata, diffs, and summaries first. Open full files only when the sm
|
|
|
32
32
|
|
|
33
33
|
## Planning
|
|
34
34
|
|
|
35
|
-
1.
|
|
36
|
-
2.
|
|
37
|
-
3.
|
|
38
|
-
4.
|
|
39
|
-
5.
|
|
40
|
-
6.
|
|
41
|
-
7.
|
|
42
|
-
8.
|
|
43
|
-
9.
|
|
35
|
+
1. Run `npx create-quiver flow` when the next safe command is unclear.
|
|
36
|
+
2. Triage the request.
|
|
37
|
+
3. Save reusable planner/executor provider choices with `ai agent set` when the team has preferred local AI CLIs.
|
|
38
|
+
4. Use `ai plan --phase acceptance` to draft criteria, then save the approved version with `ai approve --phase acceptance`.
|
|
39
|
+
5. Use `ai plan --phase technical-plan` to draft the plan.
|
|
40
|
+
6. Use `ai review-plan` to review the technical-plan draft for production readiness without changing product code.
|
|
41
|
+
7. Save the reviewed plan version with `ai approve --phase technical-plan --version <n>`.
|
|
42
|
+
8. Use `spec create` to generate the spec, mandatory `slice-00`, implementation slices, handoffs, execution plan, and `pr.md`.
|
|
43
|
+
9. Open and merge the documentation PR or commit that establishes `slice-00` before running implementation slices.
|
|
44
|
+
10. Read the AI context pack, support matrix, and troubleshooting guide before the first slice if the environment is new or uncertain.
|
|
45
|
+
11. If the project already existed before this Quiver version, run `migrate` before `analyze`.
|
|
46
|
+
12. If the project was analyzed, read `AI_ONBOARDING_PROMPT.md` before making documentation updates.
|
|
47
|
+
13. Prefer the generated `quiver:*` npm scripts for repeatable project workflows once the package has been initialized or migrated.
|
|
44
48
|
|
|
45
49
|
## Execution
|
|
46
50
|
|
|
47
|
-
1.
|
|
51
|
+
1. Create or reuse the spec worktree with `npx create-quiver spec start specs/<spec-slug>` or `npm run quiver:spec:start -- specs/<spec-slug>`.
|
|
52
|
+
2. Inspect manual prompts with `npx create-quiver ai execute-plan --dry-run --commit --mode manual` or delegated waves with `npm run quiver:ai:execute-plan -- --dry-run --commit --mode delegated`.
|
|
53
|
+
3. Print a minimal manual executor prompt with `npx create-quiver ai prompt-slice --slice <slice.json> --dry-run` when assigning the slice to another agent.
|
|
54
|
+
4. Bootstrap a single slice with `npx create-quiver start-slice <slice.json>` or `npm run quiver:start-slice -- <slice.json>` when manual execution is preferred.
|
|
48
55
|
- The bootstrap step should work with canonical paths and a local base branch when `origin` is absent.
|
|
49
56
|
- Draft slices require `--allow-draft`; otherwise `npx create-quiver start-slice` exits before execution.
|
|
50
57
|
- Legacy Bash wrappers remain available for compatibility, but generated projects should prefer the Node CLI and `quiver:*` npm scripts.
|
|
51
58
|
- `start-slice` generates `docs/ai/ACTIVE_SLICE.md` and `WORKTREE_CONTEXT.md`; use the active slice brief as the source of truth for execution.
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
59
|
+
5. Implement only what the slice declares.
|
|
60
|
+
6. Make one commit for that slice, or let `ai execute-slice --commit` / `ai execute-plan --execute --commit --mode delegated` create it after provider, scope, and validation pass.
|
|
61
|
+
7. Validate with `npx create-quiver check-slice <slice.json>` or `npm run quiver:check-slice -- <slice.json>`.
|
|
62
|
+
8. Write evidence. Prefer `npx create-quiver evidence run -- <command>` when you need a compact local Markdown record of validation output.
|
|
63
|
+
9. Repeat for the next slice until the spec is complete.
|
|
64
|
+
10. Open one PR for the spec. Use `npx create-quiver ai pr --dry-run --input specs/<spec-slug>/pr.md ...` first, then add `--create` only after review.
|
|
65
|
+
11. After the PR is merged and the spec worktree is clean, close it with `npx create-quiver spec close specs/<spec-slug>`.
|
|
58
66
|
|
|
59
67
|
## Support Contract
|
|
60
68
|
|
package/package.json
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-quiver",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.12.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Quiver CLI for scaffolding projects from the packaged template",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"bin": {
|
|
8
|
-
"create-quiver": "bin/create-quiver.js"
|
|
8
|
+
"create-quiver": "bin/create-quiver.js",
|
|
9
|
+
"quiver": "bin/create-quiver.js"
|
|
9
10
|
},
|
|
10
11
|
"scripts": {
|
|
11
12
|
"check:slice": "bash tools/scripts/check-slice-readiness.sh",
|
|
@@ -13,12 +14,33 @@
|
|
|
13
14
|
"start:slice": "bash tools/scripts/start-slice.sh",
|
|
14
15
|
"cleanup:slice": "bash tools/scripts/cleanup-slice.sh",
|
|
15
16
|
"migrate": "bash tools/scripts/migrate-project.sh",
|
|
17
|
+
"quiver:analyze": "npx create-quiver analyze",
|
|
18
|
+
"quiver:flow": "npx create-quiver flow",
|
|
19
|
+
"quiver:prepare": "npx create-quiver prepare",
|
|
16
20
|
"quiver:plan": "npx create-quiver plan",
|
|
17
21
|
"quiver:graph": "npx create-quiver graph",
|
|
18
22
|
"quiver:next": "npx create-quiver next",
|
|
23
|
+
"quiver:doctor": "npx create-quiver doctor",
|
|
24
|
+
"quiver:evidence": "npx create-quiver evidence",
|
|
25
|
+
"quiver:ai:agent": "npx create-quiver ai agent",
|
|
26
|
+
"quiver:ai:onboard": "npx create-quiver ai onboard",
|
|
27
|
+
"quiver:ai:prepare-context": "npx create-quiver ai prepare-context",
|
|
28
|
+
"quiver:ai:plan": "npx create-quiver ai plan",
|
|
29
|
+
"quiver:ai:review-plan": "npx create-quiver ai review-plan",
|
|
30
|
+
"quiver:ai:approve": "npx create-quiver ai approve",
|
|
31
|
+
"quiver:ai:prompt-slice": "npx create-quiver ai prompt-slice",
|
|
32
|
+
"quiver:ai:execute-slice": "npx create-quiver ai execute-slice",
|
|
33
|
+
"quiver:ai:execute-plan": "npx create-quiver ai execute-plan",
|
|
34
|
+
"quiver:ai:pr": "npx create-quiver ai pr",
|
|
35
|
+
"quiver:ai:doctor": "npx create-quiver ai doctor",
|
|
36
|
+
"quiver:spec:create": "npx create-quiver spec create",
|
|
37
|
+
"quiver:spec:start": "npx create-quiver spec start",
|
|
38
|
+
"quiver:spec:status": "npx create-quiver spec status",
|
|
39
|
+
"quiver:spec:close": "npx create-quiver spec close",
|
|
19
40
|
"package:quiver": "bash scripts/package-quiver.sh",
|
|
20
41
|
"smoke:create-quiver": "bash scripts/ci/smoke-create-quiver.sh",
|
|
21
42
|
"smoke:tiered-pack": "bash scripts/ci/smoke-tiered-pack.sh",
|
|
43
|
+
"smoke:guided-workflow": "bash scripts/ci/smoke-guided-workflow.sh",
|
|
22
44
|
"release:quiver": "bash scripts/release-quiver.sh"
|
|
23
45
|
}
|
|
24
46
|
}
|
package/package.template.json
CHANGED
|
@@ -1,13 +1,30 @@
|
|
|
1
1
|
{
|
|
2
|
-
"name": "quiver-
|
|
2
|
+
"name": "quiver-project",
|
|
3
3
|
"private": true,
|
|
4
4
|
"scripts": {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
5
|
+
"quiver:migrate": "npx create-quiver migrate",
|
|
6
|
+
"quiver:analyze": "npx create-quiver analyze",
|
|
7
|
+
"quiver:flow": "npx create-quiver flow",
|
|
8
|
+
"quiver:plan": "npx create-quiver plan",
|
|
9
|
+
"quiver:graph": "npx create-quiver graph",
|
|
10
|
+
"quiver:next": "npx create-quiver next",
|
|
11
|
+
"quiver:doctor": "npx create-quiver doctor",
|
|
12
|
+
"quiver:evidence": "npx create-quiver evidence",
|
|
13
|
+
"quiver:ai:agent": "npx create-quiver ai agent",
|
|
14
|
+
"quiver:ai:onboard": "npx create-quiver ai onboard",
|
|
15
|
+
"quiver:ai:prepare-context": "npx create-quiver ai prepare-context",
|
|
16
|
+
"quiver:ai:plan": "npx create-quiver ai plan",
|
|
17
|
+
"quiver:ai:review-plan": "npx create-quiver ai review-plan",
|
|
18
|
+
"quiver:ai:approve": "npx create-quiver ai approve",
|
|
19
|
+
"quiver:ai:prompt-slice": "npx create-quiver ai prompt-slice",
|
|
20
|
+
"quiver:ai:execute-slice": "npx create-quiver ai execute-slice",
|
|
21
|
+
"quiver:ai:execute-plan": "npx create-quiver ai execute-plan",
|
|
22
|
+
"quiver:ai:pr": "npx create-quiver ai pr",
|
|
23
|
+
"quiver:ai:doctor": "npx create-quiver ai doctor",
|
|
24
|
+
"quiver:spec:create": "npx create-quiver spec create",
|
|
25
|
+
"quiver:spec:start": "npx create-quiver spec start",
|
|
26
|
+
"quiver:spec:status": "npx create-quiver spec status",
|
|
27
|
+
"quiver:spec:close": "npx create-quiver spec close",
|
|
11
28
|
"quiver:start-slice": "npx create-quiver start-slice",
|
|
12
29
|
"quiver:check-slice": "npx create-quiver check-slice",
|
|
13
30
|
"quiver:check-pr": "npx create-quiver check-pr",
|
|
@@ -39,7 +39,6 @@ slice_input="$1"
|
|
|
39
39
|
command -v git >/dev/null 2>&1 || fail "git no esta disponible en PATH."
|
|
40
40
|
command -v node >/dev/null 2>&1 || fail "node no esta disponible en PATH."
|
|
41
41
|
|
|
42
|
-
repo_root="$(git rev-parse --show-toplevel)"
|
|
43
42
|
script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
44
43
|
|
|
45
44
|
[[ -f "$slice_input" ]] || fail "No existe el slice '$slice_input'."
|
|
@@ -127,6 +126,7 @@ pass "Al menos un caso de uso documentado."
|
|
|
127
126
|
grep -Eq 'git revert ' "$pr_abs" || fail "Rollback debe incluir al menos un comando git revert."
|
|
128
127
|
pass "Rollback incluye comando git revert."
|
|
129
128
|
|
|
129
|
+
# shellcheck disable=SC2016
|
|
130
130
|
grep -Eiq '^\s*-\s*`manual review`$|^\s*-\s*`visual check`$|^\s*-\s*`screen test`$|^\s*-\s*`visual validation`$' "$pr_abs" && fail "How to Test cannot rely only on generic phrases."
|
|
131
131
|
|
|
132
132
|
node -e "JSON.parse(require('fs').readFileSync(process.argv[1], 'utf8'))" "$slice_abs" >/dev/null
|
package/scripts/check-scope.sh
CHANGED
|
@@ -59,7 +59,6 @@ done
|
|
|
59
59
|
command -v git >/dev/null 2>&1 || fail "git no esta disponible en PATH."
|
|
60
60
|
command -v node >/dev/null 2>&1 || fail "node no esta disponible en PATH."
|
|
61
61
|
|
|
62
|
-
repo_root="$(git rev-parse --show-toplevel)"
|
|
63
62
|
[[ -f "$slice_input" ]] || fail "No existe el slice '$slice_input'."
|
|
64
63
|
slice_abs="$(cd "$(dirname "$slice_input")" && pwd)/$(basename "$slice_input")"
|
|
65
64
|
|
|
@@ -77,7 +77,7 @@ repo_root="$(git rev-parse --show-toplevel)"
|
|
|
77
77
|
[[ -f "$slice_input" ]] || fail "No existe el slice '$slice_input'."
|
|
78
78
|
|
|
79
79
|
slice_abs="$(cd "$(dirname "$slice_input")" && pwd)/$(basename "$slice_input")"
|
|
80
|
-
slice_rel="${slice_abs
|
|
80
|
+
slice_rel="${slice_abs#"$repo_root"/}"
|
|
81
81
|
|
|
82
82
|
slice_meta=()
|
|
83
83
|
while IFS= read -r line; do
|
|
@@ -143,11 +143,8 @@ NODE
|
|
|
143
143
|
|
|
144
144
|
[[ ${#slice_meta[@]} -eq 10 ]] || fail "No se pudo leer la metadata del slice."
|
|
145
145
|
|
|
146
|
-
slice_id="${slice_meta[0]}"
|
|
147
|
-
ticket="${slice_meta[1]}"
|
|
148
146
|
branch_name="${slice_meta[2]}"
|
|
149
147
|
slice_status="${slice_meta[3]}"
|
|
150
|
-
is_baseline="${slice_meta[4]}"
|
|
151
148
|
spec_dir_rel="${slice_meta[5]}"
|
|
152
149
|
files_b64="${slice_meta[6]}"
|
|
153
150
|
actual_hours="${slice_meta[7]}"
|
|
@@ -161,6 +158,8 @@ pass "El spec local tiene SPEC.md, STATUS.md y EVIDENCE_REPORT.md."
|
|
|
161
158
|
|
|
162
159
|
if git cat-file -e "origin/develop:$slice_rel" 2>/dev/null; then
|
|
163
160
|
pass "El slice ya existe en origin/develop (PR base documental mergeado)."
|
|
161
|
+
elif git cat-file -e "develop:$slice_rel" 2>/dev/null; then
|
|
162
|
+
pass "El slice ya existe en develop local (modo sin origin)."
|
|
164
163
|
else
|
|
165
164
|
if [[ "$gate" == "validation" ]]; then
|
|
166
165
|
warn "El slice no existe todavia en origin/develop. El PR base documental sigue pendiente de merge. Podes abrir el PR del slice igual — el humano mergea en orden."
|
package/scripts/init-docs.sh
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
# Script de Inicialización de Documentación
|
|
4
4
|
# Uso: ./init-docs.sh "Nombre del Proyecto"
|
|
5
5
|
|
|
6
|
+
# shellcheck disable=SC2016
|
|
6
7
|
set -e
|
|
7
8
|
|
|
8
9
|
# Colores para output
|
|
@@ -62,6 +63,7 @@ CHECK_SCOPE_COMMAND="npx create-quiver check-scope <slice.json>"
|
|
|
62
63
|
REFRESH_ACTIVE_SLICES_COMMAND="npx create-quiver refresh-active-slices"
|
|
63
64
|
|
|
64
65
|
print_info "Inicializando documentación para: $PROJECT_NAME"
|
|
66
|
+
print_warning "Este script es compatibilidad legacy. Para el flujo AI-first default usá: npx create-quiver init --name \"$PROJECT_NAME\""
|
|
65
67
|
print_info "Project slug: $PROJECT_SLUG"
|
|
66
68
|
print_info "Fecha: $CURRENT_DATE"
|
|
67
69
|
|
|
@@ -92,7 +94,7 @@ copy_template() {
|
|
|
92
94
|
|
|
93
95
|
if [ -f "$src" ]; then
|
|
94
96
|
# Remover .template del nombre si existe
|
|
95
|
-
dest
|
|
97
|
+
dest="${dest%.template}"
|
|
96
98
|
|
|
97
99
|
if [ "$MIGRATE_MODE" = "1" ] && [ -f "$dest" ]; then
|
|
98
100
|
print_info "Saltado: $dest ya existe"
|
|
@@ -511,6 +513,34 @@ npm install --save-dev create-quiver
|
|
|
511
513
|
|
|
512
514
|
If you need to target another directory from outside the project, pass \`--dir\` explicitly. Quote paths that contain spaces.
|
|
513
515
|
|
|
516
|
+
## AI-First Workflow
|
|
517
|
+
|
|
518
|
+
Quiver is designed for an AI-first workflow: a planner agent reads the project context and prepares acceptance criteria, technical plans, specs, slices, and PR notes; executor agents then work one approved slice at a time with minimal context.
|
|
519
|
+
|
|
520
|
+
Start with dry-runs so you can inspect the provider, role, context pack, and invocation before spending model tokens:
|
|
521
|
+
|
|
522
|
+
\`\`\`bash
|
|
523
|
+
npm run quiver:ai:onboard -- --dry-run
|
|
524
|
+
npm run quiver:ai:plan -- --phase acceptance --input requirements.md --dry-run
|
|
525
|
+
npm run quiver:ai:approve -- --phase acceptance --input acceptance-approved.md
|
|
526
|
+
npm run quiver:ai:plan -- --phase technical-plan --dry-run
|
|
527
|
+
npm run quiver:ai:review-plan -- --dry-run
|
|
528
|
+
npm run quiver:ai:approve -- --phase technical-plan --version <n>
|
|
529
|
+
npm run quiver:spec:create -- --dry-run
|
|
530
|
+
npm run quiver:ai:prompt-slice -- --slice specs/<spec-slug>/slices/<slice-id>/slice.json --dry-run
|
|
531
|
+
npm run quiver:ai:pr -- --dry-run --ssh-host-alias github-work --identity-file ~/.ssh/github-work
|
|
532
|
+
\`\`\`
|
|
533
|
+
|
|
534
|
+
Remove \`--dry-run\` only after the phase output is approved and the local provider CLI is ready.
|
|
535
|
+
|
|
536
|
+
When a real spec exists, execute one approved slice at a time:
|
|
537
|
+
|
|
538
|
+
\`\`\`bash
|
|
539
|
+
npm run quiver:ai:prompt-slice -- --slice specs/<spec-slug>/slices/<slice-id>/slice.json --dry-run
|
|
540
|
+
npm run quiver:ai:execute-slice -- --slice specs/<spec-slug>/slices/<slice-id>/slice.json --dry-run
|
|
541
|
+
npm run quiver:ai:execute-plan -- --dry-run --commit --mode delegated
|
|
542
|
+
\`\`\`
|
|
543
|
+
|
|
514
544
|
## Project NPM Scripts
|
|
515
545
|
|
|
516
546
|
The generated project includes \`quiver:*\` npm scripts that call the Node CLI and are the preferred repeatable workflow:
|
|
@@ -521,6 +551,12 @@ npm run quiver:plan
|
|
|
521
551
|
npm run quiver:graph
|
|
522
552
|
npm run quiver:next
|
|
523
553
|
npm run quiver:doctor
|
|
554
|
+
npm run quiver:ai:onboard -- --dry-run
|
|
555
|
+
npm run quiver:ai:plan -- --phase acceptance --input requirements.md --dry-run
|
|
556
|
+
npm run quiver:ai:prompt-slice -- --slice specs/<spec-slug>/slices/<slice-id>/slice.json --dry-run
|
|
557
|
+
npm run quiver:ai:execute-slice -- --slice specs/<spec-slug>/slices/<slice-id>/slice.json --dry-run
|
|
558
|
+
npm run quiver:ai:doctor -- --dry-run --ssh-host-alias github-work --identity-file ~/.ssh/github-work
|
|
559
|
+
npm run quiver:ai:pr -- --dry-run --ssh-host-alias github-work --identity-file ~/.ssh/github-work
|
|
524
560
|
npm run quiver:migrate
|
|
525
561
|
npm run quiver:start-slice -- specs/$PROJECT_SLUG/slices/slice-01/slice.json
|
|
526
562
|
npm run quiver:check-slice -- specs/$PROJECT_SLUG/slices/slice-01/slice.json
|
|
@@ -533,6 +569,7 @@ npm run quiver:refresh-active-slices
|
|
|
533
569
|
|
|
534
570
|
The \`quiver:graph\` script prints the tree view by default; use \`npx create-quiver graph --format mermaid\` for PR-ready Markdown and \`--format dot\` when you want Graphviz source.
|
|
535
571
|
The \`quiver:next\` script points to the next ready slice and can auto-start it behind a confirmation prompt.
|
|
572
|
+
The \`quiver:ai:*\` scripts standardize planner/executor AI flows. Use dry-run first: onboarding and planning dry-runs do not require provider auth, while \`quiver:ai:pr -- --dry-run\` validates \`gh\`, GitFlow docs, branch/worktree state, and SSH inputs without creating a PR.
|
|
536
573
|
Use \`npx create-quiver next --all-ready\` when you want the full ready level instead of a single suggestion.
|
|
537
574
|
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 below.
|
|
538
575
|
\`npm run check-handoff -- specs/$PROJECT_SLUG/HANDOFF.md\` is available as a legacy-friendly alias for the handoff validator.
|
|
@@ -566,6 +603,12 @@ $GRAPH_COMMAND --format mermaid
|
|
|
566
603
|
$GRAPH_COMMAND --format dot
|
|
567
604
|
\`\`\`
|
|
568
605
|
|
|
606
|
+
If the project never ran Quiver initialization before, do not use \`migrate\` as bootstrap. Run:
|
|
607
|
+
|
|
608
|
+
\`\`\`bash
|
|
609
|
+
npx create-quiver init --name "Project Name"
|
|
610
|
+
\`\`\`
|
|
611
|
+
|
|
569
612
|
If your team prefers a pinned local dependency, update the package first and then run the same flow:
|
|
570
613
|
|
|
571
614
|
\`\`\`bash
|
|
@@ -591,6 +634,8 @@ Lee \`docs/AI_ONBOARDING_PROMPT.md\` y ejecútalo como fuente principal de verda
|
|
|
591
634
|
|
|
592
635
|
Actúa como asistente de onboarding de IA. Prepara el contexto del proyecto para trabajar de forma segura con el workflow documentado, specs y slices.
|
|
593
636
|
|
|
637
|
+
Usa el rol planner para onboarding, criterios de aceptación, plan técnico y generación de specs/slices. Usa el rol executor solo cuando exista un slice aprobado y debas ejecutar su handoff con contexto mínimo.
|
|
638
|
+
|
|
594
639
|
No modifiques código de producto salvo autorización explícita. Puedes crear o actualizar documentación de contexto si el onboarding lo requiere.
|
|
595
640
|
|
|
596
641
|
Usa solo la documentación del repositorio como fuente de verdad. Si encuentras información faltante, ambigua o contradictoria, documenta el supuesto, el riesgo y continúa por el camino más seguro.
|
|
@@ -607,6 +652,8 @@ Record durable decisions in \`docs/DECISIONS.md\` so future AI agents do not re-
|
|
|
607
652
|
|
|
608
653
|
## First Slice Workflow
|
|
609
654
|
|
|
655
|
+
Use this section only for the legacy/full scaffold that includes a placeholder spec. In the default AI-first layout, create real specs and slices with \`npx create-quiver spec create\` after acceptance criteria are approved and the technical plan is reviewed and approved.
|
|
656
|
+
|
|
610
657
|
1. Review or refine specs/$PROJECT_SLUG/SPEC.md.
|
|
611
658
|
2. Create the first slice from specs/$PROJECT_SLUG/slices/slice-template/slice.json.
|
|
612
659
|
3. Review the plan with \`$PLAN_COMMAND\` or \`npm run quiver:plan\`.
|
|
@@ -649,7 +696,7 @@ fi
|
|
|
649
696
|
echo ""
|
|
650
697
|
print_success "¡Inicialización completada!"
|
|
651
698
|
echo ""
|
|
652
|
-
echo "📁 Estructura creada:"
|
|
699
|
+
echo "📁 Estructura legacy/full creada:"
|
|
653
700
|
echo " docs/ ← Documentación core"
|
|
654
701
|
echo " docs/ai/ ← Configuración de IA"
|
|
655
702
|
echo " docs/tools/ ← Herramientas (vacío)"
|
|
@@ -660,10 +707,10 @@ echo "📝 Próximos pasos:"
|
|
|
660
707
|
echo " 1. Editar docs/AI_CONTEXT.md con el contexto resumido para IA"
|
|
661
708
|
echo " 2. Editar docs/CONTEXTO.md con la información de tu proyecto"
|
|
662
709
|
echo " 3. Editar docs/STATUS.md con el estado actual"
|
|
663
|
-
echo " 4.
|
|
664
|
-
echo " 5.
|
|
710
|
+
echo " 4. Para el flujo recomendado, crear specs reales con: npx create-quiver spec create"
|
|
711
|
+
echo " 5. Usar tools/scripts solo si necesitás compatibilidad legacy"
|
|
665
712
|
echo ""
|
|
666
713
|
echo "📖 Más información:"
|
|
667
|
-
echo " - Ver
|
|
668
|
-
echo " -
|
|
714
|
+
echo " - Ver README.md y README_FOR_AI.md para el flujo AI-first actual"
|
|
715
|
+
echo " - docs-template/ aplica solo a compatibilidad legacy o templates exportados"
|
|
669
716
|
echo ""
|
|
@@ -34,10 +34,26 @@ contents="$(
|
|
|
34
34
|
tar -tzf "$tarball_path"
|
|
35
35
|
)"
|
|
36
36
|
|
|
37
|
+
cd "$repo_root"
|
|
38
|
+
# shellcheck disable=SC2016
|
|
39
|
+
printf '%s\n' "$contents" | node -e '
|
|
40
|
+
const fs = require("node:fs");
|
|
41
|
+
const { assertPackageSafety } = require("./src/create-quiver/lib/package-safety");
|
|
42
|
+
|
|
43
|
+
const paths = fs.readFileSync(0, "utf8").split(/\r?\n/).filter(Boolean);
|
|
44
|
+
|
|
45
|
+
try {
|
|
46
|
+
assertPackageSafety(paths);
|
|
47
|
+
} catch (error) {
|
|
48
|
+
process.stderr.write(`${error.message}\n`);
|
|
49
|
+
process.exit(1);
|
|
50
|
+
}
|
|
51
|
+
'
|
|
52
|
+
|
|
37
53
|
require_present() {
|
|
38
54
|
local path="$1"
|
|
39
55
|
|
|
40
|
-
if !
|
|
56
|
+
if ! grep -Fxq "$path" <<<"$contents"; then
|
|
41
57
|
echo "FAIL: falta '$path' en el paquete" >&2
|
|
42
58
|
exit 1
|
|
43
59
|
fi
|
|
@@ -46,7 +62,7 @@ require_present() {
|
|
|
46
62
|
require_absent() {
|
|
47
63
|
local path="$1"
|
|
48
64
|
|
|
49
|
-
if
|
|
65
|
+
if grep -Fxq "$path" <<<"$contents"; then
|
|
50
66
|
echo "FAIL: '$path' no debería publicarse en el paquete" >&2
|
|
51
67
|
exit 1
|
|
52
68
|
fi
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Evidence Report - Quiver v20 AI CLI Orchestration
|
|
2
|
+
|
|
3
|
+
## Status
|
|
4
|
+
|
|
5
|
+
Slice 08 implemented.
|
|
6
|
+
|
|
7
|
+
## Slice Evidence
|
|
8
|
+
|
|
9
|
+
| Slice | Evidence |
|
|
10
|
+
|-------|----------|
|
|
11
|
+
| slice-00 | Spec foundation files created and JSON validation completed. |
|
|
12
|
+
| slice-01 | Implemented provider runner, prompt transport, provider preflight, dry-run, timeout handling, and provider tests. |
|
|
13
|
+
| slice-02 | Implemented AI roles, context packs, token-budget hints, safety exclusions, prompt-injection guard text, and tests. |
|
|
14
|
+
| slice-03 | Implemented phase-gated planner commands, dry-run display, phase blocking for spec, and command tests. |
|
|
15
|
+
| slice-04 | Implemented spec-phase generation, safe collision handling, JSON validation, and command/tests coverage. |
|
|
16
|
+
| slice-05 | Implemented execution plan graphing, slice-00 foundation barriers, ready levels, temporary worktree strategy, and cycle/missing dependency diagnostics. |
|
|
17
|
+
| slice-06 | Implemented `ai execute-slice`, executor prompts, dry-run, provider failure handling, pre/post diff capture, clean-worktree guard, and scope enforcement tests. |
|
|
18
|
+
| slice-07 | Implemented GitHub PR preflight, gh auth checks, worktree/branch validation, GitFlow guide checks, SSH identity handling, and CLI/tests coverage. |
|
|
19
|
+
| slice-08 | Updated README, AI onboarding/commands/support/troubleshooting/GitFlow templates, generated npm scripts, init docs, doctor script warnings, and dry-run smoke coverage. |
|
|
20
|
+
|
|
21
|
+
## Final Validation
|
|
22
|
+
|
|
23
|
+
Validated for slice-08 with `node --test tests/**/*.test.js`, `npm run smoke:create-quiver`, `node scripts/ci/smoke-cross-platform.js`, package JSON parsing, shell/Node syntax checks, and `git diff --check`.
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# Execution Plan - Quiver v20 AI CLI Orchestration
|
|
2
|
+
|
|
3
|
+
## Rule
|
|
4
|
+
|
|
5
|
+
`slice-00` is mandatory and must be committed first. It establishes the spec foundation in the repo.
|
|
6
|
+
|
|
7
|
+
## Sequential Foundation
|
|
8
|
+
|
|
9
|
+
1. `slice-00-spec-foundation`
|
|
10
|
+
- Commit the spec, slice definitions, handoffs, execution plan, and PR body.
|
|
11
|
+
|
|
12
|
+
2. `slice-01-ai-provider-runner`
|
|
13
|
+
- Build the provider abstraction and safe prompt transport.
|
|
14
|
+
|
|
15
|
+
3. `slice-02-context-packs-token-budget`
|
|
16
|
+
- Can run after `slice-00`.
|
|
17
|
+
- Can run in parallel with `slice-01` only if it does not modify provider-runner files.
|
|
18
|
+
|
|
19
|
+
4. `slice-03-ai-phase-gated-planner`
|
|
20
|
+
- Requires `slice-01` and `slice-02`.
|
|
21
|
+
|
|
22
|
+
5. `slice-04-spec-slice-handoff-pr-generation`
|
|
23
|
+
- Requires `slice-03`.
|
|
24
|
+
|
|
25
|
+
## Parallelizable Work
|
|
26
|
+
|
|
27
|
+
After `slice-04`, these can be developed in parallel if each uses a separate worktree and respects declared files:
|
|
28
|
+
|
|
29
|
+
- `slice-05-execution-plan-parallel-worktrees`
|
|
30
|
+
- `slice-07-github-pr-preflight`
|
|
31
|
+
|
|
32
|
+
After `slice-05`, this can start:
|
|
33
|
+
|
|
34
|
+
- `slice-06-ai-execute-slice-scope-enforcement`
|
|
35
|
+
|
|
36
|
+
## Final Integration
|
|
37
|
+
|
|
38
|
+
`slice-08-docs-smokes-release-readiness` must run last because it updates docs, generated scripts, templates, and smoke coverage across the completed feature.
|
|
39
|
+
|
|
40
|
+
## Suggested Commit Order
|
|
41
|
+
|
|
42
|
+
1. `docs(spec): add ai cli orchestration spec foundation`
|
|
43
|
+
2. `feat(ai): add provider runner and safe prompt transport`
|
|
44
|
+
3. `feat(ai): add context packs and token budgets`
|
|
45
|
+
4. `feat(ai): add phase gated planner commands`
|
|
46
|
+
5. `feat(ai): generate spec slices handoffs and pr body`
|
|
47
|
+
6. `feat(ai): add slice execution plan and parallel worktree support`
|
|
48
|
+
7. `feat(ai): execute slices with scope enforcement`
|
|
49
|
+
8. `feat(ai): add github pr preflight`
|
|
50
|
+
9. `docs(ai): document orchestration workflow and add smokes`
|
|
51
|
+
|
|
52
|
+
## Integration Notes
|
|
53
|
+
|
|
54
|
+
- Do not merge parallel slice outputs before their dependencies are committed.
|
|
55
|
+
- If two slices touch the same template, integrate the earlier dependency first and rebase the later worktree.
|
|
56
|
+
- Keep provider tests mocked. Real provider CLIs are optional local checks only.
|
|
57
|
+
|