create-quiver 0.15.4 → 0.17.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/.github/pull_request_template.md +17 -0
- package/.github/workflows/ci.yml +76 -0
- package/.markdown-link-check.json +15 -0
- package/.markdownlint.json +11 -0
- package/ARCHITECTURE.md +133 -0
- package/CHANGELOG.md +16 -0
- package/CONTRIBUTING.md +174 -9
- package/README.md +17 -2
- package/README_FOR_AI.md +4 -1
- package/ROADMAP.md +4 -0
- package/SECURITY.md +9 -2
- package/docs/AI_CONTEXT.md.es.template +3 -1
- package/docs/AI_CONTEXT.md.template +3 -1
- package/docs/CLI_UX_GUIDE.md +20 -1
- package/docs/COMMANDS.md.template +20 -6
- package/docs/GITFLOW_PR_GUIDE.md +73 -11
- package/docs/GITFLOW_PR_GUIDE.md.es.template +61 -2
- package/docs/GITFLOW_PR_GUIDE.md.template +72 -10
- package/docs/INDEX.md +6 -1
- package/docs/QUICK.md.template +2 -1
- package/docs/STANDARD.md.template +2 -1
- package/docs/WORKFLOW.md.es.template +3 -1
- package/docs/WORKFLOW.md.template +6 -4
- package/docs/getting-started/installation.md +7 -0
- package/docs/reference/commands.md +138 -6
- package/docs/reference/slice-schema.md +37 -0
- package/docs/schema/slice.schema.json +221 -0
- package/docs/specs/01-spec/01-slice/01-slice.json +36 -0
- package/docs/specs/01-spec/01-slice/01-slice.md +106 -0
- package/docs/specs/01-spec/01-slice/CLOSURE_BRIEF.md +80 -0
- package/docs/specs/01-spec/01-slice/EXECUTION_BRIEF.md +39 -0
- package/docs/specs/01-spec/02-slice/02-slice.json +36 -0
- package/docs/specs/01-spec/02-slice/02-slice.md +108 -0
- package/docs/specs/01-spec/02-slice/CLOSURE_BRIEF.md +88 -0
- package/docs/specs/01-spec/02-slice/EXECUTION_BRIEF.md +40 -0
- package/docs/specs/01-spec/03-slice/03-slice.json +36 -0
- package/docs/specs/01-spec/03-slice/03-slice.md +103 -0
- package/docs/specs/01-spec/03-slice/CLOSURE_BRIEF.md +54 -0
- package/docs/specs/01-spec/03-slice/EXECUTION_BRIEF.md +39 -0
- package/docs/specs/01-spec/04-slice/04-slice.json +36 -0
- package/docs/specs/01-spec/04-slice/04-slice.md +107 -0
- package/docs/specs/01-spec/04-slice/CLOSURE_BRIEF.md +46 -0
- package/docs/specs/01-spec/04-slice/EXECUTION_BRIEF.md +39 -0
- package/docs/specs/01-spec/05-slice/05-slice.json +36 -0
- package/docs/specs/01-spec/05-slice/05-slice.md +106 -0
- package/docs/specs/01-spec/05-slice/CLOSURE_BRIEF.md +84 -0
- package/docs/specs/01-spec/05-slice/EXECUTION_BRIEF.md +109 -0
- package/docs/specs/01-spec/06-slice/06-slice.json +36 -0
- package/docs/specs/01-spec/06-slice/06-slice.md +107 -0
- package/docs/specs/01-spec/06-slice/CLOSURE_BRIEF.md +67 -0
- package/docs/specs/01-spec/06-slice/EXECUTION_BRIEF.md +39 -0
- package/docs/specs/01-spec/07-slice/07-slice.json +36 -0
- package/docs/specs/01-spec/07-slice/07-slice.md +105 -0
- package/docs/specs/01-spec/07-slice/CLOSURE_BRIEF.md +71 -0
- package/docs/specs/01-spec/07-slice/EXECUTION_BRIEF.md +39 -0
- package/docs/specs/01-spec/08-slice/08-slice.json +36 -0
- package/docs/specs/01-spec/08-slice/08-slice.md +105 -0
- package/docs/specs/01-spec/08-slice/CLOSURE_BRIEF.md +114 -0
- package/docs/specs/01-spec/08-slice/EXECUTION_BRIEF.md +39 -0
- package/docs/specs/01-spec/CLOSURE_BRIEF.md +87 -0
- package/docs/specs/01-spec/spec.md +197 -0
- package/docs/workflows/full-ai-spec-to-pr.md +46 -3
- package/i18n/es/docs/GITFLOW_PR_GUIDE.md.template +38 -1
- package/package.json +27 -1
- package/scripts/package-quiver.sh +82 -2
- package/scripts/release-quiver.sh +14 -3
- package/specs/[project-name]/slices/pr.md.template +19 -0
- package/specs/quiver-v43-cli-i18n-audit-release-readiness/command-language-mode-matrix.json +122 -1
- package/specs/quiver-v46-deep-project-analysis/EVIDENCE_REPORT.md +94 -0
- package/specs/quiver-v46-deep-project-analysis/EXECUTION_PLAN.md +26 -0
- package/specs/quiver-v46-deep-project-analysis/SPEC.md +157 -0
- package/specs/quiver-v46-deep-project-analysis/STATUS.md +26 -0
- package/specs/quiver-v46-deep-project-analysis/pr.md +131 -0
- package/specs/quiver-v46-deep-project-analysis/slices/slice-00-analysis-contract-foundation/CLOSURE_BRIEF.md +14 -0
- package/specs/quiver-v46-deep-project-analysis/slices/slice-00-analysis-contract-foundation/EXECUTION_BRIEF.md +41 -0
- package/specs/quiver-v46-deep-project-analysis/slices/slice-00-analysis-contract-foundation/slice.json +61 -0
- package/specs/quiver-v46-deep-project-analysis/slices/slice-01-stack-agnostic-discovery-sampling/CLOSURE_BRIEF.md +22 -0
- package/specs/quiver-v46-deep-project-analysis/slices/slice-01-stack-agnostic-discovery-sampling/EXECUTION_BRIEF.md +33 -0
- package/specs/quiver-v46-deep-project-analysis/slices/slice-01-stack-agnostic-discovery-sampling/slice.json +80 -0
- package/specs/quiver-v46-deep-project-analysis/slices/slice-02-provider-analysis-json-contract/CLOSURE_BRIEF.md +21 -0
- package/specs/quiver-v46-deep-project-analysis/slices/slice-02-provider-analysis-json-contract/EXECUTION_BRIEF.md +34 -0
- package/specs/quiver-v46-deep-project-analysis/slices/slice-02-provider-analysis-json-contract/slice.json +79 -0
- package/specs/quiver-v46-deep-project-analysis/slices/slice-03-doc-proposal-review-safe-writes/CLOSURE_BRIEF.md +19 -0
- package/specs/quiver-v46-deep-project-analysis/slices/slice-03-doc-proposal-review-safe-writes/EXECUTION_BRIEF.md +33 -0
- package/specs/quiver-v46-deep-project-analysis/slices/slice-03-doc-proposal-review-safe-writes/slice.json +79 -0
- package/specs/quiver-v46-deep-project-analysis/slices/slice-04-validation-docs-release-readiness/CLOSURE_BRIEF.md +20 -0
- package/specs/quiver-v46-deep-project-analysis/slices/slice-04-validation-docs-release-readiness/EXECUTION_BRIEF.md +32 -0
- package/specs/quiver-v46-deep-project-analysis/slices/slice-04-validation-docs-release-readiness/slice.json +85 -0
- package/specs/quiver-v50-audit-trust-foundation/EVIDENCE_REPORT.md +151 -0
- package/specs/quiver-v50-audit-trust-foundation/EXECUTION_PLAN.md +34 -0
- package/specs/quiver-v50-audit-trust-foundation/SPEC.md +113 -0
- package/specs/quiver-v50-audit-trust-foundation/STATUS.md +26 -0
- package/specs/quiver-v50-audit-trust-foundation/pr.md +120 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-00-audit-baseline-and-resolved-findings/CLOSURE_BRIEF.md +20 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-00-audit-baseline-and-resolved-findings/EXECUTION_BRIEF.md +58 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-00-audit-baseline-and-resolved-findings/slice.json +57 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-01-runtime-minimum-and-package-metadata/CLOSURE_BRIEF.md +24 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-01-runtime-minimum-and-package-metadata/EXECUTION_BRIEF.md +67 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-01-runtime-minimum-and-package-metadata/slice.json +71 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-02-migrate-write-safety-contract/CLOSURE_BRIEF.md +24 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-02-migrate-write-safety-contract/EXECUTION_BRIEF.md +71 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-02-migrate-write-safety-contract/slice.json +81 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-03-security-reporting-channel/CLOSURE_BRIEF.md +22 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-03-security-reporting-channel/EXECUTION_BRIEF.md +57 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-03-security-reporting-channel/slice.json +56 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-04-user-facing-i18n-error-coverage/CLOSURE_BRIEF.md +23 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-04-user-facing-i18n-error-coverage/EXECUTION_BRIEF.md +68 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-04-user-facing-i18n-error-coverage/slice.json +84 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-05-init-analyze-progress-and-summaries/CLOSURE_BRIEF.md +25 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-05-init-analyze-progress-and-summaries/EXECUTION_BRIEF.md +73 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-05-init-analyze-progress-and-summaries/slice.json +72 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-06-contributor-and-architecture-docs/CLOSURE_BRIEF.md +22 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-06-contributor-and-architecture-docs/EXECUTION_BRIEF.md +66 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-06-contributor-and-architecture-docs/slice.json +74 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-07-ci-and-documentation-lint-baseline/CLOSURE_BRIEF.md +29 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-07-ci-and-documentation-lint-baseline/EXECUTION_BRIEF.md +74 -0
- package/specs/quiver-v50-audit-trust-foundation/slices/slice-07-ci-and-documentation-lint-baseline/slice.json +81 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/EVIDENCE_REPORT.md +145 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/EXECUTION_PLAN.md +32 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/SPEC.md +109 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/STATUS.md +25 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/pr.md +69 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-00-cli-contract-baseline/CLOSURE_BRIEF.md +20 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-00-cli-contract-baseline/EXECUTION_BRIEF.md +58 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-00-cli-contract-baseline/slice.json +56 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-01-flow-json-compatibility/CLOSURE_BRIEF.md +21 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-01-flow-json-compatibility/EXECUTION_BRIEF.md +61 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-01-flow-json-compatibility/slice.json +68 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-02-dashboard-section-validation-i18n/CLOSURE_BRIEF.md +25 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-02-dashboard-section-validation-i18n/EXECUTION_BRIEF.md +65 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-02-dashboard-section-validation-i18n/pr.md +134 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-02-dashboard-section-validation-i18n/slice.json +80 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-03-base-branch-resolution-policy/CLOSURE_BRIEF.md +31 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-03-base-branch-resolution-policy/EXECUTION_BRIEF.md +80 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-03-base-branch-resolution-policy/pr.md +159 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-03-base-branch-resolution-policy/slice.json +102 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-04-next-plan-graph-ux-edge-cases/CLOSURE_BRIEF.md +25 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-04-next-plan-graph-ux-edge-cases/EXECUTION_BRIEF.md +74 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-04-next-plan-graph-ux-edge-cases/pr.md +147 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-04-next-plan-graph-ux-edge-cases/slice.json +91 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-05-evidence-robustness-path-safety/CLOSURE_BRIEF.md +28 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-05-evidence-robustness-path-safety/EXECUTION_BRIEF.md +73 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-05-evidence-robustness-path-safety/pr.md +146 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-05-evidence-robustness-path-safety/slice.json +100 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-06-namespace-compatibility-windows-scripts/CLOSURE_BRIEF.md +36 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-06-namespace-compatibility-windows-scripts/EXECUTION_BRIEF.md +76 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-06-namespace-compatibility-windows-scripts/pr.md +155 -0
- package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-06-namespace-compatibility-windows-scripts/slice.json +111 -0
- package/specs/quiver-v52-schema-docs-release-hygiene/EVIDENCE_REPORT.md +95 -0
- package/specs/quiver-v52-schema-docs-release-hygiene/EXECUTION_PLAN.md +31 -0
- package/specs/quiver-v52-schema-docs-release-hygiene/SPEC.md +107 -0
- package/specs/quiver-v52-schema-docs-release-hygiene/STATUS.md +22 -0
- package/specs/quiver-v52-schema-docs-release-hygiene/pr.md +69 -0
- package/specs/quiver-v52-schema-docs-release-hygiene/slices/slice-00-schema-docs-release-baseline/CLOSURE_BRIEF.md +21 -0
- package/specs/quiver-v52-schema-docs-release-hygiene/slices/slice-00-schema-docs-release-baseline/EXECUTION_BRIEF.md +60 -0
- package/specs/quiver-v52-schema-docs-release-hygiene/slices/slice-00-schema-docs-release-baseline/slice.json +62 -0
- package/specs/quiver-v52-schema-docs-release-hygiene/slices/slice-01-json-schema-for-slice-json/CLOSURE_BRIEF.md +34 -0
- package/specs/quiver-v52-schema-docs-release-hygiene/slices/slice-01-json-schema-for-slice-json/EXECUTION_BRIEF.md +71 -0
- package/specs/quiver-v52-schema-docs-release-hygiene/slices/slice-01-json-schema-for-slice-json/pr.md +146 -0
- package/specs/quiver-v52-schema-docs-release-hygiene/slices/slice-01-json-schema-for-slice-json/slice.json +106 -0
- package/specs/quiver-v52-schema-docs-release-hygiene/slices/slice-02-generated-cli-reference/CLOSURE_BRIEF.md +33 -0
- package/specs/quiver-v52-schema-docs-release-hygiene/slices/slice-02-generated-cli-reference/EXECUTION_BRIEF.md +67 -0
- package/specs/quiver-v52-schema-docs-release-hygiene/slices/slice-02-generated-cli-reference/pr.md +144 -0
- package/specs/quiver-v52-schema-docs-release-hygiene/slices/slice-02-generated-cli-reference/slice.json +86 -0
- package/specs/quiver-v52-schema-docs-release-hygiene/slices/slice-03-changelog-package-release-smoke-hygiene/CLOSURE_BRIEF.md +38 -0
- package/specs/quiver-v52-schema-docs-release-hygiene/slices/slice-03-changelog-package-release-smoke-hygiene/EXECUTION_BRIEF.md +75 -0
- package/specs/quiver-v52-schema-docs-release-hygiene/slices/slice-03-changelog-package-release-smoke-hygiene/pr.md +159 -0
- package/specs/quiver-v52-schema-docs-release-hygiene/slices/slice-03-changelog-package-release-smoke-hygiene/slice.json +105 -0
- package/src/create-quiver/commands/ai.js +521 -0
- package/src/create-quiver/commands/changelog.js +93 -0
- package/src/create-quiver/commands/config.js +16 -5
- package/src/create-quiver/commands/evidence.js +33 -2
- package/src/create-quiver/commands/flow.js +1 -0
- package/src/create-quiver/commands/graph.js +8 -2
- package/src/create-quiver/commands/plan.js +6 -0
- package/src/create-quiver/commands/spec.js +28 -13
- package/src/create-quiver/index.js +408 -98
- package/src/create-quiver/lib/ai/analyze-project-discovery.js +387 -0
- package/src/create-quiver/lib/ai/analyze-project-docs.js +364 -0
- package/src/create-quiver/lib/ai/analyze-project-parser.js +277 -0
- package/src/create-quiver/lib/ai/analyze-project-prompts.js +214 -0
- package/src/create-quiver/lib/ai/analyze-project-review.js +99 -0
- package/src/create-quiver/lib/ai/analyze-project-sampling.js +402 -0
- package/src/create-quiver/lib/ai/analyze-project-schema.js +92 -0
- package/src/create-quiver/lib/ai/analyze-project-validation.js +309 -0
- package/src/create-quiver/lib/ai/artifacts.js +4 -1
- package/src/create-quiver/lib/ai/github.js +5 -2
- package/src/create-quiver/lib/ai/spec-templates.js +19 -0
- package/src/create-quiver/lib/cli/command-registry.js +72 -0
- package/src/create-quiver/lib/cli/parser.js +14 -0
- package/src/create-quiver/lib/evidence.js +161 -6
- package/src/create-quiver/lib/git.js +99 -0
- package/src/create-quiver/lib/i18n/messages/en.js +52 -7
- package/src/create-quiver/lib/i18n/messages/es.js +54 -9
- package/src/create-quiver/lib/init-docs.js +1 -1
- package/src/create-quiver/lib/init-layout.js +9 -8
- package/src/create-quiver/lib/lifecycle.js +24 -26
- package/src/create-quiver/lib/readiness.js +67 -56
- package/src/create-quiver/lib/spec-worktrees.js +16 -34
|
@@ -21,6 +21,80 @@ npx create-quiver <comando>
|
|
|
21
21
|
|
|
22
22
|
Más detalle: [Instalación y uso con npx](../getting-started/installation.md).
|
|
23
23
|
|
|
24
|
+
## Referencia generada desde el CLI
|
|
25
|
+
|
|
26
|
+
El bloque siguiente se actualiza con `npm run docs:commands:write` y se verifica con `npm run docs:commands:check`.
|
|
27
|
+
|
|
28
|
+
El contenido curado fuera de los marcadores se mantiene manual y no debe ser reescrito por el generador.
|
|
29
|
+
|
|
30
|
+
<!-- quiver:generated-cli-reference:start -->
|
|
31
|
+
> Generated by `npm run docs:commands:write` from `COMMAND_HELP_GROUPS` and checked against `node bin/create-quiver.js --lang en --help --no-color`. Do not edit this block manually.
|
|
32
|
+
|
|
33
|
+
| Group | Command | Runtime help |
|
|
34
|
+
|---|---|---|
|
|
35
|
+
| Bootstrap and project context | `init` | Create the default AI-first Quiver contract in the current project. |
|
|
36
|
+
| Bootstrap and project context | `analyze` | Scan the project and write docs/PROJECT_MAP.md plus .quiver scan data. |
|
|
37
|
+
| Bootstrap and project context | `doctor` | Validate the Quiver layout, generated docs, environment, and next safe steps. |
|
|
38
|
+
| Bootstrap and project context | `flow` | Show the read-only guided workflow stage, blockers, and next safe command. |
|
|
39
|
+
| Bootstrap and project context | `dashboard` | Show compact read-only project, spec, slice, run, approval, and agent status. |
|
|
40
|
+
| Bootstrap and project context | `version` | Show a Quiver-branded version report; use --json for metadata. |
|
|
41
|
+
| Bootstrap and project context | `changelog` | Show recent local CHANGELOG.md release entries; use --json for metadata. |
|
|
42
|
+
| Bootstrap and project context | `config language show\|set` | Inspect or update the effective Quiver language without editing JSON by hand. |
|
|
43
|
+
| Bootstrap and project context | `prepare` | Run setup diagnostics for providers, GitHub, SSH, and project readiness. |
|
|
44
|
+
| Bootstrap and project context | `migrate` | Upgrade an already initialized Quiver project to the current contract. |
|
|
45
|
+
| Planning and slice navigation | `plan` | List slices in execution order with critical path and optional JSON output. |
|
|
46
|
+
| Planning and slice navigation | `graph` | Render slice dependencies as tree, Mermaid, DOT, or JSON-ready graph output. |
|
|
47
|
+
| Planning and slice navigation | `next` | Print the next ready slice or every ready slice with --all-ready. |
|
|
48
|
+
| AI lifecycle | `ai run create\|close` | Create a durable AI lifecycle run or close/archive a completed or stale run without deleting evidence. |
|
|
49
|
+
| AI lifecycle | `ai active-slice status\|reconcile` | Inspect or dry-run reconcile local active-slice state from every supported source. |
|
|
50
|
+
| AI lifecycle | `ai status` | Show current AI lifecycle phase, approved versions, blockers, and next command. |
|
|
51
|
+
| AI lifecycle | `ai resume` | Resume guidance from the last valid lifecycle phase without chat memory. |
|
|
52
|
+
| AI lifecycle | `ai analyze-project` | Read and explain a bounded project sample without provider execution or writes. |
|
|
53
|
+
| AI lifecycle | `ai onboard` | Run or print the planner onboarding prompt with a token-aware context pack. |
|
|
54
|
+
| AI lifecycle | `ai prepare-context` | Preview or write docs-only AI context updates with assumptions and risks. |
|
|
55
|
+
| AI lifecycle | `ai agent set\|list\|show\|doctor\|repair` | Manage, diagnose, and dry-run repair planner, executor, reviewer, and doctor provider profiles without secrets. |
|
|
56
|
+
| AI lifecycle | `ai models list` | List provider/model ids known by Quiver without claiming account availability. |
|
|
57
|
+
| AI lifecycle | `ai plan` | Generate versioned planner drafts for acceptance criteria, technical plan, or spec phase. |
|
|
58
|
+
| AI lifecycle | `ai revise` | Create a new planner draft from human feedback without approving it. |
|
|
59
|
+
| AI lifecycle | `ai repair-plan` | Repair an approved technical plan into a new structured draft without mutating the approved artifact. |
|
|
60
|
+
| AI lifecycle | `ai review-plan` | Review the technical-plan draft for production readiness before approval. |
|
|
61
|
+
| AI lifecycle | `ai approve` | Approve a concrete saved draft version for the next planner phase. |
|
|
62
|
+
| AI lifecycle | `ai approvals` | Inspect approval status and saved planner drafts. |
|
|
63
|
+
| AI lifecycle | `ai prompt-slice` | Print a minimal executor prompt for one slice without provider execution. |
|
|
64
|
+
| AI lifecycle | `ai execute-slice` | Execute one slice with scope checks, redacted evidence, closure updates, and optional commit. |
|
|
65
|
+
| AI lifecycle | `ai execute-plan` | Print or execute dependency-safe waves in manual or delegated mode. |
|
|
66
|
+
| AI lifecycle | `ai doctor` | Run GitHub, SSH, and PR readiness preflight checks. |
|
|
67
|
+
| AI lifecycle | `ai pr` | Validate and optionally create a GitHub PR from the generated PR body. |
|
|
68
|
+
| Inspection and export | `ai inspect` | Show dashboard-friendly lifecycle state for specs, slices, runs, agents, and blockers. |
|
|
69
|
+
| Inspection and export | `ai export` | Export lifecycle state as JSON or Markdown for dashboards, PRs, or other agents. |
|
|
70
|
+
| Inspection and export | `ai specs list` | List specs with status, progress, slice counts, and paths. |
|
|
71
|
+
| Inspection and export | `ai slices list` | List slices with status, dependencies, blockers, and optional JSON. |
|
|
72
|
+
| Inspection and export | `ai trace report` | Report AI runs, execution waves, and migration guidance. |
|
|
73
|
+
| Specs, slices, and validation | `spec create` | Create the real spec tree from a reviewed approved technical plan. |
|
|
74
|
+
| Specs, slices, and validation | `spec start` | Create or reuse the dedicated worktree and branch for one spec. |
|
|
75
|
+
| Specs, slices, and validation | `spec status` | Show spec worktree, branch, slice-00 state, and pending slices. |
|
|
76
|
+
| Specs, slices, and validation | `spec validate` | Validate spec docs, slices, briefs, evidence, status, dependencies, and safe paths. |
|
|
77
|
+
| Specs, slices, and validation | `spec close` | Close a merged clean spec worktree and guide local sync. |
|
|
78
|
+
| Specs, slices, and validation | `slice start\|check\|pr\|scope\|cleanup\|refresh-active` | Canonical namespace for slice lifecycle, validation, scope, and board commands. |
|
|
79
|
+
| Specs, slices, and validation | `handoff check\|new` | Canonical namespace for validating or scaffolding handoff artifacts. |
|
|
80
|
+
| Specs, slices, and validation | `start-slice` | Start work on one slice and mark it active. |
|
|
81
|
+
| Specs, slices, and validation | `check-slice` | Validate slice structure, dependencies, scope, and readiness. |
|
|
82
|
+
| Specs, slices, and validation | `check-pr` | Validate PR readiness for a slice/spec workflow. |
|
|
83
|
+
| Specs, slices, and validation | `check-scope` | Compare changed files against a slice scope. |
|
|
84
|
+
| Specs, slices, and validation | `cleanup-slice` | Clean active-slice state after a slice finishes or is discarded. |
|
|
85
|
+
| Specs, slices, and validation | `refresh-active-slices` | Refresh generated active-slice boards. |
|
|
86
|
+
| Specs, slices, and validation | `check-handoff` | Validate a transfer handoff or per-slice execution/closure brief. |
|
|
87
|
+
| Specs, slices, and validation | `new-handoff` | Create a handoff scaffold for exceptional context transfer. |
|
|
88
|
+
| Evidence and demos | `evidence run` | Run a command and record exit code, duration, redacted output, and Markdown evidence. |
|
|
89
|
+
| Evidence and demos | `evidence list` | List local evidence records; use --json for automation. |
|
|
90
|
+
| Evidence and demos | `evidence show` | Show one local evidence record; use --json for automation. |
|
|
91
|
+
| Evidence and demos | `demo create spec-viewer` | Create or preview the optional static Quiver Spec Viewer demo scaffold. |
|
|
92
|
+
| Shortcuts and compatibility | `--name "<project>"` | Compatibility alias for init when bootstrapping a project. |
|
|
93
|
+
| Shortcuts and compatibility | `--version / -V` | Print the installed create-quiver package version. |
|
|
94
|
+
| Shortcuts and compatibility | `--help / help` | Show this command reference. |
|
|
95
|
+
| Shortcuts and compatibility | `quiver` | Local installed alias to the same CLI; use npx create-quiver for bootstrap. |
|
|
96
|
+
<!-- quiver:generated-cli-reference:end -->
|
|
97
|
+
|
|
24
98
|
## Configuración inicial
|
|
25
99
|
|
|
26
100
|
| Comando | Para qué sirve |
|
|
@@ -35,17 +109,32 @@ Más detalle: [Instalación y uso con npx](../getting-started/installation.md).
|
|
|
35
109
|
| `npx --yes create-quiver@latest config language set en --global` | Guarda `en` como idioma global en `~/.quiver/config.json`. |
|
|
36
110
|
| `npx --yes create-quiver@latest init --name "Proyecto"` | Inicializa Quiver en un proyecto. |
|
|
37
111
|
| `npx --yes create-quiver@latest init --interactive` | Abre una guía interactiva para elegir idioma del proyecto, modo de proyecto, metodología `wdd-sdd`, perfil inicial y próximos pasos de agentes. |
|
|
38
|
-
| `npx --yes create-quiver@latest migrate --dry-run` | Previsualiza migración de un proyecto Quiver anterior. |
|
|
39
|
-
| `npx --yes create-quiver@latest migrate` |
|
|
112
|
+
| `npx --yes create-quiver@latest migrate --dry-run` | Previsualiza migración de un proyecto Quiver anterior sin pedir confirmación ni escribir archivos. |
|
|
113
|
+
| `npx --yes create-quiver@latest migrate` | En TTY pide confirmación antes de escribir; en no-TTY falla con guía para usar `--dry-run` o `--yes`. |
|
|
114
|
+
| `npx --yes create-quiver@latest migrate --yes` | Aplica la migración sin prompt para automatización. |
|
|
40
115
|
| `npx --yes create-quiver@latest analyze` | Genera mapa del proyecto y datos de escaneo. |
|
|
41
116
|
| `npx --yes create-quiver@latest doctor` | Valida la salud de Quiver. |
|
|
42
117
|
| `npx --yes create-quiver@latest doctor --json` | Emite el mismo diagnóstico de Doctor como JSON parseable para automatización. |
|
|
43
118
|
| `npx --yes create-quiver@latest flow` | Muestra el próximo paso seguro. |
|
|
119
|
+
| `npx --yes create-quiver@latest flow --json` | Emite el próximo paso seguro como JSON parseable; incluye `nextCommand` y el alias compatible `next_command` con el mismo valor. |
|
|
44
120
|
| `npx --yes create-quiver@latest dashboard` | Muestra un resumen compacto read-only del proyecto, specs, slices, runs, approvals y agentes. |
|
|
45
121
|
| `npx --yes create-quiver@latest dashboard --details` | Muestra el reporte humano completo cuando se necesita auditoría sin perder el resumen por defecto. |
|
|
46
|
-
| `npx --yes create-quiver@latest dashboard --section <name>` | Muestra una sección humana puntual como `specs`, `slices`, `blockers`, `warnings`, `agents`, `approvals`, `runs`, `active-slice` o `next-steps`. |
|
|
122
|
+
| `npx --yes create-quiver@latest dashboard --section <name>` | Muestra una sección humana puntual como `overview`, `specs`, `slices`, `blockers`, `warnings`, `agents`, `approvals`, `runs`, `active-slice` o `next-steps`. |
|
|
47
123
|
| `npx --yes create-quiver@latest dashboard --limit <n>` | Ajusta el límite de listas del dashboard compacto entre 1 y 100. |
|
|
48
124
|
|
|
125
|
+
## Evidencia de validaciones
|
|
126
|
+
|
|
127
|
+
| Comando | Para qué sirve |
|
|
128
|
+
|---|---|
|
|
129
|
+
| `npx --yes create-quiver@latest evidence run -- <command>` | Ejecuta un comando, preserva su exit code y escribe evidencia Markdown con duración, salida redactada y truncada. |
|
|
130
|
+
| `npx --yes create-quiver@latest evidence run --output .quiver/evidence/test.md -- <command>` | Escribe la evidencia en una ruta explícita dentro del proyecto. |
|
|
131
|
+
| `npx --yes create-quiver@latest evidence list --json` | Lista los archivos locales de evidencia como JSON parseable para automatización. |
|
|
132
|
+
| `npx --yes create-quiver@latest evidence show .quiver/evidence/test.md --json` | Muestra un archivo de evidencia como JSON parseable con contenido y metadatos. |
|
|
133
|
+
|
|
134
|
+
`evidence run` conserva el exit code del comando envuelto incluso cuando falla y escribe evidencia de la falla antes de salir. Si el proceso termina por señal, el registro incluye `Signal` y el CLI devuelve el exit code estándar `128 + signal`.
|
|
135
|
+
|
|
136
|
+
Las rutas explícitas de `--output` y las rutas pasadas a `evidence show` deben permanecer dentro del root del proyecto. Quiver rechaza traversal (`..`) y escapes por symlink antes de ejecutar el comando o leer el archivo. La salida se redacta y trunca como defensa de seguridad, pero no reemplaza la revisión humana cuando un comando imprime secretos deliberadamente.
|
|
137
|
+
|
|
49
138
|
## Idioma del CLI
|
|
50
139
|
|
|
51
140
|
Quiver resuelve el idioma de salida humana en este orden:
|
|
@@ -96,8 +185,32 @@ Reglas:
|
|
|
96
185
|
|
|
97
186
|
## Planificación con IA
|
|
98
187
|
|
|
188
|
+
### Análisis profundo de proyecto existente
|
|
189
|
+
|
|
190
|
+
`ai analyze-project` transforma una muestra acotada del repo en contexto operativo para IA. El modo seguro es read-only:
|
|
191
|
+
|
|
192
|
+
```bash
|
|
193
|
+
npx --yes create-quiver@latest ai analyze-project --deep --dry-run
|
|
194
|
+
npx --yes create-quiver@latest ai analyze-project --deep --dry-run --json
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
En `--dry-run`, Quiver no escribe archivos, no ejecuta proveedor y muestra qué seleccionó u omitió y por qué. Siempre excluye secretos, `.env`, `.git`, `.quiver`, dependencias, caches, binarios y outputs generados.
|
|
198
|
+
|
|
199
|
+
Para generar docs desde IA:
|
|
200
|
+
|
|
201
|
+
```bash
|
|
202
|
+
npx --yes create-quiver@latest ai analyze-project --deep --review
|
|
203
|
+
npx --yes create-quiver@latest ai analyze-project --deep --review --strict
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
El modo con proveedor exige JSON validado por schema, evidencia por conclusión, niveles `confirmed`, `inferred`, `unknown` o `conflict`, revisión editable, diff final, confirmación humana, snapshot previo en `.quiver/runs`, artefactos redactados y validación post-write. `--strict` convierte conflictos importantes de docs en error. El resultado puede quedar como `unknown` o `needs_confirmation` cuando el código no prueba una conclusión.
|
|
207
|
+
|
|
99
208
|
| Comando | Para qué sirve |
|
|
100
209
|
|---|---|
|
|
210
|
+
| `npx --yes create-quiver@latest ai analyze-project --deep --dry-run` | Previsualiza descubrimiento y muestreo del repo sin escribir ni ejecutar proveedor. |
|
|
211
|
+
| `npx --yes create-quiver@latest ai analyze-project --deep --dry-run --json` | Emite el plan de análisis como JSON parseable para automatización. |
|
|
212
|
+
| `npx --yes create-quiver@latest ai analyze-project --deep --review` | Ejecuta proveedor, valida análisis JSON con evidencia, abre revisión humana y escribe solo docs permitidos tras confirmación. |
|
|
213
|
+
| `npx --yes create-quiver@latest ai analyze-project --scope apps/web --max-files 80 --max-bytes 300000 --include-tests --dry-run` | Acota el análisis por workspace/ruta y presupuesto de muestra. |
|
|
101
214
|
| `npx --yes create-quiver@latest ai prepare-context --dry-run` | Previsualiza actualizaciones documentales de contexto para IA. |
|
|
102
215
|
| `npx --yes create-quiver@latest ai prepare-context` | Escribe actualizaciones documentales de contexto para IA. |
|
|
103
216
|
| `npx --yes create-quiver@latest ai prepare-context --with-planner --dry-run` | Previsualiza una propuesta docs-only generada por el planner sin escribir archivos. |
|
|
@@ -137,10 +250,16 @@ Reglas:
|
|
|
137
250
|
| `npx --yes create-quiver@latest spec create --interactive` | Guía la selección de metodología `wdd-sdd`, input aprobado y modo de revisión antes de escribir. |
|
|
138
251
|
| `npx --yes create-quiver@latest spec validate specs/<spec> --strict` | Valida el paquete de spec. |
|
|
139
252
|
| `npx --yes create-quiver@latest spec start specs/<spec>` | Crea o reutiliza el worktree de una spec. |
|
|
140
|
-
| `npx --yes create-quiver@latest
|
|
253
|
+
| `npx --yes create-quiver@latest slice start specs/<spec>/slices/<slice>/slice.json` | Inicia trabajo sobre un slice usando el namespace canónico. |
|
|
254
|
+
| `npx --yes create-quiver@latest slice check --local specs/<spec>/slices/<slice>/slice.json` | Valida estructura local de un slice usando el namespace canónico. |
|
|
255
|
+
| `npx --yes create-quiver@latest slice pr specs/<spec>/slices/<slice>/slice.json` | Valida preparación de PR de un slice usando el namespace canónico. |
|
|
256
|
+
| `npx --yes create-quiver@latest slice scope specs/<spec>/slices/<slice>/slice.json` | Compara archivos modificados contra el scope declarado usando el namespace canónico. |
|
|
257
|
+
| `npx --yes create-quiver@latest handoff check specs/<spec>/slices/<slice>/EXECUTION_BRIEF.md` | Valida un handoff o brief usando el namespace canónico. |
|
|
258
|
+
| `npx --yes create-quiver@latest handoff new <spec-slug>` | Crea un handoff excepcional usando el namespace canónico. |
|
|
259
|
+
| `npx --yes create-quiver@latest plan --spec <spec>` | Muestra el orden de ejecución de slices; la salida humana avisa si algun slice no tiene `estimated_hours` positivo y lo cuenta como `0h`. |
|
|
141
260
|
| `npx --yes create-quiver@latest dashboard --spec <spec>` | Muestra estado consolidado read-only para una spec sin ocultar el progreso global. |
|
|
142
261
|
| `npx --yes create-quiver@latest dashboard --section slices --spec <spec>` | Inspecciona solo slices de la spec seleccionada. |
|
|
143
|
-
| `npx --yes create-quiver@latest graph --spec <spec>` | Muestra dependencias entre slices. |
|
|
262
|
+
| `npx --yes create-quiver@latest graph --spec <spec>` | Muestra dependencias entre slices; `--level <n>` acota un nivel y muestra un estado vacio humano si no hay slices en ese nivel. |
|
|
144
263
|
| `npx --yes create-quiver@latest next --all-ready --spec <spec>` | Lista slices listos para ejecutar. |
|
|
145
264
|
| `npx --yes create-quiver@latest ai prompt-slice --slice <slice.json> --dry-run` | Imprime un prompt mínimo para el ejecutor. |
|
|
146
265
|
| `npx --yes create-quiver@latest ai execute-slice --slice <slice.json> --commit` | Ejecuta un slice y commitea después de validar. |
|
|
@@ -156,12 +275,22 @@ Reglas:
|
|
|
156
275
|
| `npx --yes create-quiver@latest spec close specs/<spec> --dry-run` | Previsualiza limpieza del worktree después del merge. |
|
|
157
276
|
| `npx --yes create-quiver@latest spec close specs/<spec>` | Cierra el worktree de la spec mergeada. |
|
|
158
277
|
|
|
278
|
+
Base branch policy: `--base <branch>` always wins. Without `--base`, slice readiness commands prefer `slice.json` `git.base_branch`, then Remote HEAD, then `main`, `master`, and `develop`. `ai pr`, `spec start`, and `spec close` use Remote HEAD before the same fallback list when no slice-specific base applies.
|
|
279
|
+
|
|
159
280
|
## Opciones útiles
|
|
160
281
|
|
|
161
282
|
| Opción | Para qué sirve |
|
|
162
283
|
|---|---|
|
|
163
284
|
| `--dry-run` | Previsualiza sin escribir archivos ni ejecutar proveedores. |
|
|
164
285
|
| `--print-prompt` | Imprime el prompt del proveedor sin ejecutarlo. |
|
|
286
|
+
| `--deep` | En `ai analyze-project`, incluye fuente y DB en la muestra representativa. |
|
|
287
|
+
| `--max-files <n>` | En `ai analyze-project`, limita la cantidad de archivos seleccionados. |
|
|
288
|
+
| `--max-bytes <n>` | En `ai analyze-project`, limita los bytes seleccionados para la muestra. |
|
|
289
|
+
| `--include-source` | En `ai analyze-project`, incluye código fuente sin requerir `--deep`. |
|
|
290
|
+
| `--include-tests` | En `ai analyze-project`, incluye tests en la muestra. |
|
|
291
|
+
| `--include-db` | En `ai analyze-project`, incluye schemas, migraciones y archivos DB. |
|
|
292
|
+
| `--scope <path\|name>` | En `ai analyze-project`, restringe el análisis a una ruta o workspace. |
|
|
293
|
+
| `--strict` | En validaciones soportadas, convierte conflictos importantes en errores. |
|
|
165
294
|
| `--with-planner` | Activa comportamiento asistido por planner solo en comandos que lo soportan. |
|
|
166
295
|
| `--interactive` | Habilita prompts humanos de confirmación o elección. |
|
|
167
296
|
| `--review` | Abre o prepara revisión humana antes de escrituras persistentes. |
|
|
@@ -171,7 +300,7 @@ Reglas:
|
|
|
171
300
|
| `--lang en\|es` | Sobrescribe el idioma efectivo de la salida humana para una ejecución. |
|
|
172
301
|
| `--global` | En `config language set`, escribe la configuración global de usuario en `~/.quiver/config.json`. |
|
|
173
302
|
| `--details` | Expande el dashboard humano completo; no combina con `--json` ni `--section`. |
|
|
174
|
-
| `--section <name>` | Muestra una sección humana del dashboard
|
|
303
|
+
| `--section <name>` | Muestra una sección humana del dashboard: `overview`, `specs`, `slices`, `blockers`, `warnings`, `agents`, `approvals`, `runs`, `active-slice` o `next-steps`; no combina con `--json` ni `--details`. |
|
|
175
304
|
| `--limit <n>` | Limita listas del dashboard compacto entre 1 y 100; no combina con `--json`. |
|
|
176
305
|
| `--provider codex\|claude\|gemini` | Selecciona CLI local de proveedor. |
|
|
177
306
|
| `--model <model-id>` | Selecciona el identificador técnico del modelo para `ai agent set` o ejecución de proveedor. Quiver normaliza alias conocidos, pero no garantiza acceso en la cuenta del proveedor. |
|
|
@@ -181,10 +310,13 @@ Reglas:
|
|
|
181
310
|
| `--ssh-host-alias <alias>` | Alias SSH de GitHub para validaciones de PR. |
|
|
182
311
|
| `--identity-file <path>` | Ruta de la clave SSH para validaciones de PR. |
|
|
183
312
|
|
|
313
|
+
`graph --json` mantiene precedencia sobre `--format <tree|mermaid|dot>` cuando ambos se pasan: la salida sigue siendo JSON parseable y no render Mermaid/DOT. Los formatos humanos siguen disponibles sin `--json`.
|
|
314
|
+
|
|
184
315
|
## Matriz de flags UX
|
|
185
316
|
|
|
186
317
|
| Comando | `--with-planner` | `--interactive` | `--review` |
|
|
187
318
|
|---|---:|---:|---:|
|
|
319
|
+
| `ai analyze-project` | no | no | sí |
|
|
188
320
|
| `ai prepare-context` | sí | sí | sí |
|
|
189
321
|
| `ai plan` | sí | sí | sí |
|
|
190
322
|
| `spec create` | sí | sí | sí |
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Slice JSON Schema
|
|
2
|
+
|
|
3
|
+
Quiver publishes a JSON Schema for executable `slice.json` files:
|
|
4
|
+
|
|
5
|
+
- Schema file: [`../schema/slice.schema.json`](../schema/slice.schema.json)
|
|
6
|
+
- Check command: `npm run schema:slice:check`
|
|
7
|
+
|
|
8
|
+
## Source Of Truth
|
|
9
|
+
|
|
10
|
+
The schema follows the current runtime contract instead of an aspirational model:
|
|
11
|
+
|
|
12
|
+
- `src/create-quiver/commands/spec.js` validates spec and slice structure.
|
|
13
|
+
- `src/create-quiver/lib/slice.js` reads slice metadata for lifecycle commands.
|
|
14
|
+
- `src/create-quiver/lib/readiness.js` validates local execution and PR readiness.
|
|
15
|
+
- `src/create-quiver/lib/ai/spec-generator.js` generates and validates generated slice JSON.
|
|
16
|
+
|
|
17
|
+
`check-slice --local` still requires a non-empty `files` array. Newer scope tooling can prefer `allowed_write_paths` when it is present, but `files` remains part of the executable contract for now.
|
|
18
|
+
|
|
19
|
+
## Validate Local Slices
|
|
20
|
+
|
|
21
|
+
Run:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
npm run schema:slice:check
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
The check validates runtime-valid `specs/**/slices/**/slice.json` and `examples/**/slices/**/slice.json` fixtures, skips placeholder templates, and verifies representative invalid fixtures fail.
|
|
28
|
+
|
|
29
|
+
## Editor Usage
|
|
30
|
+
|
|
31
|
+
Use this schema in editors or external validation tools by pointing them at:
|
|
32
|
+
|
|
33
|
+
```txt
|
|
34
|
+
docs/schema/slice.schema.json
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
The schema rejects unsafe path values such as absolute paths, `file:` URLs, drive-root paths, and `..` traversal segments.
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://quiver.dev/schemas/slice.schema.json",
|
|
4
|
+
"title": "Quiver slice.json",
|
|
5
|
+
"description": "Schema for executable Quiver slice contracts. It is derived from current runtime validation in src/create-quiver/commands/spec.js, src/create-quiver/lib/slice.js, src/create-quiver/lib/readiness.js, and generated slice output in src/create-quiver/lib/ai/spec-generator.js.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"additionalProperties": false,
|
|
8
|
+
"required": [
|
|
9
|
+
"slice_id",
|
|
10
|
+
"ticket",
|
|
11
|
+
"type",
|
|
12
|
+
"title",
|
|
13
|
+
"objective",
|
|
14
|
+
"description",
|
|
15
|
+
"git",
|
|
16
|
+
"must",
|
|
17
|
+
"not_included",
|
|
18
|
+
"acceptance",
|
|
19
|
+
"files",
|
|
20
|
+
"tests",
|
|
21
|
+
"estimated_hours",
|
|
22
|
+
"status"
|
|
23
|
+
],
|
|
24
|
+
"properties": {
|
|
25
|
+
"slice_id": {
|
|
26
|
+
"type": "string",
|
|
27
|
+
"pattern": "^slice-[A-Za-z0-9][A-Za-z0-9._-]*$",
|
|
28
|
+
"description": "Directory-local slice id. Runtime spec validation also requires this value to match the parent slice directory name."
|
|
29
|
+
},
|
|
30
|
+
"ticket": {
|
|
31
|
+
"$ref": "#/definitions/nonEmptyString"
|
|
32
|
+
},
|
|
33
|
+
"type": {
|
|
34
|
+
"$ref": "#/definitions/nonEmptyString"
|
|
35
|
+
},
|
|
36
|
+
"title": {
|
|
37
|
+
"$ref": "#/definitions/nonEmptyString"
|
|
38
|
+
},
|
|
39
|
+
"objective": {
|
|
40
|
+
"$ref": "#/definitions/nonEmptyString"
|
|
41
|
+
},
|
|
42
|
+
"description": {
|
|
43
|
+
"$ref": "#/definitions/nonEmptyString"
|
|
44
|
+
},
|
|
45
|
+
"git": {
|
|
46
|
+
"type": "object",
|
|
47
|
+
"additionalProperties": false,
|
|
48
|
+
"required": [
|
|
49
|
+
"branch_type",
|
|
50
|
+
"base_branch",
|
|
51
|
+
"branch_slug",
|
|
52
|
+
"branch_name"
|
|
53
|
+
],
|
|
54
|
+
"properties": {
|
|
55
|
+
"branch_type": {
|
|
56
|
+
"$ref": "#/definitions/gitRefPart",
|
|
57
|
+
"description": "Current slice start runtime supports feature, bugfix, and hotfix; historical slices may use other non-empty types."
|
|
58
|
+
},
|
|
59
|
+
"base_branch": {
|
|
60
|
+
"$ref": "#/definitions/gitRefPart"
|
|
61
|
+
},
|
|
62
|
+
"branch_slug": {
|
|
63
|
+
"$ref": "#/definitions/gitRefPart"
|
|
64
|
+
},
|
|
65
|
+
"branch_name": {
|
|
66
|
+
"$ref": "#/definitions/gitRef"
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
"ui_scope": {
|
|
71
|
+
"type": "object",
|
|
72
|
+
"additionalProperties": false,
|
|
73
|
+
"properties": {
|
|
74
|
+
"routes": {
|
|
75
|
+
"$ref": "#/definitions/stringList"
|
|
76
|
+
},
|
|
77
|
+
"components": {
|
|
78
|
+
"$ref": "#/definitions/stringList"
|
|
79
|
+
},
|
|
80
|
+
"layouts": {
|
|
81
|
+
"$ref": "#/definitions/stringList"
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
"must": {
|
|
86
|
+
"$ref": "#/definitions/stringList"
|
|
87
|
+
},
|
|
88
|
+
"not_included": {
|
|
89
|
+
"$ref": "#/definitions/stringList"
|
|
90
|
+
},
|
|
91
|
+
"acceptance": {
|
|
92
|
+
"$ref": "#/definitions/stringList"
|
|
93
|
+
},
|
|
94
|
+
"files": {
|
|
95
|
+
"allOf": [
|
|
96
|
+
{
|
|
97
|
+
"$ref": "#/definitions/pathList"
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"type": "array",
|
|
101
|
+
"minItems": 1
|
|
102
|
+
}
|
|
103
|
+
],
|
|
104
|
+
"description": "Legacy and still-required write scope. Current check-slice local validation requires this array to exist."
|
|
105
|
+
},
|
|
106
|
+
"expected_read_paths": {
|
|
107
|
+
"$ref": "#/definitions/pathList"
|
|
108
|
+
},
|
|
109
|
+
"allowed_write_paths": {
|
|
110
|
+
"$ref": "#/definitions/pathList",
|
|
111
|
+
"description": "Preferred write scope for graph and executor tooling. When present and non-empty, runtime scope logic prefers this over files."
|
|
112
|
+
},
|
|
113
|
+
"tests": {
|
|
114
|
+
"$ref": "#/definitions/stringList"
|
|
115
|
+
},
|
|
116
|
+
"documentation": {
|
|
117
|
+
"$ref": "#/definitions/pathList"
|
|
118
|
+
},
|
|
119
|
+
"dependencies": {
|
|
120
|
+
"$ref": "#/definitions/stringList",
|
|
121
|
+
"description": "Legacy dependency field used by older slice graph input."
|
|
122
|
+
},
|
|
123
|
+
"depends_on": {
|
|
124
|
+
"$ref": "#/definitions/stringList",
|
|
125
|
+
"description": "Preferred dependency field. Runtime graph validation normalizes bare slice ids and full spec/slice refs."
|
|
126
|
+
},
|
|
127
|
+
"parallel_safe": {
|
|
128
|
+
"type": "string",
|
|
129
|
+
"enum": [
|
|
130
|
+
"after_dependencies",
|
|
131
|
+
"conditional",
|
|
132
|
+
"maybe",
|
|
133
|
+
"never",
|
|
134
|
+
"no",
|
|
135
|
+
"yes"
|
|
136
|
+
]
|
|
137
|
+
},
|
|
138
|
+
"parallel_safe_reason": {
|
|
139
|
+
"$ref": "#/definitions/nonEmptyString"
|
|
140
|
+
},
|
|
141
|
+
"validation_hints": {
|
|
142
|
+
"$ref": "#/definitions/stringList"
|
|
143
|
+
},
|
|
144
|
+
"assumptions": {
|
|
145
|
+
"$ref": "#/definitions/stringList"
|
|
146
|
+
},
|
|
147
|
+
"estimated_hours": {
|
|
148
|
+
"type": "number",
|
|
149
|
+
"minimum": 0
|
|
150
|
+
},
|
|
151
|
+
"actual_hours": {
|
|
152
|
+
"type": [
|
|
153
|
+
"number",
|
|
154
|
+
"null"
|
|
155
|
+
],
|
|
156
|
+
"minimum": 0
|
|
157
|
+
},
|
|
158
|
+
"status": {
|
|
159
|
+
"type": "string",
|
|
160
|
+
"enum": [
|
|
161
|
+
"blocked",
|
|
162
|
+
"cancelled",
|
|
163
|
+
"completed",
|
|
164
|
+
"draft",
|
|
165
|
+
"planned",
|
|
166
|
+
"ready"
|
|
167
|
+
]
|
|
168
|
+
},
|
|
169
|
+
"blocked_reason": {
|
|
170
|
+
"$ref": "#/definitions/nullableString"
|
|
171
|
+
},
|
|
172
|
+
"ready_at": {
|
|
173
|
+
"$ref": "#/definitions/nullableString"
|
|
174
|
+
},
|
|
175
|
+
"started_at": {
|
|
176
|
+
"$ref": "#/definitions/nullableString"
|
|
177
|
+
},
|
|
178
|
+
"completed_at": {
|
|
179
|
+
"$ref": "#/definitions/nullableString"
|
|
180
|
+
}
|
|
181
|
+
},
|
|
182
|
+
"definitions": {
|
|
183
|
+
"nonEmptyString": {
|
|
184
|
+
"type": "string",
|
|
185
|
+
"pattern": "\\S"
|
|
186
|
+
},
|
|
187
|
+
"nullableString": {
|
|
188
|
+
"type": [
|
|
189
|
+
"string",
|
|
190
|
+
"null"
|
|
191
|
+
]
|
|
192
|
+
},
|
|
193
|
+
"stringList": {
|
|
194
|
+
"type": "array",
|
|
195
|
+
"items": {
|
|
196
|
+
"$ref": "#/definitions/nonEmptyString"
|
|
197
|
+
},
|
|
198
|
+
"uniqueItems": true
|
|
199
|
+
},
|
|
200
|
+
"projectRelativePath": {
|
|
201
|
+
"type": "string",
|
|
202
|
+
"pattern": "^(?!file:)(?!/)(?![A-Za-z]:[\\\\/])(?!.*(?:^|[\\\\/])\\.\\.(?:[\\\\/]|$)).*\\S.*$",
|
|
203
|
+
"description": "Project-relative path without file URLs, absolute paths, drive roots, or traversal segments. Runtime normalizes Windows separators to POSIX."
|
|
204
|
+
},
|
|
205
|
+
"pathList": {
|
|
206
|
+
"type": "array",
|
|
207
|
+
"items": {
|
|
208
|
+
"$ref": "#/definitions/projectRelativePath"
|
|
209
|
+
},
|
|
210
|
+
"uniqueItems": true
|
|
211
|
+
},
|
|
212
|
+
"gitRefPart": {
|
|
213
|
+
"type": "string",
|
|
214
|
+
"pattern": "^(?!/)(?!.*\\.\\.)(?!.*\\\\)(?!.*//)(?!.*\\/$)[A-Za-z0-9._/-]+$"
|
|
215
|
+
},
|
|
216
|
+
"gitRef": {
|
|
217
|
+
"type": "string",
|
|
218
|
+
"pattern": "^(?!/)(?!.*\\.\\.)(?!.*\\\\)(?!.*//)(?!.*\\/$)[A-Za-z0-9._/-]+$"
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slice_id": "01-slice",
|
|
3
|
+
"slice_number": "01",
|
|
4
|
+
"title": "Snapshot verificable de ramas",
|
|
5
|
+
"objective": "Crear un inventario auditable de ramas locales y remotas con base, SHA, fecha, ahead/behind, frescura del dato y clasificacion inicial.",
|
|
6
|
+
"problem": "Evita tomar decisiones sobre ramas usando informacion incompleta, stale o ambigua.",
|
|
7
|
+
"value_outcome": "Reporte de ramas que permite decidir que revisar, extraer, cerrar o conservar sin modificar el repo.",
|
|
8
|
+
"scope": {
|
|
9
|
+
"includes": ["Analisis read-only de refs", "Clasificacion documental", "Registro de frescura del snapshot"],
|
|
10
|
+
"excludes": ["Fetch sin aprobacion", "Merge", "Rebase", "Push", "Eliminacion de ramas", "Implementacion de codigo"]
|
|
11
|
+
},
|
|
12
|
+
"actors": ["Tech Lead", "Maintainer", "Reviewer", "Implementador futuro"],
|
|
13
|
+
"preconditions": ["Repositorio Git disponible", "Refs locales/remotos presentes en snapshot local"],
|
|
14
|
+
"inputs": ["Refs de Git", "origin/HEAD", "origin/main", "Logs", "Metadatos de commits"],
|
|
15
|
+
"outputs": ["Inventario de ramas", "Clasificacion inicial", "Riesgos por rama"],
|
|
16
|
+
"workflow": [
|
|
17
|
+
{"step": 1, "name": "Detectar base", "description": "Detectar rama base desde origin/HEAD o convenciones conocidas."},
|
|
18
|
+
{"step": 2, "name": "Listar refs", "description": "Listar ramas locales y remotas."},
|
|
19
|
+
{"step": 3, "name": "Calcular metadata", "description": "Calcular SHA, fecha, ahead/behind y merge-base."},
|
|
20
|
+
{"step": 4, "name": "Clasificar", "description": "Asignar estado no destructivo a cada rama."}
|
|
21
|
+
],
|
|
22
|
+
"business_rules": ["ahead=0 no autoriza eliminacion", "main local divergida no es base segura", "Toda eliminacion requiere aprobacion"],
|
|
23
|
+
"validations": ["Cada rama tiene SHA", "Cada rama tiene fecha", "Local/remota diferenciado", "Frescura registrada"],
|
|
24
|
+
"error_cases": ["Sin origin/HEAD", "Sin merge-base", "Refs remotos stale"],
|
|
25
|
+
"acceptance_criteria": ["Todas las ramas abiertas aparecen", "Ninguna rama se marca eliminable sin aprobacion", "Se registra fecha y SHA del snapshot", "ahead=0 queda como sin delta"],
|
|
26
|
+
"dependencies": {
|
|
27
|
+
"functional": [],
|
|
28
|
+
"technical": ["Git"],
|
|
29
|
+
"external": [],
|
|
30
|
+
"depends_on_slices": []
|
|
31
|
+
},
|
|
32
|
+
"implementation_order": 1,
|
|
33
|
+
"slicing_rationale": "Un snapshot confiable reduce riesgo antes de cualquier decision tecnica.",
|
|
34
|
+
"risks": ["Snapshot remoto stale"],
|
|
35
|
+
"open_questions": ["Se autorizara fetch antes de acciones finales?"]
|
|
36
|
+
}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
# 01-slice - Snapshot verificable de ramas
|
|
2
|
+
|
|
3
|
+
## 1. Nombre del slice
|
|
4
|
+
|
|
5
|
+
Snapshot verificable de ramas.
|
|
6
|
+
|
|
7
|
+
## 2. Objetivo del slice
|
|
8
|
+
|
|
9
|
+
Crear un inventario auditable de ramas locales y remotas con base, SHA, fecha, ahead/behind, frescura del dato y clasificacion inicial.
|
|
10
|
+
|
|
11
|
+
## 3. Problema puntual que resuelve
|
|
12
|
+
|
|
13
|
+
Evita tomar decisiones sobre ramas usando informacion incompleta, stale o ambigua.
|
|
14
|
+
|
|
15
|
+
## 4. Valor observable que entrega
|
|
16
|
+
|
|
17
|
+
Un reporte de ramas que permite decidir que revisar, extraer, cerrar o conservar sin modificar el repo.
|
|
18
|
+
|
|
19
|
+
## 5. Alcance especifico
|
|
20
|
+
|
|
21
|
+
Incluye analisis read-only de refs y clasificacion documental. No ejecuta acciones destructivas.
|
|
22
|
+
|
|
23
|
+
## 6. Que incluye
|
|
24
|
+
|
|
25
|
+
- Rama base probable.
|
|
26
|
+
- SHA de base y de cada rama.
|
|
27
|
+
- Fecha de ultimo commit.
|
|
28
|
+
- Autor principal.
|
|
29
|
+
- Ahead/behind.
|
|
30
|
+
- Tipo local/remota.
|
|
31
|
+
- Frescura del snapshot.
|
|
32
|
+
- Clasificacion inicial.
|
|
33
|
+
|
|
34
|
+
## 7. Que no incluye
|
|
35
|
+
|
|
36
|
+
- Fetch sin aprobacion.
|
|
37
|
+
- Merge, rebase, push o delete.
|
|
38
|
+
- Implementacion de codigo.
|
|
39
|
+
- Limpieza de ramas.
|
|
40
|
+
|
|
41
|
+
## 8. Actores involucrados
|
|
42
|
+
|
|
43
|
+
Tech Lead, maintainer, reviewer e implementador futuro.
|
|
44
|
+
|
|
45
|
+
## 9. Precondiciones
|
|
46
|
+
|
|
47
|
+
Repositorio Git disponible y refs locales/remotos presentes en el snapshot local.
|
|
48
|
+
|
|
49
|
+
## 10. Entradas necesarias
|
|
50
|
+
|
|
51
|
+
Refs de Git, `origin/HEAD`, `origin/main`, logs y metadatos de commits.
|
|
52
|
+
|
|
53
|
+
## 11. Flujo operativo paso a paso
|
|
54
|
+
|
|
55
|
+
1. Detectar rama base desde `origin/HEAD` o convenciones conocidas.
|
|
56
|
+
2. Listar refs locales y remotos.
|
|
57
|
+
3. Calcular SHA, fecha, ahead/behind y merge-base.
|
|
58
|
+
4. Identificar si el dato remoto requiere verificacion de frescura.
|
|
59
|
+
5. Clasificar cada rama con estado no destructivo.
|
|
60
|
+
6. Registrar riesgos y dudas por rama.
|
|
61
|
+
|
|
62
|
+
## 12. Salidas esperadas
|
|
63
|
+
|
|
64
|
+
Inventario de ramas con clasificacion y evidencia suficiente para planificar slices posteriores.
|
|
65
|
+
|
|
66
|
+
## 13. Reglas de negocio aplicables
|
|
67
|
+
|
|
68
|
+
- `ahead=0` significa sin delta pendiente, no eliminable automaticamente.
|
|
69
|
+
- `main` local divergida no es base segura.
|
|
70
|
+
- Toda recomendacion de eliminacion queda pendiente de aprobacion.
|
|
71
|
+
|
|
72
|
+
## 14. Validaciones
|
|
73
|
+
|
|
74
|
+
- Cada rama tiene SHA, fecha y base probable.
|
|
75
|
+
- Cada rama local/remota esta diferenciada.
|
|
76
|
+
- Cada estado de limpieza distingue cerrable, eliminable, protegida e historica.
|
|
77
|
+
|
|
78
|
+
## 15. Manejo de errores o edge cases
|
|
79
|
+
|
|
80
|
+
- Si no hay `origin/HEAD`, usar candidato documentado y marcar supuesto.
|
|
81
|
+
- Si una rama no tiene merge-base, marcar `requiere revision manual`.
|
|
82
|
+
- Si refs remotos estan stale, marcar `requiere verificacion remota`.
|
|
83
|
+
|
|
84
|
+
## 16. Criterios de aceptacion
|
|
85
|
+
|
|
86
|
+
- Todas las ramas abiertas aparecen en el inventario.
|
|
87
|
+
- Ninguna rama se clasifica como eliminable sin condicion de aprobacion.
|
|
88
|
+
- El reporte incluye fecha y SHA del snapshot.
|
|
89
|
+
- Las ramas con `ahead=0` quedan como `sin delta`, no como borrables.
|
|
90
|
+
- Las ramas conflictivas quedan marcadas para analisis posterior.
|
|
91
|
+
|
|
92
|
+
## 17. Dependencias tecnicas, funcionales o externas
|
|
93
|
+
|
|
94
|
+
Git local y refs existentes.
|
|
95
|
+
|
|
96
|
+
## 18. Depende de slices
|
|
97
|
+
|
|
98
|
+
Ninguno.
|
|
99
|
+
|
|
100
|
+
## 19. Riesgos / decisiones abiertas
|
|
101
|
+
|
|
102
|
+
El snapshot puede quedar obsoleto si no se actualizan refs remotos.
|
|
103
|
+
|
|
104
|
+
## 20. Pendientes / preguntas abiertas
|
|
105
|
+
|
|
106
|
+
Definir si se autorizara `fetch` antes de tomar decisiones remotas finales.
|