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
package/README.md
CHANGED
|
@@ -1,459 +1,548 @@
|
|
|
1
1
|
# Quiver
|
|
2
2
|
|
|
3
|
-
Quiver es
|
|
3
|
+
Quiver es un framework para trabajar con **WDD + SDD asistido por IA** en proyectos de software.
|
|
4
|
+
Ayuda a transformar un repositorio en un entorno donde humanos y agentes pueden entender el contexto, planificar por specs, ejecutar slices y revisar cambios con evidencia.
|
|
5
|
+
Está pensado para equipos que quieren usar IA de forma ordenada: primero workflow, después specs, después implementación.
|
|
4
6
|
|
|
5
|
-
|
|
7
|
+
## 🚀 Inicio rápido
|
|
6
8
|
|
|
7
|
-
|
|
9
|
+
### Usar Quiver con IA en un proyecto
|
|
8
10
|
|
|
9
|
-
Quiver
|
|
11
|
+
Ejecutá Quiver desde la raíz del proyecto donde querés instalar el workflow:
|
|
10
12
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
-
|
|
16
|
-
-
|
|
17
|
-
-
|
|
18
|
-
-
|
|
13
|
+
```bash
|
|
14
|
+
npx create-quiver init --name "Mi Proyecto"
|
|
15
|
+
npx create-quiver flow
|
|
16
|
+
npx create-quiver prepare --dry-run
|
|
17
|
+
npx create-quiver analyze
|
|
18
|
+
npx create-quiver doctor
|
|
19
|
+
npx create-quiver ai agent set planner --provider codex --model "planner-model"
|
|
20
|
+
npx create-quiver ai agent set executor --provider codex --model "executor-model"
|
|
21
|
+
npx create-quiver ai prepare-context --dry-run
|
|
22
|
+
npx create-quiver ai onboard --dry-run
|
|
23
|
+
```
|
|
19
24
|
|
|
20
|
-
|
|
25
|
+
Después de eso, revisá:
|
|
21
26
|
|
|
22
|
-
|
|
27
|
+
- `AGENTS.md`
|
|
28
|
+
- `docs/PROJECT_MAP.md`
|
|
29
|
+
- `docs/AI_CONTEXT.md`
|
|
30
|
+
- `docs/AI_ONBOARDING_PROMPT.md`
|
|
23
31
|
|
|
24
|
-
|
|
32
|
+
La maquinaria interna queda en `.quiver/`. Las specs reales no se crean durante el init: aparecen cuando el plan técnico ya fue revisado y aprobado, usando `spec create`.
|
|
25
33
|
|
|
26
|
-
El
|
|
34
|
+
El flujo normal con IA continúa así:
|
|
27
35
|
|
|
28
|
-
|
|
29
|
-
-
|
|
30
|
-
-
|
|
31
|
-
-
|
|
32
|
-
-
|
|
33
|
-
-
|
|
36
|
+
```bash
|
|
37
|
+
npx create-quiver flow
|
|
38
|
+
npx create-quiver ai plan --phase acceptance --input requirements.md --dry-run
|
|
39
|
+
npx create-quiver ai approve --phase acceptance --input acceptance-approved.md
|
|
40
|
+
npx create-quiver ai approvals
|
|
41
|
+
npx create-quiver ai plan --phase technical-plan --dry-run
|
|
42
|
+
npx create-quiver ai review-plan --dry-run
|
|
43
|
+
npx create-quiver ai approve --phase technical-plan --version <n>
|
|
44
|
+
npx create-quiver spec create --dry-run
|
|
45
|
+
npx create-quiver spec start specs/<project-slug>
|
|
46
|
+
npx create-quiver next
|
|
47
|
+
npx create-quiver ai execute-plan --dry-run --commit --mode manual
|
|
48
|
+
npx create-quiver ai execute-plan --dry-run --commit --mode delegated
|
|
49
|
+
```
|
|
34
50
|
|
|
35
|
-
|
|
51
|
+
Usá `--dry-run` para validar provider, rol, contexto, paths y olas sin ejecutar el modelo. `--mode manual` imprime prompts para asignar slices a mano; `--mode delegated` prepara la ejecución con workspaces seguros cuando hay paralelismo.
|
|
36
52
|
|
|
37
|
-
|
|
53
|
+
### Compatibilidad: macOS, Linux y Windows
|
|
38
54
|
|
|
39
|
-
Quiver
|
|
55
|
+
El camino principal de Quiver está pensado para ser portable: usa `npx create-quiver ...`, `npm run quiver:*` y `node ...`. Esos comandos funcionan en macOS, Linux y Windows siempre que tengas Node.js, npm y Git instalados.
|
|
40
56
|
|
|
41
|
-
|
|
57
|
+
Reglas prácticas por sistema:
|
|
42
58
|
|
|
43
|
-
-
|
|
44
|
-
-
|
|
45
|
-
-
|
|
59
|
+
- macOS y Linux: podés copiar los ejemplos tal como están. Las rutas SSH suelen verse como `~/.ssh/github-work`.
|
|
60
|
+
- Windows con PowerShell: usá los mismos comandos `npx`, `npm` y `node`, pero adaptá rutas a formato Windows, por ejemplo `C:\Users\<usuario>\ssh\github-work`.
|
|
61
|
+
- Windows con Git Bash o WSL: podés usar rutas tipo Unix, por ejemplo `~/.ssh/github-work`.
|
|
62
|
+
- Los wrappers Bash bajo `tools/scripts/` son compatibilidad legacy u opcional. Para trabajo nuevo, preferí el CLI Node y los scripts `quiver:*`.
|
|
46
63
|
|
|
47
|
-
|
|
64
|
+
Cuando uses GitHub o PRs:
|
|
48
65
|
|
|
49
|
-
|
|
66
|
+
- `--ssh-host-alias` recibe el alias del host en tu configuración SSH, por ejemplo `github-work` o `github-personal`.
|
|
67
|
+
- `--identity-file` recibe la ruta al archivo de clave, que cambia según el sistema operativo.
|
|
68
|
+
- `gh` debe estar instalado y autenticado; Quiver lo valida con `ai doctor` o `ai pr --dry-run`.
|
|
50
69
|
|
|
51
|
-
|
|
52
|
-
- **Slice:** parte pequeña de una spec. Un slice debe ser lo bastante acotado como para implementarse, validarse y revisarse sin mezclar temas.
|
|
53
|
-
- **Project map:** resumen generado por Quiver con stack, package manager, comandos y pistas del repo. Vive en `docs/PROJECT_MAP.md`.
|
|
54
|
-
- **AI context:** paquete de contexto para agentes de IA. Vive en `docs/AI_CONTEXT.md`.
|
|
55
|
-
- **Handoff:** documento excepcional para transferir contexto entre agentes o fases. Vive en `specs/<spec-slug>/HANDOFF.md`.
|
|
70
|
+
### Desarrollar este repositorio
|
|
56
71
|
|
|
57
|
-
|
|
72
|
+
```bash
|
|
73
|
+
git clone <repo-url>
|
|
74
|
+
cd quiver
|
|
75
|
+
npm install
|
|
76
|
+
node bin/create-quiver.js --help
|
|
77
|
+
node --test tests/**/*.test.js
|
|
78
|
+
```
|
|
58
79
|
|
|
59
|
-
|
|
80
|
+
> El remote local detectado usa un alias SSH (`git@github-personal:FabriJuncal/quiver.git`). Si no tenés ese alias configurado, cloná con la URL que use tu equipo.
|
|
60
81
|
|
|
61
|
-
|
|
82
|
+
## 🧠 Workflow principal: WDD + SDD con IA
|
|
62
83
|
|
|
63
|
-
|
|
84
|
+
Quiver asume que la mayoría de los equipos lo van a usar para coordinar trabajo con agentes de IA. Por eso el flujo principal no empieza por código: empieza por contexto, workflow y planificación.
|
|
64
85
|
|
|
65
|
-
|
|
86
|
+
| Etapa | Qué significa | Artefactos principales |
|
|
87
|
+
|---|---|---|
|
|
88
|
+
| WDD | Workflow-Driven Development: dejar claro cómo se trabaja antes de implementar. | `AGENTS.md`, `docs/WORKFLOW.md`, `docs/AI_CONTEXT.md`, `docs/PROJECT_MAP.md` |
|
|
89
|
+
| SDD | Spec-Driven Development: definir el trabajo en specs y slices antes de tocar código. | `specs/<project-slug>/SPEC.md`, `slice.json`, `EXECUTION_BRIEF.md`, `pr.md` |
|
|
90
|
+
| IA planner | Agente que lee contexto amplio y propone criterios, plan técnico, spec y slices. | `ai prepare-context`, `ai onboard`, `ai plan` |
|
|
91
|
+
| IA executor | Agente que recibe un slice aprobado y trabaja con contexto mínimo. | `ai prompt-slice`, `ai execute-slice`, `check-scope`, `check-slice` |
|
|
66
92
|
|
|
67
|
-
|
|
93
|
+
Flujo recomendado:
|
|
68
94
|
|
|
69
95
|
```bash
|
|
70
|
-
|
|
71
|
-
|
|
96
|
+
npx create-quiver analyze
|
|
97
|
+
npx create-quiver flow
|
|
98
|
+
npx create-quiver doctor
|
|
99
|
+
npx create-quiver ai prepare-context --dry-run
|
|
100
|
+
npx create-quiver ai onboard --dry-run
|
|
101
|
+
npx create-quiver ai plan --phase acceptance --input requirements.md --dry-run
|
|
102
|
+
npx create-quiver ai approve --phase acceptance --input acceptance-approved.md
|
|
103
|
+
npx create-quiver ai plan --phase technical-plan --dry-run
|
|
104
|
+
npx create-quiver ai review-plan --dry-run
|
|
105
|
+
npx create-quiver ai approve --phase technical-plan --version <n>
|
|
106
|
+
npx create-quiver spec create --dry-run
|
|
107
|
+
npx create-quiver spec start specs/<project-slug>
|
|
108
|
+
npx create-quiver graph
|
|
109
|
+
npx create-quiver next
|
|
110
|
+
npx create-quiver ai prompt-slice --slice specs/<project-slug>/slices/slice-01/slice.json --dry-run
|
|
111
|
+
npx create-quiver ai execute-slice --slice specs/<project-slug>/slices/slice-01/slice.json --dry-run --commit
|
|
112
|
+
npx create-quiver ai execute-plan --dry-run --commit --mode delegated
|
|
113
|
+
npx create-quiver ai pr --dry-run --input specs/<project-slug>/pr.md --ssh-host-alias github-work --identity-file ~/.ssh/github-work
|
|
72
114
|
```
|
|
73
115
|
|
|
74
|
-
|
|
116
|
+
Regla práctica: el planner no modifica código de producto; el executor solo trabaja sobre un slice aprobado y dentro de los archivos declarados en `slice.json`.
|
|
75
117
|
|
|
76
|
-
|
|
77
|
-
npx create-quiver --name "Mi Proyecto"
|
|
78
|
-
```
|
|
118
|
+
## 🛠️ Empezar a usar Quiver según tu caso
|
|
79
119
|
|
|
80
|
-
|
|
120
|
+
### 1. Proyecto nuevo desde cero
|
|
81
121
|
|
|
82
|
-
|
|
122
|
+
Usá este camino cuando todavía no existe el proyecto o estás arrancando una carpeta nueva y querés que Quiver acompañe el workflow desde el primer commit.
|
|
83
123
|
|
|
84
124
|
```bash
|
|
125
|
+
mkdir mi-proyecto
|
|
126
|
+
cd mi-proyecto
|
|
127
|
+
npx create-quiver init --name "Mi Proyecto"
|
|
128
|
+
npx create-quiver flow
|
|
129
|
+
npx create-quiver prepare --dry-run
|
|
85
130
|
npx create-quiver analyze
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
Esto genera `docs/PROJECT_SCAN.json` y `docs/PROJECT_MAP.md`. Esos archivos ayudan a humanos y agentes a entender el repo sin adivinar.
|
|
89
|
-
|
|
90
|
-
4. Validá el contrato generado.
|
|
91
|
-
|
|
92
|
-
```bash
|
|
93
131
|
npx create-quiver doctor
|
|
132
|
+
npx create-quiver ai prepare-context --dry-run
|
|
133
|
+
npx create-quiver ai onboard --dry-run
|
|
94
134
|
```
|
|
95
135
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
5. Leé el onboarding para agentes antes de pedir implementación.
|
|
99
|
-
|
|
100
|
-
```text
|
|
101
|
-
Lee `docs/AI_ONBOARDING_PROMPT.md` y ejecútalo como fuente principal de verdad para incorporarte a este repositorio.
|
|
102
|
-
|
|
103
|
-
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.
|
|
136
|
+
Qué esperar:
|
|
104
137
|
|
|
105
|
-
|
|
138
|
+
- Quiver crea un contrato visible chico: `AGENTS.md`, `docs/`, `.gitignore`, scripts `quiver:*` en `package.json` y configuración interna en `.quiver/`.
|
|
139
|
+
- No crea `docs-template/`, `tools/scripts/` ni una spec placeholder en el flujo default.
|
|
140
|
+
- `analyze` crea el scan crudo en `.quiver/scans/PROJECT_SCAN.json` y el mapa legible en `docs/PROJECT_MAP.md`.
|
|
141
|
+
- `doctor` valida que el contrato inicial esté completo.
|
|
142
|
+
- `ai prepare-context --dry-run` muestra borradores y supuestos sin escribir; `ai onboard --dry-run` muestra cómo se incorporaría un agente planner sin ejecutar el provider todavía.
|
|
106
143
|
|
|
107
|
-
|
|
144
|
+
Después del bootstrap, revisá:
|
|
108
145
|
|
|
109
|
-
|
|
146
|
+
```bash
|
|
147
|
+
npx create-quiver ai plan --phase acceptance --input requirements.md --dry-run
|
|
148
|
+
npx create-quiver ai approve --phase acceptance --input acceptance-approved.md
|
|
149
|
+
npx create-quiver ai plan --phase technical-plan --dry-run
|
|
150
|
+
npx create-quiver ai review-plan --dry-run
|
|
151
|
+
npx create-quiver ai approve --phase technical-plan --version <n>
|
|
152
|
+
npx create-quiver spec create --dry-run
|
|
153
|
+
npx create-quiver plan
|
|
154
|
+
npx create-quiver graph
|
|
155
|
+
npx create-quiver next
|
|
110
156
|
```
|
|
111
157
|
|
|
112
|
-
|
|
158
|
+
### 2. Proyecto ya iniciado sin Quiver
|
|
113
159
|
|
|
114
|
-
|
|
160
|
+
Usá este camino cuando el repo ya tiene código, pero nunca fue inicializado con Quiver.
|
|
115
161
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
1. Revisá el estado actual antes de tocar nada.
|
|
162
|
+
Primero revisá el estado actual:
|
|
119
163
|
|
|
120
164
|
```bash
|
|
121
165
|
git status --short
|
|
122
166
|
```
|
|
123
167
|
|
|
124
|
-
Si hay cambios pendientes, conviene
|
|
125
|
-
|
|
126
|
-
2. Inicializá Quiver desde la raíz del proyecto.
|
|
127
|
-
|
|
128
|
-
```bash
|
|
129
|
-
npx create-quiver --name "Nombre del Proyecto"
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
No uses `migrate` si el proyecto nunca tuvo Quiver. `migrate` es solo para proyectos ya inicializados por una versión anterior.
|
|
168
|
+
Si hay cambios pendientes, conviene guardarlos, commitearlos o crear una rama dedicada para que el diff de onboarding sea fácil de revisar.
|
|
133
169
|
|
|
134
|
-
|
|
170
|
+
Luego inicializá Quiver desde la raíz del proyecto:
|
|
135
171
|
|
|
136
172
|
```bash
|
|
173
|
+
npx create-quiver init --name "Nombre del Proyecto"
|
|
174
|
+
npx create-quiver flow
|
|
137
175
|
npx create-quiver analyze
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
Esto detecta stack, package manager, comandos y archivos relevantes.
|
|
141
|
-
|
|
142
|
-
4. Corré el doctor.
|
|
143
|
-
|
|
144
|
-
```bash
|
|
145
176
|
npx create-quiver doctor
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
5. Revisá el diff antes de seguir.
|
|
151
|
-
|
|
152
|
-
```bash
|
|
177
|
+
npx create-quiver ai agent set planner --provider codex --model "planner-model"
|
|
178
|
+
npx create-quiver ai agent set executor --provider codex --model "executor-model"
|
|
179
|
+
npx create-quiver ai prepare-context --dry-run
|
|
180
|
+
npx create-quiver ai onboard --dry-run
|
|
153
181
|
git status --short
|
|
154
182
|
```
|
|
155
183
|
|
|
156
|
-
|
|
184
|
+
Qué esperar:
|
|
185
|
+
|
|
186
|
+
- Quiver agrega documentación, scripts `quiver:*` y archivos internos de soporte en `.quiver/`.
|
|
187
|
+
- No deberías mezclar este paso con cambios de producto.
|
|
188
|
+
- `docs/PROJECT_MAP.md` queda como fuente de verdad para stack, package manager, comandos y rutas importantes.
|
|
189
|
+
- Las specs y slices reales se crean después, con `spec create`, cuando ya existen criterios aprobados y un plan técnico revisado y aprobado.
|
|
190
|
+
- El primer trabajo de IA debería ser preparar contexto y planificación, no implementar.
|
|
157
191
|
|
|
158
|
-
|
|
192
|
+
Importante: no uses `migrate` para un proyecto que nunca tuvo Quiver. `migrate` es solo para proyectos previamente inicializados.
|
|
159
193
|
|
|
160
|
-
|
|
194
|
+
### 3. Proyecto iniciado con una versión vieja de Quiver
|
|
161
195
|
|
|
162
|
-
|
|
196
|
+
Usá este camino cuando el repo ya tiene señales de Quiver, pero querés actualizarlo al contrato actual.
|
|
163
197
|
|
|
164
|
-
|
|
198
|
+
Señales típicas de una instalación previa:
|
|
165
199
|
|
|
166
200
|
- `.quiver/state.json`
|
|
201
|
+
- `AGENTS.md`
|
|
167
202
|
- `docs/AI_CONTEXT.md`
|
|
168
203
|
- `docs/PROJECT_MAP.md`
|
|
169
|
-
- `docs-template/`
|
|
170
|
-
- `tools/scripts/`
|
|
171
|
-
- scripts `quiver:*` en `package.json`
|
|
204
|
+
- `docs-template/` como señal legacy u opcional
|
|
205
|
+
- `tools/scripts/` como señal legacy u opcional
|
|
206
|
+
- scripts `quiver:*` o scripts legacy en `package.json`
|
|
172
207
|
|
|
173
|
-
|
|
208
|
+
Desde la raíz del proyecto:
|
|
174
209
|
|
|
175
210
|
```bash
|
|
176
211
|
npx create-quiver doctor
|
|
177
|
-
```
|
|
178
|
-
|
|
179
|
-
Si el proyecto necesita migración, el doctor debería indicarlo.
|
|
180
|
-
|
|
181
|
-
3. Migrá solo si el proyecto ya había sido inicializado por Quiver.
|
|
182
|
-
|
|
183
|
-
```bash
|
|
184
212
|
npx create-quiver migrate
|
|
213
|
+
npx create-quiver analyze
|
|
214
|
+
npx create-quiver doctor
|
|
215
|
+
npx create-quiver ai prepare-context --dry-run
|
|
216
|
+
npx create-quiver ai onboard --dry-run
|
|
217
|
+
git status --short
|
|
185
218
|
```
|
|
186
219
|
|
|
187
|
-
|
|
220
|
+
Si estás en CI, offline o no querés que la migración instale dependencias automáticamente:
|
|
188
221
|
|
|
189
222
|
```bash
|
|
190
223
|
npx create-quiver migrate --skip-install
|
|
191
224
|
```
|
|
192
225
|
|
|
193
|
-
|
|
226
|
+
Qué esperar:
|
|
227
|
+
|
|
228
|
+
- La migración restaura o agrega archivos faltantes de forma aditiva.
|
|
229
|
+
- No debería sobrescribir archivos existentes de proyecto sin necesidad.
|
|
230
|
+
- Después de migrar, `analyze` actualiza el mapa técnico y `doctor` confirma los próximos pasos.
|
|
231
|
+
- `ai prepare-context --dry-run` ayuda a revisar supuestos del contexto migrado; `ai onboard --dry-run` valida que el contexto viejo quedó entendible para un agente planner.
|
|
232
|
+
|
|
233
|
+
Si `doctor` falla indicando que el proyecto no fue inicializado por Quiver, usá el flujo del caso 2.
|
|
234
|
+
|
|
235
|
+
## ✨ Qué hace
|
|
236
|
+
|
|
237
|
+
Quiver instala una estructura de trabajo para que un proyecto pueda usar IA sin improvisar contexto en cada tarea:
|
|
238
|
+
|
|
239
|
+
- documentación base para humanos y agentes;
|
|
240
|
+
- contexto AI-first con roles de planner y executor;
|
|
241
|
+
- specs y slices para dividir trabajo en partes revisables;
|
|
242
|
+
- comandos para planificar, ejecutar y validar trabajo asistido por IA;
|
|
243
|
+
- checks de readiness, PR, handoff y scope;
|
|
244
|
+
- plantillas de contribución, soporte, seguridad, changelog y GitHub Actions.
|
|
245
|
+
|
|
246
|
+
La idea práctica: primero contexto, después plan, después código.
|
|
247
|
+
|
|
248
|
+
## 🧱 Stack tecnológico
|
|
249
|
+
|
|
250
|
+
| Área | Tecnología detectada |
|
|
251
|
+
|---|---|
|
|
252
|
+
| Runtime | Node.js CLI |
|
|
253
|
+
| Lenguaje | JavaScript CommonJS |
|
|
254
|
+
| Package manager | npm (`package-lock.json`) |
|
|
255
|
+
| Binario npm | `create-quiver` y alias `quiver` -> `bin/create-quiver.js` |
|
|
256
|
+
| Tests | Node built-in test runner (`node:test`) |
|
|
257
|
+
| CI/CD | GitHub Actions |
|
|
258
|
+
| Distribución | Paquete npm público `create-quiver` |
|
|
259
|
+
| Base de datos | No detectada |
|
|
260
|
+
| Docker / Compose | No detectado |
|
|
261
|
+
| Prisma / Supabase / migrations / seeders | No detectados |
|
|
262
|
+
|
|
263
|
+
## 📦 Requisitos
|
|
264
|
+
|
|
265
|
+
- Node.js 22.x recomendado. La CI usa Node 22, aunque `package.json` todavía no declara `engines`.
|
|
266
|
+
- npm.
|
|
267
|
+
- Git, especialmente para ramas y worktrees.
|
|
268
|
+
- `shellcheck` si querés replicar localmente el job de CI que valida scripts Bash.
|
|
269
|
+
- Opcional: `gh` para preflight de PR con GitHub.
|
|
270
|
+
- CLI local de `codex`, `claude` o `gemini` si vas a ejecutar comandos de IA sin `--dry-run`.
|
|
271
|
+
|
|
272
|
+
No se detectaron archivos `.env`; Quiver no requiere variables de entorno para el flujo básico.
|
|
273
|
+
|
|
274
|
+
## 📁 Estructura del proyecto
|
|
275
|
+
|
|
276
|
+
| Ruta | Propósito |
|
|
277
|
+
|---|---|
|
|
278
|
+
| `bin/create-quiver.js` | Entry point ejecutable del CLI. |
|
|
279
|
+
| `src/create-quiver/` | Código fuente del CLI y comandos principales. |
|
|
280
|
+
| `src/create-quiver/commands/` | Comandos `ai`, `graph`, `next` y `plan`. |
|
|
281
|
+
| `src/create-quiver/lib/` | Lógica de análisis, doctor, slices, lifecycle, IA, Git y renderers. |
|
|
282
|
+
| `docs/` | Plantillas que Quiver copia a proyectos destino. |
|
|
283
|
+
| `specs/` | Specs internas del desarrollo de Quiver y templates usados cuando `spec create` crea una spec real. |
|
|
284
|
+
| `scripts/` | Scripts de packaging, release, CI smoke y wrappers legacy. |
|
|
285
|
+
| `tests/` | Tests unitarios y fixtures. |
|
|
286
|
+
| `examples/` | Ejemplo mínimo de spec/slice. |
|
|
287
|
+
| `i18n/es/` | Documentación y plantillas en español. |
|
|
288
|
+
| `.github/` | Workflows, templates de issues y PR. |
|
|
289
|
+
|
|
290
|
+
## ⚙️ Configuración
|
|
291
|
+
|
|
292
|
+
### Variables opcionales
|
|
293
|
+
|
|
294
|
+
| Variable | Uso |
|
|
295
|
+
|---|---|
|
|
296
|
+
| `SLICE_WORKTREES_DIR` | Cambia la carpeta donde `start-slice` crea worktrees. |
|
|
297
|
+
| `ALLOW_DRAFT_SLICE=1` | Permite iniciar slices en estado `draft`. Equivale a usar `--allow-draft`. |
|
|
298
|
+
| `QUIVER_VERSION` | Usada por scripts legacy de inicialización. |
|
|
299
|
+
| `QUIVER_MIGRATE` | Activa modo migración en scripts legacy. |
|
|
300
|
+
| `QUIVER_PROJECT_NAME` | Define nombre de proyecto en scripts legacy. |
|
|
301
|
+
|
|
302
|
+
Para IA sin `--dry-run`, la autenticación depende del proveedor local que uses (`codex`, `claude` o `gemini`). Para PR preflight, Quiver espera que `gh` y tu configuración SSH ya existan; no instala ni modifica credenciales.
|
|
303
|
+
|
|
304
|
+
## 🧭 Comandos principales
|
|
305
|
+
|
|
306
|
+
Los comandos reales del CLI se ejecutan con `npx create-quiver ...` o, durante desarrollo local, con `node bin/create-quiver.js ...`.
|
|
307
|
+
El paquete también publica el alias binario `quiver`, que apunta al mismo CLI. Usalo cuando el paquete ya esté instalado localmente; para bootstrap remoto, seguí usando `npx create-quiver`.
|
|
308
|
+
|
|
309
|
+
| Comando | Para qué sirve |
|
|
310
|
+
|---|---|
|
|
311
|
+
| `npx create-quiver init --name "Proyecto"` | Inicializa Quiver en un proyecto nuevo o nunca inicializado. |
|
|
312
|
+
| `npx create-quiver --name "Proyecto"` | Alias compatible del flujo de init recomendado. |
|
|
313
|
+
| `npx create-quiver flow` | Muestra el estado inicial del flujo guiado y el próximo comando seguro sin escribir estado ni llamar providers. |
|
|
314
|
+
| `npx create-quiver ai agent set <role> --provider <provider> --model <label>` | Guarda perfiles reutilizables para planner, executor, reviewer o researcher sin guardar secretos. |
|
|
315
|
+
| `npx create-quiver ai agent list` | Lista los perfiles configurados. |
|
|
316
|
+
| `npx create-quiver ai agent show <role>` | Muestra un perfil específico. |
|
|
317
|
+
| `npx create-quiver ai approvals` | Muestra drafts versionados y aprobados por fase. |
|
|
318
|
+
| `npx create-quiver ai approve --phase acceptance --version <n>` | Aprueba una versión concreta de un draft guardado. |
|
|
319
|
+
| `npx create-quiver init --minimal` | Crea solo el contrato esencial de onboarding. |
|
|
320
|
+
| `npx create-quiver init --full` | Crea el layout amplio de compatibilidad. |
|
|
321
|
+
| `npx create-quiver init --legacy-scripts` | Agrega wrappers Bash legacy bajo `tools/scripts/`. |
|
|
322
|
+
| `npx create-quiver init --include-templates` | Exporta templates empaquetados bajo `.quiver/templates/`. |
|
|
323
|
+
| `npx create-quiver analyze` | Genera `.quiver/scans/PROJECT_SCAN.json` y `docs/PROJECT_MAP.md`. |
|
|
324
|
+
| `npx create-quiver doctor` | Valida que el contrato de Quiver esté completo. |
|
|
325
|
+
| `npx create-quiver doctor --fix --dry-run` | Muestra reparaciones seguras sin escribir archivos. |
|
|
326
|
+
| `npx create-quiver doctor --fix` | Aplica reparaciones no destructivas e idempotentes. |
|
|
327
|
+
| `npx create-quiver prepare --dry-run` | Ejecuta diagnóstico guiado de preparación sin escribir archivos. |
|
|
328
|
+
| `npx create-quiver prepare` | Refresca contexto y muestra riesgos, supuestos y próximos comandos. |
|
|
329
|
+
| `npx create-quiver ai prepare-context --dry-run` | Previsualiza borradores de contexto IA, supuestos, riesgos, archivos considerados y rutas omitidas sin escribir. |
|
|
330
|
+
| `npx create-quiver migrate` | Actualiza proyectos que ya fueron inicializados con Quiver. |
|
|
331
|
+
| `npx create-quiver plan` | Lista slices pendientes en orden y calcula camino crítico. |
|
|
332
|
+
| `npx create-quiver graph` | Muestra el grafo de dependencias (`tree`, `mermaid` o `dot`). |
|
|
333
|
+
| `npx create-quiver next` | Sugiere el próximo slice listo para trabajar. |
|
|
334
|
+
| `npx create-quiver plan --include-completed` | Muestra slices completados para auditoría o demos. |
|
|
335
|
+
| `npx create-quiver graph --include-completed` | Incluye slices completados en el grafo histórico. |
|
|
336
|
+
| `npx create-quiver next --include-completed` | Mantiene la recomendación accionable y agrega historial completado. |
|
|
337
|
+
| `npx create-quiver spec create` | Crea la spec real desde el plan técnico revisado y aprobado. |
|
|
338
|
+
| `npx create-quiver spec start <spec-dir>` | Crea o reutiliza el worktree dedicado de una spec. |
|
|
339
|
+
| `npx create-quiver spec status <spec-dir>` | Muestra branch, path, `slice-00` y slices pendientes. |
|
|
340
|
+
| `npx create-quiver spec close <spec-dir>` | Cierra un worktree de spec ya mergeado y limpio. |
|
|
341
|
+
| `npx create-quiver start-slice <slice.json>` | Prepara worktree y contexto para ejecutar un slice. |
|
|
342
|
+
| `npx create-quiver check-slice <slice.json>` | Valida readiness del slice. |
|
|
343
|
+
| `npx create-quiver check-slice --local <slice.json>` | Valida estructura local sin exigir remoto/base. |
|
|
344
|
+
| `npx create-quiver check-pr <slice.json>` | Valida estructura esperada para PR. |
|
|
345
|
+
| `npx create-quiver check-scope <slice.json>` | Verifica que los archivos modificados estén dentro del alcance declarado. |
|
|
346
|
+
| `npx create-quiver cleanup-slice <slice.json>` | Limpia worktree/branch local asociado a un slice. |
|
|
347
|
+
| `npx create-quiver refresh-active-slices` | Regenera el tablero local `ACTIVE_SLICES.md`. |
|
|
348
|
+
| `npx create-quiver check-handoff <handoff.md>` | Valida un handoff. |
|
|
349
|
+
| `npx create-quiver new-handoff <spec-slug>` | Crea un handoff para una transferencia excepcional. |
|
|
350
|
+
| `npx create-quiver evidence run -- <comando>` | Ejecuta un comando y guarda evidencia local con exit code, duración y salida redactada/truncada. |
|
|
351
|
+
| `npx create-quiver demo create spec-viewer --dry-run` | Previsualiza el demo opcional Quiver Spec Viewer sin escribir archivos. |
|
|
352
|
+
| `npx create-quiver demo create spec-viewer --dir <target>` | Crea el demo estático con app, spec, slices, handoffs y validación. |
|
|
353
|
+
|
|
354
|
+
### Comandos de IA para WDD + SDD
|
|
194
355
|
|
|
195
356
|
```bash
|
|
196
|
-
npx create-quiver
|
|
197
|
-
npx create-quiver
|
|
357
|
+
npx create-quiver ai prepare-context --dry-run
|
|
358
|
+
npx create-quiver ai onboard --dry-run
|
|
359
|
+
npx create-quiver ai agent set planner --provider codex --model "planner-model"
|
|
360
|
+
npx create-quiver ai agent set executor --provider codex --model "executor-model"
|
|
361
|
+
npx create-quiver ai agent list
|
|
362
|
+
npx create-quiver ai plan --phase acceptance --input requirements.md --dry-run
|
|
363
|
+
npx create-quiver ai approve --phase acceptance --input acceptance-approved.md
|
|
364
|
+
npx create-quiver ai plan --phase technical-plan --dry-run
|
|
365
|
+
npx create-quiver ai review-plan --dry-run
|
|
366
|
+
npx create-quiver ai approve --phase technical-plan --version <n>
|
|
367
|
+
npx create-quiver spec create --dry-run
|
|
368
|
+
npx create-quiver ai prompt-slice --slice specs/<project-slug>/slices/slice-01/slice.json --dry-run
|
|
369
|
+
npx create-quiver ai execute-slice --slice specs/<project-slug>/slices/slice-01/slice.json --dry-run --commit
|
|
370
|
+
npx create-quiver ai execute-plan --dry-run --commit --mode manual
|
|
371
|
+
npx create-quiver ai execute-plan --dry-run --commit --mode delegated
|
|
372
|
+
npx create-quiver ai doctor --dry-run --ssh-host-alias github-work --identity-file ~/.ssh/github-work
|
|
373
|
+
npx create-quiver ai pr --dry-run --input specs/<project-slug>/pr.md --ssh-host-alias github-work --identity-file ~/.ssh/github-work
|
|
198
374
|
```
|
|
199
375
|
|
|
200
|
-
|
|
376
|
+
Providers soportados: `codex`, `claude` y `gemini`, siempre vía CLI local.
|
|
377
|
+
Usá `--dry-run` primero para revisar provider, rol, context pack, prompt y paths sin ejecutar el modelo.
|
|
201
378
|
|
|
202
|
-
|
|
203
|
-
git status --short
|
|
204
|
-
```
|
|
205
|
-
|
|
206
|
-
Resultado esperado: el proyecto queda alineado con el contrato actual de Quiver sin mezclar migración con implementación de producto.
|
|
379
|
+
Orden recomendado:
|
|
207
380
|
|
|
208
|
-
|
|
381
|
+
1. `ai prepare-context --dry-run`: revisa borradores de contexto, supuestos y riesgos antes de escribir docs.
|
|
382
|
+
2. `ai onboard`: el planner entiende el repo y el workflow.
|
|
383
|
+
3. `ai plan --phase acceptance`: convierte requerimientos en criterios de aceptación.
|
|
384
|
+
4. `ai plan --phase technical-plan`: propone el plan técnico.
|
|
385
|
+
5. `ai review-plan`: revisa el plan como si fuera a producción, sin tocar código ni cuestionar el alcance aprobado.
|
|
386
|
+
6. `ai approve`: guarda criterios o la versión revisada del plan técnico.
|
|
387
|
+
7. `spec create`: genera spec, slices, handoffs y PR body desde el plan revisado y aprobado.
|
|
388
|
+
8. `spec start`: prepara un worktree por spec.
|
|
389
|
+
9. `ai prompt-slice`: imprime el prompt mínimo para asignar un slice manualmente.
|
|
390
|
+
10. `ai execute-slice` / `ai execute-plan`: ejecuta slices aprobados, con commit opt-in. Usá `--mode manual` para prompts y `--mode delegated` para worktrees temporales en olas paralelas.
|
|
391
|
+
11. `ai doctor` / `ai pr`: valida GitHub y crea el PR solo con `--create`.
|
|
392
|
+
12. `spec close`: cierra el worktree después del merge.
|
|
209
393
|
|
|
210
|
-
|
|
394
|
+
## 🧪 Cómo probar que funciona
|
|
211
395
|
|
|
212
|
-
|
|
213
|
-
- **SDD, Spec-Driven Development:** el trabajo se define en specs y slices antes de implementar. La spec explica el objetivo; el slice limita el alcance.
|
|
396
|
+
Validación rápida del repo:
|
|
214
397
|
|
|
215
|
-
```
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
D --> E[5. Elegir el próximo slice]
|
|
221
|
-
E --> F[6. Empezar el slice]
|
|
222
|
-
F --> G[7. Implementar y validar]
|
|
223
|
-
G --> H[8. Abrir PR con evidencia]
|
|
398
|
+
```bash
|
|
399
|
+
node bin/create-quiver.js --help
|
|
400
|
+
node --test tests/**/*.test.js
|
|
401
|
+
npm run package:quiver
|
|
402
|
+
npm pack --dry-run
|
|
224
403
|
```
|
|
225
404
|
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
Usá `npx create-quiver --name "Proyecto"` para proyectos nuevos o nunca inicializados. Usá `npx create-quiver migrate` solo cuando el proyecto ya tenía Quiver.
|
|
229
|
-
|
|
230
|
-
### 2. Analizar el proyecto
|
|
231
|
-
|
|
232
|
-
Ejecutá:
|
|
405
|
+
Validaciones adicionales disponibles:
|
|
233
406
|
|
|
234
407
|
```bash
|
|
235
|
-
|
|
408
|
+
npm run smoke:create-quiver
|
|
409
|
+
npm run smoke:guided-workflow
|
|
410
|
+
npm run smoke:tiered-pack
|
|
236
411
|
```
|
|
237
412
|
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
### 3. Completar contexto WDD
|
|
241
|
-
|
|
242
|
-
Antes de implementar, revisá y completá la documentación de contexto:
|
|
243
|
-
|
|
244
|
-
- `AGENTS.md`
|
|
245
|
-
- `docs/AI_CONTEXT.md`
|
|
246
|
-
- `docs/AI_ONBOARDING_PROMPT.md`
|
|
247
|
-
- `docs/CONTEXTO.md`
|
|
248
|
-
- `docs/WORKFLOW.md`
|
|
249
|
-
- `docs/STATUS.md`
|
|
250
|
-
- `docs/DECISIONS.md`
|
|
251
|
-
|
|
252
|
-
Si un agente de IA participa, primero debe preparar contexto y reportar supuestos. No debería tocar código de producto sin autorización explícita.
|
|
253
|
-
|
|
254
|
-
### 4. Definir o revisar spec SDD
|
|
255
|
-
|
|
256
|
-
Trabajá sobre `specs/<project-slug>/SPEC.md`.
|
|
257
|
-
|
|
258
|
-
La spec debe explicar:
|
|
259
|
-
|
|
260
|
-
- qué problema se quiere resolver;
|
|
261
|
-
- qué entra y qué queda afuera;
|
|
262
|
-
- qué evidencia va a demostrar que el trabajo terminó;
|
|
263
|
-
- cómo se divide en slices.
|
|
264
|
-
|
|
265
|
-
### 5. Elegir el próximo slice
|
|
266
|
-
|
|
267
|
-
Usá los comandos de orquestación:
|
|
413
|
+
Para dejar evidencia resumida de una validación sin pegar logs completos:
|
|
268
414
|
|
|
269
415
|
```bash
|
|
270
|
-
npx create-quiver
|
|
271
|
-
npx create-quiver graph
|
|
272
|
-
npx create-quiver next
|
|
416
|
+
npx create-quiver evidence run -- npm test
|
|
273
417
|
```
|
|
274
418
|
|
|
275
|
-
|
|
419
|
+
Por defecto la evidencia queda en `.quiver/evidence/`. También podés elegir destino con `--output <archivo>` y limitar stdout/stderr con `--max-output <n>`.
|
|
276
420
|
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
Cuando el slice esté definido:
|
|
421
|
+
Para probar Quiver sin inventar una app desde cero:
|
|
280
422
|
|
|
281
423
|
```bash
|
|
282
|
-
npx create-quiver
|
|
424
|
+
npx create-quiver demo create spec-viewer --dry-run
|
|
425
|
+
npx create-quiver demo create spec-viewer --dir ./quiver-spec-viewer
|
|
283
426
|
```
|
|
284
427
|
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
428
|
+
El demo genera una app estática pequeña, specs/slices de ejemplo y scripts de validación. No forma parte de `init`; se crea solo cuando lo pedís.
|
|
429
|
+
|
|
430
|
+
Notas reales del estado actual:
|
|
431
|
+
|
|
432
|
+
- No hay script `npm test`; el comando verificado para tests es `node --test tests/**/*.test.js`.
|
|
433
|
+
- `npm run package:quiver` valida el contenido del paquete npm generado.
|
|
434
|
+
- `npm run smoke:guided-workflow` cubre el flujo guiado con IA sin llamadas reales pagas a providers.
|
|
435
|
+
|
|
436
|
+
## 📜 Scripts npm
|
|
437
|
+
|
|
438
|
+
| Script | Uso |
|
|
439
|
+
|---|---|
|
|
440
|
+
| `npm run quiver:analyze` | Ejecuta `npx create-quiver analyze`. |
|
|
441
|
+
| `npm run quiver:flow` | Ejecuta `npx create-quiver flow`. |
|
|
442
|
+
| `npm run quiver:plan` | Ejecuta `npx create-quiver plan`. |
|
|
443
|
+
| `npm run quiver:prepare` | Ejecuta preparación guiada y diagnósticos. |
|
|
444
|
+
| `npm run quiver:graph` | Ejecuta `npx create-quiver graph`. |
|
|
445
|
+
| `npm run quiver:next` | Ejecuta `npx create-quiver next`. |
|
|
446
|
+
| `npm run quiver:doctor` | Ejecuta `npx create-quiver doctor`. |
|
|
447
|
+
| `npm run quiver:evidence` | Ejecuta `npx create-quiver evidence`; usalo como `npm run quiver:evidence -- run -- <comando>`. |
|
|
448
|
+
| `npm run quiver:ai:agent` | Ejecuta `npx create-quiver ai agent`. |
|
|
449
|
+
| `npm run quiver:ai:onboard` | Ejecuta onboarding de IA. |
|
|
450
|
+
| `npm run quiver:ai:prepare-context` | Prepara borradores de contexto IA solo en documentación; usalo primero con `-- --dry-run`. |
|
|
451
|
+
| `npm run quiver:ai:plan` | Ejecuta planificación IA por fases. |
|
|
452
|
+
| `npm run quiver:ai:review-plan` | Revisa el plan técnico antes de aprobarlo y crear la spec. |
|
|
453
|
+
| `npm run quiver:ai:approve` | Guarda criterios o planes aprobados. |
|
|
454
|
+
| `npm run quiver:ai:prompt-slice` | Imprime un prompt mínimo para asignar un slice a un executor. |
|
|
455
|
+
| `npm run quiver:ai:execute-slice` | Ejecuta un slice con rol executor. |
|
|
456
|
+
| `npm run quiver:ai:execute-plan` | Imprime o ejecuta olas de slices; soporta `--mode manual` y `--mode delegated`. |
|
|
457
|
+
| `npm run quiver:ai:doctor` | Ejecuta preflight IA/GitHub. |
|
|
458
|
+
| `npm run quiver:ai:pr` | Ejecuta preflight de PR y crea PR con `--create`. |
|
|
459
|
+
| `npm run quiver:spec:create` | Ejecuta `npx create-quiver spec create`. |
|
|
460
|
+
| `npm run quiver:spec:start` | Ejecuta `npx create-quiver spec start`. |
|
|
461
|
+
| `npm run quiver:spec:status` | Ejecuta `npx create-quiver spec status`. |
|
|
462
|
+
| `npm run quiver:spec:close` | Ejecuta `npx create-quiver spec close`. |
|
|
463
|
+
| `npm run package:quiver` | Empaqueta y valida el tarball npm. |
|
|
464
|
+
| `npm run smoke:create-quiver` | Smoke del instalador `create-quiver`. |
|
|
465
|
+
| `npm run smoke:guided-workflow` | Smoke del flujo guiado con IA, PR, cleanup y package safety. |
|
|
466
|
+
| `npm run smoke:tiered-pack` | Smoke de context packs y lifecycle. |
|
|
467
|
+
| `npm run release:quiver` | Release dry-run o publish, según flags. |
|
|
468
|
+
|
|
469
|
+
`package.json` también contiene scripts legacy como `check:slice`, `check:pr`, `start:slice`, `cleanup:slice` y `migrate` que apuntan a `tools/scripts/*`. En proyectos generados esos wrappers aparecen solo cuando se pide compatibilidad con `--legacy-scripts` o el perfil amplio `--full`; en este repo fuente requieren revisión antes de usarse directamente.
|
|
470
|
+
|
|
471
|
+
## 🔁 Flujo recomendado
|
|
472
|
+
|
|
473
|
+
1. Inicializá Quiver o migrá si el proyecto ya lo tenía.
|
|
474
|
+
2. Corré `analyze` para generar el mapa técnico.
|
|
475
|
+
3. Corré `doctor` para validar el contrato.
|
|
476
|
+
4. Prepará contexto IA con `ai prepare-context --dry-run` y revisá los supuestos antes de escribir.
|
|
477
|
+
5. Incorporá al planner con `ai onboard --dry-run`.
|
|
478
|
+
6. Convertí requerimientos en criterios, plan técnico y spec con `ai plan`; revisá el plan con `ai review-plan` antes de aprobarlo.
|
|
479
|
+
7. Creá la spec real con `spec create` y prepará su worktree con `spec start`.
|
|
480
|
+
8. Revisá dependencias con `graph`, `next` o `ai execute-plan --dry-run --mode manual`.
|
|
481
|
+
9. Para ejecución manual, generá el prompt con `ai prompt-slice --slice <slice.json> --dry-run`.
|
|
482
|
+
10. Ejecutá slices con `ai execute-slice --commit` o `ai execute-plan --execute --commit --mode delegated`.
|
|
483
|
+
11. Abrí el PR con `ai pr --create` después de revisar el dry-run.
|
|
484
|
+
12. Después del merge, cerrá el worktree con `spec close`.
|
|
485
|
+
|
|
486
|
+
## 🤝 Contribuir
|
|
487
|
+
|
|
488
|
+
1. Abrí un issue describiendo el problema o propuesta.
|
|
489
|
+
2. Acordá el alcance antes de implementar si hace falta.
|
|
490
|
+
3. Trabajá en un slice pequeño y revisable.
|
|
491
|
+
4. Incluí evidencia de validación en el PR.
|
|
492
|
+
5. Mantené una relación clara: un slice, un commit; una spec, un PR.
|
|
493
|
+
|
|
494
|
+
## 🚢 Release
|
|
495
|
+
|
|
496
|
+
Release dry-run:
|
|
292
497
|
|
|
293
498
|
```bash
|
|
294
|
-
|
|
295
|
-
npx create-quiver check-pr specs/<project-slug>/slices/slice-01/slice.json
|
|
499
|
+
npm run release:quiver
|
|
296
500
|
```
|
|
297
501
|
|
|
298
|
-
|
|
502
|
+
Publicar la versión actual:
|
|
299
503
|
|
|
300
504
|
```bash
|
|
301
|
-
|
|
505
|
+
bash scripts/release-quiver.sh --publish-current
|
|
302
506
|
```
|
|
303
507
|
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
La regla del workflow es:
|
|
307
|
-
|
|
308
|
-
- un slice = un commit;
|
|
309
|
-
- una spec = un PR;
|
|
310
|
-
- cada PR debe incluir evidencia de validación;
|
|
311
|
-
- las decisiones durables van en `docs/DECISIONS.md`;
|
|
312
|
-
- los aprendizajes reutilizables pueden registrarse en `docs/ai/LESSONS.md`.
|
|
313
|
-
|
|
314
|
-
## Comandos disponibles
|
|
315
|
-
|
|
316
|
-
Los comandos principales se ejecutan con `npx create-quiver ...`. En proyectos generados, también quedan disponibles scripts `npm run quiver:*` que llaman al CLI Node.
|
|
317
|
-
|
|
318
|
-
### Inicialización y mantenimiento del workflow
|
|
319
|
-
|
|
320
|
-
| Comando | Para qué sirve | Cuándo usarlo |
|
|
321
|
-
|---|---|---|
|
|
322
|
-
| `npx create-quiver --name "Proyecto"` | Inicializa Quiver en el proyecto actual. | Proyecto nuevo o proyecto existente que nunca tuvo Quiver. |
|
|
323
|
-
| `npx create-quiver --name "Proyecto" --dir ./ruta` | Inicializa o inspecciona otra carpeta explícitamente. | Cuando no estás parado en la raíz del proyecto destino. |
|
|
324
|
-
| `npx create-quiver migrate` | Actualiza una instalación previa de Quiver. | Solo en proyectos que ya fueron inicializados por Quiver. |
|
|
325
|
-
| `npx create-quiver migrate --skip-install` | Migra sin instalar `create-quiver` como dev dependency. | CI, entornos offline o migraciones donde no querés tocar dependencias. |
|
|
326
|
-
| `npx create-quiver doctor` | Valida el contrato generado y muestra pasos siguientes. | Después de init, migrate o analyze. |
|
|
327
|
-
|
|
328
|
-
### Análisis y contexto
|
|
329
|
-
|
|
330
|
-
| Comando | Para qué sirve | Resultado esperado |
|
|
331
|
-
|---|---|---|
|
|
332
|
-
| `npx create-quiver analyze` | Escanea el proyecto y genera contexto técnico. | `docs/PROJECT_SCAN.json` y `docs/PROJECT_MAP.md`. |
|
|
333
|
-
| `npx create-quiver check-handoff specs/<spec-slug>/HANDOFF.md` | Valida que un handoff exista en la ubicación correcta y tenga secciones requeridas. | Confirmación o errores accionables. |
|
|
334
|
-
| `npx create-quiver new-handoff <spec-slug>` | Crea un `HANDOFF.md` para una transferencia excepcional. | `specs/<spec-slug>/HANDOFF.md`. |
|
|
335
|
-
|
|
336
|
-
### Planificación y orquestación de slices
|
|
337
|
-
|
|
338
|
-
| Comando | Para qué sirve | Flags útiles |
|
|
339
|
-
|---|---|---|
|
|
340
|
-
| `npx create-quiver plan` | Lista slices pendientes en orden de ejecución y calcula camino crítico. | `--json`, `--only-ready`, `--spec <slug>` |
|
|
341
|
-
| `npx create-quiver graph` | Muestra el grafo de dependencias entre slices. | `--format mermaid`, `--format dot`, `--show-conflicts`, `--level <n>` |
|
|
342
|
-
| `npx create-quiver next` | Muestra el próximo slice listo para trabajar. | `--all-ready`, `--json`, `--auto-start` |
|
|
343
|
-
|
|
344
|
-
### Ejecución y validación
|
|
345
|
-
|
|
346
|
-
| Comando | Para qué sirve | Cuándo usarlo |
|
|
347
|
-
|---|---|---|
|
|
348
|
-
| `npx create-quiver start-slice <slice.json>` | Prepara el trabajo de un slice. | Al comenzar una unidad de trabajo. |
|
|
349
|
-
| `npx create-quiver start-slice --allow-draft <slice.json>` | Permite iniciar un slice en estado draft intencionalmente. | Solo cuando el equipo decide trabajar sobre un draft. |
|
|
350
|
-
| `npx create-quiver check-slice <slice.json>` | Valida readiness del slice. | Antes o durante la ejecución. |
|
|
351
|
-
| `npx create-quiver check-slice --gate validation <slice.json>` | Valida el slice en modo cierre. | Antes de marcarlo como completado. |
|
|
352
|
-
| `npx create-quiver check-pr <slice.json>` | Valida que el PR tenga la estructura esperada. | Antes de abrir o pedir review. |
|
|
353
|
-
| `npx create-quiver check-scope <slice.json>` | Revisa que los archivos tocados estén dentro del alcance declarado. | Antes de cerrar el slice. |
|
|
354
|
-
| `npx create-quiver cleanup-slice <slice.json>` | Limpia estado local asociado a un slice. | Al terminar o descartar trabajo local. |
|
|
355
|
-
| `npx create-quiver refresh-active-slices` | Regenera el tablero local de slices activos. | Cuando querés ver o refrescar actividad local. |
|
|
356
|
-
|
|
357
|
-
### Scripts npm generados
|
|
358
|
-
|
|
359
|
-
Después de inicializar o migrar, los proyectos quedan con scripts equivalentes:
|
|
508
|
+
Publicar con bump:
|
|
360
509
|
|
|
361
510
|
```bash
|
|
362
|
-
|
|
363
|
-
npm run quiver:plan
|
|
364
|
-
npm run quiver:graph
|
|
365
|
-
npm run quiver:next
|
|
366
|
-
npm run quiver:doctor
|
|
367
|
-
npm run quiver:migrate
|
|
368
|
-
npm run quiver:start-slice -- specs/<project-slug>/slices/slice-01/slice.json
|
|
369
|
-
npm run quiver:check-slice -- specs/<project-slug>/slices/slice-01/slice.json
|
|
370
|
-
npm run quiver:check-pr -- specs/<project-slug>/slices/slice-01/slice.json
|
|
371
|
-
npm run quiver:check-handoff -- specs/<project-slug>/HANDOFF.md
|
|
372
|
-
npm run quiver:cleanup-slice -- specs/<project-slug>/slices/slice-01/slice.json
|
|
373
|
-
npm run quiver:check-scope -- specs/<project-slug>/slices/slice-01/slice.json
|
|
374
|
-
npm run quiver:refresh-active-slices
|
|
511
|
+
bash scripts/release-quiver.sh patch --publish
|
|
375
512
|
```
|
|
376
513
|
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
## Qué genera Quiver
|
|
380
|
-
|
|
381
|
-
Según el estado del proyecto y el modo usado, Quiver puede generar o actualizar:
|
|
382
|
-
|
|
383
|
-
- `AGENTS.md`
|
|
384
|
-
- `docs/`
|
|
385
|
-
- `docs/ai/`
|
|
386
|
-
- `docs/AI_CONTEXT.md`
|
|
387
|
-
- `docs/AI_ONBOARDING_PROMPT.md`
|
|
388
|
-
- `docs/PROJECT_SCAN.json`
|
|
389
|
-
- `docs/PROJECT_MAP.md`
|
|
390
|
-
- `docs/DECISIONS.md`
|
|
391
|
-
- `docs/COMMANDS.md`
|
|
392
|
-
- `specs/<project-slug>/`
|
|
393
|
-
- `specs/<project-slug>/HANDOFF.md`
|
|
394
|
-
- `tools/scripts/`
|
|
395
|
-
- `.github/`
|
|
396
|
-
- scripts `quiver:*` en `package.json`
|
|
397
|
-
|
|
398
|
-
No todos los proyectos necesitan todos los archivos opcionales. Si un archivo no existe, no lo des por hecho: crealo desde la plantilla o registrá que falta.
|
|
399
|
-
|
|
400
|
-
## Requisitos
|
|
401
|
-
|
|
402
|
-
- Node.js y npm para ejecutar el instalador.
|
|
403
|
-
- Git para branches, worktrees y validaciones de PR.
|
|
404
|
-
- macOS, Linux o Windows PowerShell/CMD como entornos objetivo del runtime Node.
|
|
405
|
-
|
|
406
|
-
Bash queda como camino de compatibilidad legacy para algunos wrappers. El contrato de largo plazo es Node-first.
|
|
407
|
-
|
|
408
|
-
## Para agentes de IA
|
|
409
|
-
|
|
410
|
-
Si estás trabajando como agente dentro de este repo, leé primero `README_FOR_AI.md`.
|
|
411
|
-
|
|
412
|
-
Si estás trabajando en un proyecto generado con Quiver, el orden recomendado es:
|
|
413
|
-
|
|
414
|
-
1. `AGENTS.md`
|
|
415
|
-
2. `docs/PROJECT_MAP.md`
|
|
416
|
-
3. `docs/PROJECT_SCAN.json`
|
|
417
|
-
4. `docs/AI_CONTEXT.md`
|
|
418
|
-
5. `docs/AI_ONBOARDING_PROMPT.md`
|
|
419
|
-
|
|
420
|
-
Para implementar, no abras todo el repo por costumbre. Empezá por el `slice.json`, los archivos declarados, pruebas cercanas y código directamente relacionado.
|
|
421
|
-
|
|
422
|
-
## Para maintainers de Quiver
|
|
423
|
-
|
|
424
|
-
Comandos útiles para preparar releases del paquete:
|
|
514
|
+
Antes de publicar, verificá autenticación y estado del paquete:
|
|
425
515
|
|
|
426
516
|
```bash
|
|
427
517
|
npm whoami
|
|
428
518
|
npm view create-quiver version
|
|
429
|
-
npm run package:quiver
|
|
430
|
-
npm run smoke:create-quiver
|
|
431
|
-
npm run release:quiver
|
|
432
519
|
```
|
|
433
520
|
|
|
434
|
-
|
|
521
|
+
Checklist de release:
|
|
435
522
|
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
523
|
+
1. `node --test tests/**/*.test.js`
|
|
524
|
+
2. `npm run smoke:create-quiver`
|
|
525
|
+
3. `npm run smoke:guided-workflow`
|
|
526
|
+
4. `npm run smoke:tiered-pack`
|
|
527
|
+
5. `npm pack --dry-run`
|
|
528
|
+
6. Confirmar que el PR esta aprobado antes de publicar.
|
|
441
529
|
|
|
442
|
-
|
|
443
|
-
bash scripts/release-quiver.sh patch --publish
|
|
444
|
-
```
|
|
530
|
+
## 📚 Documentación útil
|
|
445
531
|
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
## Referencias
|
|
449
|
-
|
|
450
|
-
- [Guía para IA](./README_FOR_AI.md)
|
|
532
|
+
- [README para agentes de IA](./README_FOR_AI.md)
|
|
451
533
|
- [Changelog](./CHANGELOG.md)
|
|
452
534
|
- [Roadmap](./ROADMAP.md)
|
|
453
535
|
- [Backlog](./BACKLOG.md)
|
|
454
|
-
- [
|
|
455
|
-
- [
|
|
456
|
-
- [
|
|
536
|
+
- [Guía de templates](./TEMPLATE.md)
|
|
537
|
+
- [Contribución](./CONTRIBUTING.md)
|
|
538
|
+
- [Seguridad](./SECURITY.md)
|
|
539
|
+
|
|
540
|
+
## Información confirmada y pendiente
|
|
541
|
+
|
|
542
|
+
- `package.json` está en `0.10.0` y `CHANGELOG.md` reconoce `0.10.0`.
|
|
543
|
+
- `package.json` no declara `engines`; la versión mínima real de Node queda pendiente. La CI usa Node 22.
|
|
544
|
+
- Si aparece alguna referencia vieja a `0.9.0`, hay que actualizarla al contrato actual antes de seguir.
|
|
545
|
+
- Los scripts legacy de `package.json` que apuntan a `tools/scripts/*` deben confirmarse para este repo fuente o separarse de los scripts pensados para proyectos generados con `--legacy-scripts` o `--full`.
|
|
457
546
|
|
|
458
547
|
## Licencia
|
|
459
548
|
|