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.
Files changed (199) hide show
  1. package/.github/pull_request_template.md +17 -0
  2. package/.github/workflows/ci.yml +76 -0
  3. package/.markdown-link-check.json +15 -0
  4. package/.markdownlint.json +11 -0
  5. package/ARCHITECTURE.md +133 -0
  6. package/CHANGELOG.md +16 -0
  7. package/CONTRIBUTING.md +174 -9
  8. package/README.md +17 -2
  9. package/README_FOR_AI.md +4 -1
  10. package/ROADMAP.md +4 -0
  11. package/SECURITY.md +9 -2
  12. package/docs/AI_CONTEXT.md.es.template +3 -1
  13. package/docs/AI_CONTEXT.md.template +3 -1
  14. package/docs/CLI_UX_GUIDE.md +20 -1
  15. package/docs/COMMANDS.md.template +20 -6
  16. package/docs/GITFLOW_PR_GUIDE.md +73 -11
  17. package/docs/GITFLOW_PR_GUIDE.md.es.template +61 -2
  18. package/docs/GITFLOW_PR_GUIDE.md.template +72 -10
  19. package/docs/INDEX.md +6 -1
  20. package/docs/QUICK.md.template +2 -1
  21. package/docs/STANDARD.md.template +2 -1
  22. package/docs/WORKFLOW.md.es.template +3 -1
  23. package/docs/WORKFLOW.md.template +6 -4
  24. package/docs/getting-started/installation.md +7 -0
  25. package/docs/reference/commands.md +138 -6
  26. package/docs/reference/slice-schema.md +37 -0
  27. package/docs/schema/slice.schema.json +221 -0
  28. package/docs/specs/01-spec/01-slice/01-slice.json +36 -0
  29. package/docs/specs/01-spec/01-slice/01-slice.md +106 -0
  30. package/docs/specs/01-spec/01-slice/CLOSURE_BRIEF.md +80 -0
  31. package/docs/specs/01-spec/01-slice/EXECUTION_BRIEF.md +39 -0
  32. package/docs/specs/01-spec/02-slice/02-slice.json +36 -0
  33. package/docs/specs/01-spec/02-slice/02-slice.md +108 -0
  34. package/docs/specs/01-spec/02-slice/CLOSURE_BRIEF.md +88 -0
  35. package/docs/specs/01-spec/02-slice/EXECUTION_BRIEF.md +40 -0
  36. package/docs/specs/01-spec/03-slice/03-slice.json +36 -0
  37. package/docs/specs/01-spec/03-slice/03-slice.md +103 -0
  38. package/docs/specs/01-spec/03-slice/CLOSURE_BRIEF.md +54 -0
  39. package/docs/specs/01-spec/03-slice/EXECUTION_BRIEF.md +39 -0
  40. package/docs/specs/01-spec/04-slice/04-slice.json +36 -0
  41. package/docs/specs/01-spec/04-slice/04-slice.md +107 -0
  42. package/docs/specs/01-spec/04-slice/CLOSURE_BRIEF.md +46 -0
  43. package/docs/specs/01-spec/04-slice/EXECUTION_BRIEF.md +39 -0
  44. package/docs/specs/01-spec/05-slice/05-slice.json +36 -0
  45. package/docs/specs/01-spec/05-slice/05-slice.md +106 -0
  46. package/docs/specs/01-spec/05-slice/CLOSURE_BRIEF.md +84 -0
  47. package/docs/specs/01-spec/05-slice/EXECUTION_BRIEF.md +109 -0
  48. package/docs/specs/01-spec/06-slice/06-slice.json +36 -0
  49. package/docs/specs/01-spec/06-slice/06-slice.md +107 -0
  50. package/docs/specs/01-spec/06-slice/CLOSURE_BRIEF.md +67 -0
  51. package/docs/specs/01-spec/06-slice/EXECUTION_BRIEF.md +39 -0
  52. package/docs/specs/01-spec/07-slice/07-slice.json +36 -0
  53. package/docs/specs/01-spec/07-slice/07-slice.md +105 -0
  54. package/docs/specs/01-spec/07-slice/CLOSURE_BRIEF.md +71 -0
  55. package/docs/specs/01-spec/07-slice/EXECUTION_BRIEF.md +39 -0
  56. package/docs/specs/01-spec/08-slice/08-slice.json +36 -0
  57. package/docs/specs/01-spec/08-slice/08-slice.md +105 -0
  58. package/docs/specs/01-spec/08-slice/CLOSURE_BRIEF.md +114 -0
  59. package/docs/specs/01-spec/08-slice/EXECUTION_BRIEF.md +39 -0
  60. package/docs/specs/01-spec/CLOSURE_BRIEF.md +87 -0
  61. package/docs/specs/01-spec/spec.md +197 -0
  62. package/docs/workflows/full-ai-spec-to-pr.md +46 -3
  63. package/i18n/es/docs/GITFLOW_PR_GUIDE.md.template +38 -1
  64. package/package.json +27 -1
  65. package/scripts/package-quiver.sh +82 -2
  66. package/scripts/release-quiver.sh +14 -3
  67. package/specs/[project-name]/slices/pr.md.template +19 -0
  68. package/specs/quiver-v43-cli-i18n-audit-release-readiness/command-language-mode-matrix.json +122 -1
  69. package/specs/quiver-v46-deep-project-analysis/EVIDENCE_REPORT.md +94 -0
  70. package/specs/quiver-v46-deep-project-analysis/EXECUTION_PLAN.md +26 -0
  71. package/specs/quiver-v46-deep-project-analysis/SPEC.md +157 -0
  72. package/specs/quiver-v46-deep-project-analysis/STATUS.md +26 -0
  73. package/specs/quiver-v46-deep-project-analysis/pr.md +131 -0
  74. package/specs/quiver-v46-deep-project-analysis/slices/slice-00-analysis-contract-foundation/CLOSURE_BRIEF.md +14 -0
  75. package/specs/quiver-v46-deep-project-analysis/slices/slice-00-analysis-contract-foundation/EXECUTION_BRIEF.md +41 -0
  76. package/specs/quiver-v46-deep-project-analysis/slices/slice-00-analysis-contract-foundation/slice.json +61 -0
  77. package/specs/quiver-v46-deep-project-analysis/slices/slice-01-stack-agnostic-discovery-sampling/CLOSURE_BRIEF.md +22 -0
  78. package/specs/quiver-v46-deep-project-analysis/slices/slice-01-stack-agnostic-discovery-sampling/EXECUTION_BRIEF.md +33 -0
  79. package/specs/quiver-v46-deep-project-analysis/slices/slice-01-stack-agnostic-discovery-sampling/slice.json +80 -0
  80. package/specs/quiver-v46-deep-project-analysis/slices/slice-02-provider-analysis-json-contract/CLOSURE_BRIEF.md +21 -0
  81. package/specs/quiver-v46-deep-project-analysis/slices/slice-02-provider-analysis-json-contract/EXECUTION_BRIEF.md +34 -0
  82. package/specs/quiver-v46-deep-project-analysis/slices/slice-02-provider-analysis-json-contract/slice.json +79 -0
  83. package/specs/quiver-v46-deep-project-analysis/slices/slice-03-doc-proposal-review-safe-writes/CLOSURE_BRIEF.md +19 -0
  84. package/specs/quiver-v46-deep-project-analysis/slices/slice-03-doc-proposal-review-safe-writes/EXECUTION_BRIEF.md +33 -0
  85. package/specs/quiver-v46-deep-project-analysis/slices/slice-03-doc-proposal-review-safe-writes/slice.json +79 -0
  86. package/specs/quiver-v46-deep-project-analysis/slices/slice-04-validation-docs-release-readiness/CLOSURE_BRIEF.md +20 -0
  87. package/specs/quiver-v46-deep-project-analysis/slices/slice-04-validation-docs-release-readiness/EXECUTION_BRIEF.md +32 -0
  88. package/specs/quiver-v46-deep-project-analysis/slices/slice-04-validation-docs-release-readiness/slice.json +85 -0
  89. package/specs/quiver-v50-audit-trust-foundation/EVIDENCE_REPORT.md +151 -0
  90. package/specs/quiver-v50-audit-trust-foundation/EXECUTION_PLAN.md +34 -0
  91. package/specs/quiver-v50-audit-trust-foundation/SPEC.md +113 -0
  92. package/specs/quiver-v50-audit-trust-foundation/STATUS.md +26 -0
  93. package/specs/quiver-v50-audit-trust-foundation/pr.md +120 -0
  94. package/specs/quiver-v50-audit-trust-foundation/slices/slice-00-audit-baseline-and-resolved-findings/CLOSURE_BRIEF.md +20 -0
  95. package/specs/quiver-v50-audit-trust-foundation/slices/slice-00-audit-baseline-and-resolved-findings/EXECUTION_BRIEF.md +58 -0
  96. package/specs/quiver-v50-audit-trust-foundation/slices/slice-00-audit-baseline-and-resolved-findings/slice.json +57 -0
  97. package/specs/quiver-v50-audit-trust-foundation/slices/slice-01-runtime-minimum-and-package-metadata/CLOSURE_BRIEF.md +24 -0
  98. package/specs/quiver-v50-audit-trust-foundation/slices/slice-01-runtime-minimum-and-package-metadata/EXECUTION_BRIEF.md +67 -0
  99. package/specs/quiver-v50-audit-trust-foundation/slices/slice-01-runtime-minimum-and-package-metadata/slice.json +71 -0
  100. package/specs/quiver-v50-audit-trust-foundation/slices/slice-02-migrate-write-safety-contract/CLOSURE_BRIEF.md +24 -0
  101. package/specs/quiver-v50-audit-trust-foundation/slices/slice-02-migrate-write-safety-contract/EXECUTION_BRIEF.md +71 -0
  102. package/specs/quiver-v50-audit-trust-foundation/slices/slice-02-migrate-write-safety-contract/slice.json +81 -0
  103. package/specs/quiver-v50-audit-trust-foundation/slices/slice-03-security-reporting-channel/CLOSURE_BRIEF.md +22 -0
  104. package/specs/quiver-v50-audit-trust-foundation/slices/slice-03-security-reporting-channel/EXECUTION_BRIEF.md +57 -0
  105. package/specs/quiver-v50-audit-trust-foundation/slices/slice-03-security-reporting-channel/slice.json +56 -0
  106. package/specs/quiver-v50-audit-trust-foundation/slices/slice-04-user-facing-i18n-error-coverage/CLOSURE_BRIEF.md +23 -0
  107. package/specs/quiver-v50-audit-trust-foundation/slices/slice-04-user-facing-i18n-error-coverage/EXECUTION_BRIEF.md +68 -0
  108. package/specs/quiver-v50-audit-trust-foundation/slices/slice-04-user-facing-i18n-error-coverage/slice.json +84 -0
  109. package/specs/quiver-v50-audit-trust-foundation/slices/slice-05-init-analyze-progress-and-summaries/CLOSURE_BRIEF.md +25 -0
  110. package/specs/quiver-v50-audit-trust-foundation/slices/slice-05-init-analyze-progress-and-summaries/EXECUTION_BRIEF.md +73 -0
  111. package/specs/quiver-v50-audit-trust-foundation/slices/slice-05-init-analyze-progress-and-summaries/slice.json +72 -0
  112. package/specs/quiver-v50-audit-trust-foundation/slices/slice-06-contributor-and-architecture-docs/CLOSURE_BRIEF.md +22 -0
  113. package/specs/quiver-v50-audit-trust-foundation/slices/slice-06-contributor-and-architecture-docs/EXECUTION_BRIEF.md +66 -0
  114. package/specs/quiver-v50-audit-trust-foundation/slices/slice-06-contributor-and-architecture-docs/slice.json +74 -0
  115. package/specs/quiver-v50-audit-trust-foundation/slices/slice-07-ci-and-documentation-lint-baseline/CLOSURE_BRIEF.md +29 -0
  116. package/specs/quiver-v50-audit-trust-foundation/slices/slice-07-ci-and-documentation-lint-baseline/EXECUTION_BRIEF.md +74 -0
  117. package/specs/quiver-v50-audit-trust-foundation/slices/slice-07-ci-and-documentation-lint-baseline/slice.json +81 -0
  118. package/specs/quiver-v51-cli-ergonomics-automation-contracts/EVIDENCE_REPORT.md +145 -0
  119. package/specs/quiver-v51-cli-ergonomics-automation-contracts/EXECUTION_PLAN.md +32 -0
  120. package/specs/quiver-v51-cli-ergonomics-automation-contracts/SPEC.md +109 -0
  121. package/specs/quiver-v51-cli-ergonomics-automation-contracts/STATUS.md +25 -0
  122. package/specs/quiver-v51-cli-ergonomics-automation-contracts/pr.md +69 -0
  123. package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-00-cli-contract-baseline/CLOSURE_BRIEF.md +20 -0
  124. package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-00-cli-contract-baseline/EXECUTION_BRIEF.md +58 -0
  125. package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-00-cli-contract-baseline/slice.json +56 -0
  126. package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-01-flow-json-compatibility/CLOSURE_BRIEF.md +21 -0
  127. package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-01-flow-json-compatibility/EXECUTION_BRIEF.md +61 -0
  128. package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-01-flow-json-compatibility/slice.json +68 -0
  129. package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-02-dashboard-section-validation-i18n/CLOSURE_BRIEF.md +25 -0
  130. package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-02-dashboard-section-validation-i18n/EXECUTION_BRIEF.md +65 -0
  131. package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-02-dashboard-section-validation-i18n/pr.md +134 -0
  132. package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-02-dashboard-section-validation-i18n/slice.json +80 -0
  133. package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-03-base-branch-resolution-policy/CLOSURE_BRIEF.md +31 -0
  134. package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-03-base-branch-resolution-policy/EXECUTION_BRIEF.md +80 -0
  135. package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-03-base-branch-resolution-policy/pr.md +159 -0
  136. package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-03-base-branch-resolution-policy/slice.json +102 -0
  137. package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-04-next-plan-graph-ux-edge-cases/CLOSURE_BRIEF.md +25 -0
  138. package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-04-next-plan-graph-ux-edge-cases/EXECUTION_BRIEF.md +74 -0
  139. package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-04-next-plan-graph-ux-edge-cases/pr.md +147 -0
  140. package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-04-next-plan-graph-ux-edge-cases/slice.json +91 -0
  141. package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-05-evidence-robustness-path-safety/CLOSURE_BRIEF.md +28 -0
  142. package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-05-evidence-robustness-path-safety/EXECUTION_BRIEF.md +73 -0
  143. package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-05-evidence-robustness-path-safety/pr.md +146 -0
  144. package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-05-evidence-robustness-path-safety/slice.json +100 -0
  145. package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-06-namespace-compatibility-windows-scripts/CLOSURE_BRIEF.md +36 -0
  146. package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-06-namespace-compatibility-windows-scripts/EXECUTION_BRIEF.md +76 -0
  147. package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-06-namespace-compatibility-windows-scripts/pr.md +155 -0
  148. package/specs/quiver-v51-cli-ergonomics-automation-contracts/slices/slice-06-namespace-compatibility-windows-scripts/slice.json +111 -0
  149. package/specs/quiver-v52-schema-docs-release-hygiene/EVIDENCE_REPORT.md +95 -0
  150. package/specs/quiver-v52-schema-docs-release-hygiene/EXECUTION_PLAN.md +31 -0
  151. package/specs/quiver-v52-schema-docs-release-hygiene/SPEC.md +107 -0
  152. package/specs/quiver-v52-schema-docs-release-hygiene/STATUS.md +22 -0
  153. package/specs/quiver-v52-schema-docs-release-hygiene/pr.md +69 -0
  154. package/specs/quiver-v52-schema-docs-release-hygiene/slices/slice-00-schema-docs-release-baseline/CLOSURE_BRIEF.md +21 -0
  155. package/specs/quiver-v52-schema-docs-release-hygiene/slices/slice-00-schema-docs-release-baseline/EXECUTION_BRIEF.md +60 -0
  156. package/specs/quiver-v52-schema-docs-release-hygiene/slices/slice-00-schema-docs-release-baseline/slice.json +62 -0
  157. package/specs/quiver-v52-schema-docs-release-hygiene/slices/slice-01-json-schema-for-slice-json/CLOSURE_BRIEF.md +34 -0
  158. package/specs/quiver-v52-schema-docs-release-hygiene/slices/slice-01-json-schema-for-slice-json/EXECUTION_BRIEF.md +71 -0
  159. package/specs/quiver-v52-schema-docs-release-hygiene/slices/slice-01-json-schema-for-slice-json/pr.md +146 -0
  160. package/specs/quiver-v52-schema-docs-release-hygiene/slices/slice-01-json-schema-for-slice-json/slice.json +106 -0
  161. package/specs/quiver-v52-schema-docs-release-hygiene/slices/slice-02-generated-cli-reference/CLOSURE_BRIEF.md +33 -0
  162. package/specs/quiver-v52-schema-docs-release-hygiene/slices/slice-02-generated-cli-reference/EXECUTION_BRIEF.md +67 -0
  163. package/specs/quiver-v52-schema-docs-release-hygiene/slices/slice-02-generated-cli-reference/pr.md +144 -0
  164. package/specs/quiver-v52-schema-docs-release-hygiene/slices/slice-02-generated-cli-reference/slice.json +86 -0
  165. package/specs/quiver-v52-schema-docs-release-hygiene/slices/slice-03-changelog-package-release-smoke-hygiene/CLOSURE_BRIEF.md +38 -0
  166. package/specs/quiver-v52-schema-docs-release-hygiene/slices/slice-03-changelog-package-release-smoke-hygiene/EXECUTION_BRIEF.md +75 -0
  167. package/specs/quiver-v52-schema-docs-release-hygiene/slices/slice-03-changelog-package-release-smoke-hygiene/pr.md +159 -0
  168. package/specs/quiver-v52-schema-docs-release-hygiene/slices/slice-03-changelog-package-release-smoke-hygiene/slice.json +105 -0
  169. package/src/create-quiver/commands/ai.js +521 -0
  170. package/src/create-quiver/commands/changelog.js +93 -0
  171. package/src/create-quiver/commands/config.js +16 -5
  172. package/src/create-quiver/commands/evidence.js +33 -2
  173. package/src/create-quiver/commands/flow.js +1 -0
  174. package/src/create-quiver/commands/graph.js +8 -2
  175. package/src/create-quiver/commands/plan.js +6 -0
  176. package/src/create-quiver/commands/spec.js +28 -13
  177. package/src/create-quiver/index.js +408 -98
  178. package/src/create-quiver/lib/ai/analyze-project-discovery.js +387 -0
  179. package/src/create-quiver/lib/ai/analyze-project-docs.js +364 -0
  180. package/src/create-quiver/lib/ai/analyze-project-parser.js +277 -0
  181. package/src/create-quiver/lib/ai/analyze-project-prompts.js +214 -0
  182. package/src/create-quiver/lib/ai/analyze-project-review.js +99 -0
  183. package/src/create-quiver/lib/ai/analyze-project-sampling.js +402 -0
  184. package/src/create-quiver/lib/ai/analyze-project-schema.js +92 -0
  185. package/src/create-quiver/lib/ai/analyze-project-validation.js +309 -0
  186. package/src/create-quiver/lib/ai/artifacts.js +4 -1
  187. package/src/create-quiver/lib/ai/github.js +5 -2
  188. package/src/create-quiver/lib/ai/spec-templates.js +19 -0
  189. package/src/create-quiver/lib/cli/command-registry.js +72 -0
  190. package/src/create-quiver/lib/cli/parser.js +14 -0
  191. package/src/create-quiver/lib/evidence.js +161 -6
  192. package/src/create-quiver/lib/git.js +99 -0
  193. package/src/create-quiver/lib/i18n/messages/en.js +52 -7
  194. package/src/create-quiver/lib/i18n/messages/es.js +54 -9
  195. package/src/create-quiver/lib/init-docs.js +1 -1
  196. package/src/create-quiver/lib/init-layout.js +9 -8
  197. package/src/create-quiver/lib/lifecycle.js +24 -26
  198. package/src/create-quiver/lib/readiness.js +67 -56
  199. package/src/create-quiver/lib/spec-worktrees.js +16 -34
@@ -0,0 +1,107 @@
1
+ # 04-slice - Matriz de extraccion por rama
2
+
3
+ ## 1. Nombre del slice
4
+
5
+ Matriz de extraccion por rama.
6
+
7
+ ## 2. Objetivo del slice
8
+
9
+ Determinar que partes de ramas conflictivas se deben extraer como codigo, concepto, rehacer o descartar.
10
+
11
+ ## 3. Problema puntual que resuelve
12
+
13
+ Evita merges parciales improvisados y cherry-picks grandes desde ramas viejas.
14
+
15
+ ## 4. Valor observable que entrega
16
+
17
+ Una matriz de decisiones por rama, archivo, comando o concepto con riesgo y proxima accion.
18
+
19
+ ## 5. Alcance especifico
20
+
21
+ Analisis documental de ramas candidatas, especialmente `feature/QUIVER-46-49-cli-modernization`.
22
+
23
+ ## 6. Que incluye
24
+
25
+ - Lista de ramas candidatas.
26
+ - Cambios por modulo.
27
+ - Clasificacion: extraer codigo, extraer concepto, rehacer, descartar.
28
+ - Riesgo textual, semantico y de contrato.
29
+ - Dependencias entre extracciones.
30
+ - Exclusiones explicitas.
31
+
32
+ ## 7. Que no incluye
33
+
34
+ - Aplicar cambios.
35
+ - Resolver conflictos.
36
+ - Cherry-pick.
37
+ - Modificar package/version.
38
+
39
+ ## 8. Actores involucrados
40
+
41
+ Tech Lead, reviewer e implementador futuro.
42
+
43
+ ## 9. Precondiciones
44
+
45
+ `03-slice` aprobado y baseline disponible.
46
+
47
+ ## 10. Entradas necesarias
48
+
49
+ Diffs, logs, merge-tree, baseline, contrato de no regresion y analisis de ramas.
50
+
51
+ ## 11. Flujo operativo paso a paso
52
+
53
+ 1. Seleccionar ramas candidatas.
54
+ 2. Agrupar cambios por comportamiento o modulo.
55
+ 3. Comparar contra baseline.
56
+ 4. Clasificar cada hallazgo.
57
+ 5. Registrar riesgos y dependencias.
58
+ 6. Excluir cambios de version/package salvo slice futuro dedicado.
59
+ 7. Proponer orden de extraccion.
60
+
61
+ ## 12. Salidas esperadas
62
+
63
+ Matriz de extraccion y backlog de slices tecnicos futuros.
64
+
65
+ ## 13. Reglas de negocio aplicables
66
+
67
+ - No mergear rama completa si mezcla riesgos.
68
+ - No cherry-pick de commits grandes sin separar hallazgos.
69
+ - Codigo viejo puede convertirse en concepto a rehacer.
70
+ - Cambios sin mejora verificable se descartan.
71
+
72
+ ## 14. Validaciones
73
+
74
+ - Cada hallazgo tiene clasificacion.
75
+ - Cada riesgo indica tipo: textual, semantico o contrato.
76
+ - Cada exclusion tiene motivo.
77
+ - Cada extraccion referencia baseline afectado.
78
+
79
+ ## 15. Manejo de errores o edge cases
80
+
81
+ - Si una rama tiene valor historico pero codigo obsoleto, clasificar como concepto.
82
+ - Si un archivo ya existe en `origin/main` con contenido distinto, marcar conflicto de contrato.
83
+ - Si falta evidencia, marcar revision manual con dato faltante.
84
+
85
+ ## 16. Criterios de aceptacion
86
+
87
+ - `feature/QUIVER-46-49-cli-modernization` no queda como merge completo.
88
+ - Cada cambio candidato tiene decision concreta.
89
+ - Package/version queda fuera salvo slice dedicado.
90
+ - No hay hallazgos marcados utiles sin validacion o pregunta abierta.
91
+ - La matriz permite planificar slices tecnicos pequenos.
92
+
93
+ ## 17. Dependencias tecnicas, funcionales o externas
94
+
95
+ Git read-only y baseline aprobado.
96
+
97
+ ## 18. Depende de slices
98
+
99
+ `03-slice`.
100
+
101
+ ## 19. Riesgos / decisiones abiertas
102
+
103
+ La clasificacion puede requerir conocimiento funcional de comandos.
104
+
105
+ ## 20. Pendientes / preguntas abiertas
106
+
107
+ Definir si se revisaran primero todas las ramas conflictivas o solo `QUIVER-46-49`.
@@ -0,0 +1,46 @@
1
+ # CLOSURE_BRIEF - 04-slice
2
+
3
+ ## Resultado
4
+
5
+ Completado como matriz inicial de extraccion.
6
+
7
+ ## Evidencia
8
+
9
+ Matriz de decision por fuente:
10
+
11
+ | Fuente | Decision | Motivo | Siguiente slice |
12
+ |---|---|---|---|
13
+ | `feature/QUIVER-46-49-cli-modernization` | Extraer selectivamente; no merge completo | 176 archivos, conflictos textuales, impacto CLI transversal | `05`, `06`, `07` |
14
+ | `origin/feature/QUIVER-46-49-cli-modernization` | Duplicado remoto de fuente | Misma decision que local | `05`, `06`, `07` |
15
+ | `src/create-quiver/lib/cli/command-registry.js` desde `QUIVER-46-49` | Extraer codigo o rehacer tras comparacion | Valor potencial, bajo numero de archivos, alto impacto contractual | `05` |
16
+ | `src/create-quiver/lib/cli/parser.js` desde `QUIVER-46-49` | Extraer concepto o codigo solo con compatibilidad total | Parser afecta todos los comandos | `05` |
17
+ | Split de `src/create-quiver/commands/ai.js` | Rehacer concepto o extraer por modulo | Riesgo alto por lifecycle/proveedores/outputs | `05`/`06` |
18
+ | Wrappers `status`, `changelog`, `doctor`, `handoff`, `init`, `slice` | Evaluar por comando; no importar en bloque | Algunos namespaces ya existen en `origin/main` | `06` |
19
+ | Docs/specs v46-v49 | Diferir y reconciliar con CLI real | Pueden estar obsoletas frente a PRs #95-#108 | `07` |
20
+ | `package.json`, `package-lock.json`, bump `0.15.4` | Fuera de alcance; decision release separada | No mezclar refactor con version/package | Ninguno en esta spec |
21
+ | `feature/QUIVER-50-01-runtime-minimum-and-package-metadata` | Extraer concepto en slice futuro separado | Toca CI/package/version docs; conflictivo | Fuera de extraccion inicial |
22
+ | `feature/QUIVER-50-03-v50-security-reporting` | Extraer documentacion si sigue faltando | Valor posible en `SECURITY.md`; requiere revision manual | Futuro doc slice |
23
+ | `feature/QUIVER-50-06-contributor-and-architecture-docs` | Extraer concepto/documentacion si vigente | Riesgo de arquitectura desactualizada | Futuro doc slice |
24
+ | `feature/QUIVER-01-ci-matrix-verified` | Revisar manualmente; extraer concepto si falta | Muy vieja, conflictiva, posible duplicacion de `slice-graph` | Futuro analisis |
25
+ | `drafts/v19-v22-orchestration-followups` | Conservar como draft; no merge directo | Documentacion antigua, sin conflicto textual | Limpieza posterior |
26
+ | `backup/QUIVER-52-03-before-squash` | No merge; comparar solo si falta evidencia | Backup pre-squash | `08` posterior |
27
+ | `main` local | No usar como base; no merge | Divergida `ahead 1 / behind 44`, version `0.15.4` | Decision release separada |
28
+ | Ramas revert viejas (`docs/QUIVER-02...`, `feature/QUIVER-03...`, `feature/QUIVER-20...`) | Candidatas a descarte/cierre, no merge | Reverts viejos, conflictivos, valor dudoso | `08` con aprobacion |
29
+
30
+ ## Cambios de comportamiento
31
+
32
+ Ninguno. La matriz no aplica cambios.
33
+
34
+ ## Regresiones detectadas
35
+
36
+ Ninguna.
37
+
38
+ ## Riesgos residuales
39
+
40
+ - La matriz no reemplaza revision de codigo antes de implementar.
41
+ - Ramas remotas requieren verificacion de frescura antes de cerrar/eliminar.
42
+ - Algunos hallazgos quedan como concepto, no codigo listo.
43
+
44
+ ## Decision sobre ramas
45
+
46
+ No se elimina ni cierra ninguna rama. `feature/QUIVER-46-49-cli-modernization` debe conservarse como fuente hasta cerrar `05`, `06` y `07`.
@@ -0,0 +1,39 @@
1
+ # EXECUTION_BRIEF - 04-slice
2
+
3
+ ## Objetivo
4
+
5
+ Crear matriz de extraccion por rama sin aplicar cambios.
6
+
7
+ ## Base segura
8
+
9
+ Usar `origin/main` con baseline y contrato aprobados.
10
+
11
+ ## Archivos candidatos
12
+
13
+ Documentacion de matriz de extraccion.
14
+
15
+ ## Archivos excluidos
16
+
17
+ Codigo fuente, package files, tests y ramas Git.
18
+
19
+ ## Funcionalidad existente afectada
20
+
21
+ Ninguna durante este slice. Se identifican funcionalidades que podrian afectarse en slices futuros.
22
+
23
+ ## Matriz antes/despues
24
+
25
+ Obligatoria para cada candidato que modifique comandos en slices futuros.
26
+
27
+ ## Validaciones
28
+
29
+ - Cada hallazgo clasificado.
30
+ - Cada riesgo tipificado.
31
+ - Exclusion de package/version registrada.
32
+
33
+ ## Riesgos
34
+
35
+ Clasificar como codigo algo que deberia rehacerse como concepto.
36
+
37
+ ## Rollback
38
+
39
+ Revisar o descartar la matriz antes de autorizar implementacion.
@@ -0,0 +1,36 @@
1
+ {
2
+ "slice_id": "05-slice",
3
+ "slice_number": "05",
4
+ "title": "Parser y command registry",
5
+ "objective": "Planificar la recuperacion segura de parser y command registry como cambio transversal de alto riesgo.",
6
+ "problem": "Evita tratar parser/registry como refactor pequeno cuando afecta la entrada de toda la CLI.",
7
+ "value_outcome": "Plan tecnico futuro con compatibilidad total contra baseline, archivos candidatos/excluidos y rollback.",
8
+ "scope": {
9
+ "includes": ["Archivos candidatos", "Matriz de comandos afectados", "Gates de compatibilidad", "Aliases/flags/outputs", "Rollback"],
10
+ "excludes": ["Implementar parser", "Cambiar dispatch CLI", "Modificar package/version", "Eliminar comportamiento existente"]
11
+ },
12
+ "actors": ["Tech Lead", "Implementador futuro", "Reviewer", "Usuarios CLI"],
13
+ "preconditions": ["04-slice identifica parser/registry como candidato aprobado"],
14
+ "inputs": ["Matriz de extraccion", "Baseline", "Contrato de no regresion", "Diffs de rama fuente"],
15
+ "outputs": ["Plan tecnico para rama futura desde origin/main"],
16
+ "workflow": [
17
+ {"step": 1, "name": "Confirmar decision", "description": "Definir extraer codigo, concepto o rehacer."},
18
+ {"step": 2, "name": "Mapear comandos", "description": "Listar comandos afectados por parser."},
19
+ {"step": 3, "name": "Definir gates", "description": "Definir compatibilidad y validaciones."},
20
+ {"step": 4, "name": "Preparar rollback", "description": "Definir como revertir si falla."}
21
+ ],
22
+ "business_rules": ["Parser/registry es alto riesgo", "Aliases/flags/exit codes no desaparecen sin aprobacion", "JSON requiere contrato", "No mezclar con bump de version"],
23
+ "validations": ["Todos los comandos baseline mapeados", "Diferencias con motivo y mejora", "Rollback definido", "Package/version fuera"],
24
+ "error_cases": ["Comando sin baseline", "Alias no preservable", "Codigo viejo no encaja"],
25
+ "acceptance_criteria": ["No permite merge/cherry-pick amplio", "Cambio transversal reconocido", "Matriz por comando", "Package/version fuera", "Rollback definido"],
26
+ "dependencies": {
27
+ "functional": ["Baseline", "Contrato", "Matriz de extraccion"],
28
+ "technical": [],
29
+ "external": [],
30
+ "depends_on_slices": ["04-slice"]
31
+ },
32
+ "implementation_order": 5,
33
+ "slicing_rationale": "Parser/registry requiere plan dedicado porque su blast radius es toda la CLI.",
34
+ "risks": ["Compatibilidad total puede requerir tests adicionales"],
35
+ "open_questions": ["Extraer codigo exacto o reimplementar concepto?"]
36
+ }
@@ -0,0 +1,106 @@
1
+ # 05-slice - Parser y command registry
2
+
3
+ ## 1. Nombre del slice
4
+
5
+ Parser y command registry.
6
+
7
+ ## 2. Objetivo del slice
8
+
9
+ Planificar la recuperacion segura de parser y command registry como cambio transversal de alto riesgo.
10
+
11
+ ## 3. Problema puntual que resuelve
12
+
13
+ Evita tratar parser/registry como refactor pequeno cuando afecta la entrada de toda la CLI.
14
+
15
+ ## 4. Valor observable que entrega
16
+
17
+ Plan tecnico futuro con compatibilidad total contra baseline, archivos candidatos/excluidos y rollback.
18
+
19
+ ## 5. Alcance especifico
20
+
21
+ Planificacion de extraccion o rehacer de `command-registry` y `parser` sin implementacion.
22
+
23
+ ## 6. Que incluye
24
+
25
+ - Analisis de archivos candidatos.
26
+ - Matriz de comandos afectados.
27
+ - Gates de compatibilidad.
28
+ - Criterios para conservar aliases, flags y outputs.
29
+ - Rollback futuro.
30
+
31
+ ## 7. Que no incluye
32
+
33
+ - Implementar parser.
34
+ - Cambiar dispatch CLI.
35
+ - Modificar `package.json` o version.
36
+ - Eliminar comportamiento existente.
37
+
38
+ ## 8. Actores involucrados
39
+
40
+ Tech Lead, implementador futuro, reviewer y usuarios CLI.
41
+
42
+ ## 9. Precondiciones
43
+
44
+ `04-slice` debe identificar parser/registry como candidato con decision aprobada.
45
+
46
+ ## 10. Entradas necesarias
47
+
48
+ Matriz de extraccion, baseline, contrato de no regresion y diffs de rama fuente.
49
+
50
+ ## 11. Flujo operativo paso a paso
51
+
52
+ 1. Confirmar decision: extraer codigo, extraer concepto o rehacer.
53
+ 2. Listar comandos afectados por parser.
54
+ 3. Definir compatibilidad obligatoria.
55
+ 4. Excluir package/version.
56
+ 5. Definir validaciones por comando.
57
+ 6. Definir rollback.
58
+ 7. Preparar handoff para implementacion futura.
59
+
60
+ ## 12. Salidas esperadas
61
+
62
+ Plan tecnico listo para una rama futura desde `origin/main`.
63
+
64
+ ## 13. Reglas de negocio aplicables
65
+
66
+ - Parser/registry es alto riesgo.
67
+ - Ningun alias, flag o exit code puede desaparecer sin aprobacion.
68
+ - Cambios de salida JSON requieren contrato explicito.
69
+ - No se mezcla con bump de version.
70
+
71
+ ## 14. Validaciones
72
+
73
+ - Todos los comandos del baseline estan mapeados.
74
+ - Cada diferencia propuesta tiene motivo y mejora.
75
+ - Rollback definido.
76
+ - No hay archivos package/version en alcance.
77
+
78
+ ## 15. Manejo de errores o edge cases
79
+
80
+ - Si un comando no tiene baseline, parser queda bloqueado para ese comando.
81
+ - Si un alias no puede preservarse, requiere aprobacion.
82
+ - Si el codigo viejo no encaja, se rehace el concepto.
83
+
84
+ ## 16. Criterios de aceptacion
85
+
86
+ - El plan no permite merge/cherry-pick amplio.
87
+ - Parser/registry se tratan como cambio transversal.
88
+ - Existe matriz de compatibilidad por comando.
89
+ - Package/version quedan fuera.
90
+ - Rollback y evidencia estan definidos.
91
+
92
+ ## 17. Dependencias tecnicas, funcionales o externas
93
+
94
+ Baseline, contrato y matriz de extraccion.
95
+
96
+ ## 18. Depende de slices
97
+
98
+ `04-slice`.
99
+
100
+ ## 19. Riesgos / decisiones abiertas
101
+
102
+ La compatibilidad total puede requerir tests adicionales antes de implementar.
103
+
104
+ ## 20. Pendientes / preguntas abiertas
105
+
106
+ Definir si se extrae codigo exacto o se reimplementa concepto desde cero.
@@ -0,0 +1,84 @@
1
+ # CLOSURE_BRIEF - 05-slice
2
+
3
+ ## Resultado
4
+
5
+ Implementado con alcance minimo aprobado.
6
+
7
+ ## Evidencia
8
+
9
+ Plan de extraccion segura:
10
+
11
+ | Area | Decision | Restriccion |
12
+ |---|---|---|
13
+ | `command-registry.js` | Rehacer desde `origin/main`; no copiar literal de `QUIVER-46-49` | La rama candidata incluye `status`/`changelog` top-level; no habilitarlos |
14
+ | `parser.js` | Extraer como adaptador conservador sobre parser legacy | No introducir parser nuevo |
15
+ | Dispatch en `index.js` | Cambio minimo para imports y llamada al adapter | No cambiar validaciones ni dispatch |
16
+ | `parser-contract.test.js` | Tomar casos compatibles con baseline | Excluir casos que dependan de comandos no aprobados |
17
+ | `cli-contract.test.js` | Ajustes solo si reflejan baseline real | No adoptar expectativas viejas de rama |
18
+ | `ai.js` modularizado / `ai-core.js` | Fuera del slice | Alto riesgo por providers/lifecycle |
19
+ | Package/version | Excluido | No tocar en este slice |
20
+
21
+ Delta inspeccionado en rama fuente:
22
+
23
+ | Archivo | Estado | Tamano/riesgo |
24
+ |---|---|---|
25
+ | `src/create-quiver/lib/cli/command-registry.js` | Nuevo | 139 lineas; util como referencia, requiere reconstruccion |
26
+ | `src/create-quiver/lib/cli/parser.js` | Nuevo | 14 lineas; adapter sobre `legacyParseArgs` |
27
+ | `src/create-quiver/index.js` | Modificado | 726 lineas de diff; tocar solo minimo |
28
+ | `src/create-quiver/commands/ai.js` | Modificado masivo | Fuera del slice |
29
+ | `src/create-quiver/commands/ai-core.js` | Nuevo, 3443 lineas | Fuera del slice |
30
+ | `tests/commands/parser-contract.test.js` | Nuevo | Util como fuente de contratos filtrados |
31
+
32
+ Gate de compatibilidad para implementacion futura:
33
+
34
+ - Help global preserva comandos y shortcuts legacy.
35
+ - `help` y `--help` siguen equivalentes.
36
+ - `version` y `version --json` conservan contrato observado.
37
+ - Unknown command mantiene exit code no cero y hints de help/init/update.
38
+ - Cualquier comando sin baseline completo queda bloqueado o requiere baseline adicional.
39
+ - `config language show --json`, `slice`, `handoff`, `evidence list --json`, `init --dry-run`, `doctor --dry-run`, `ai status --json` y `spec status` conservan el contrato observado o requieren decision explicita.
40
+ - No aparecen `status` o `changelog` top-level como comandos nuevos.
41
+
42
+ Plan de implementacion futura aprobado por este cierre:
43
+
44
+ 1. Rama nueva creada desde `origin/main`: `feature/QUIVER-05-parser-command-registry`.
45
+ 2. `src/create-quiver/lib/cli/command-registry.js` creado con los sets existentes de `origin/main`.
46
+ 3. `src/create-quiver/lib/cli/parser.js` creado como adapter de `parseArgs`.
47
+ 4. `src/create-quiver/index.js` ajustado solo para importar registry/parser y delegar a `parseCliArgs` con `legacyParseArgs`.
48
+ 5. `tests/commands/parser-contract.test.js` agregado con contratos compatibles con baseline.
49
+ 6. Validaciones focalizadas ejecutadas y aprobadas.
50
+
51
+ Validaciones ejecutadas:
52
+
53
+ | Validacion | Resultado |
54
+ |---|---|
55
+ | `node --check src/create-quiver/index.js` | OK |
56
+ | `node --check src/create-quiver/lib/cli/command-registry.js` | OK |
57
+ | `node --check src/create-quiver/lib/cli/parser.js` | OK |
58
+ | `node --check tests/commands/parser-contract.test.js` | OK |
59
+ | `node --test tests/commands/parser-contract.test.js tests/commands/cli-contract.test.js` | OK, 17 tests passed |
60
+ | `node bin/create-quiver.js --help` | OK |
61
+ | `node bin/create-quiver.js help` | OK |
62
+ | `node bin/create-quiver.js version` | OK |
63
+ | `node bin/create-quiver.js version --json` | OK, JSON parseable |
64
+ | `node bin/create-quiver.js __unknown__` | OK, exit `1` |
65
+ | `node bin/create-quiver.js status --json` | OK, sigue unsupported, exit `1` |
66
+ | `node bin/create-quiver.js changelog` | OK, sigue unsupported, exit `1` |
67
+
68
+ ## Cambios de comportamiento
69
+
70
+ No se busca cambio funcional. La implementacion mueve constantes a registry y delega parsing al adapter legacy.
71
+
72
+ ## Regresiones detectadas
73
+
74
+ Ninguna en las validaciones focalizadas del slice.
75
+
76
+ ## Riesgos residuales
77
+
78
+ Parser/registry sigue siendo alto riesgo por blast radius total sobre CLI.
79
+
80
+ `ai status --json` conserva una ambiguedad detectada: en baseline emite salida humana. No corregir dentro de este slice.
81
+
82
+ ## Decision sobre ramas
83
+
84
+ Mantener `feature/QUIVER-46-49-cli-modernization` y su remoto como referencia hasta decidir si parser/registry se extraen como codigo o se rehacen.
@@ -0,0 +1,109 @@
1
+ # EXECUTION_BRIEF - 05-slice
2
+
3
+ ## Objetivo
4
+
5
+ Preparar la implementacion futura de parser/command registry como cambio transversal seguro, sin copiar el refactor masivo de `feature/QUIVER-46-49-cli-modernization`.
6
+
7
+ ## Base segura
8
+
9
+ La rama futura debe nacer desde `origin/main` @ `7bc234bbf96fb17d8c44863fac25430b59fc832e` o un SHA posterior verificado fresco.
10
+
11
+ No usar `main` local como base mientras siga divergida de `origin/main`.
12
+
13
+ ## Archivos candidatos
14
+
15
+ Permitidos en primera implementacion:
16
+
17
+ - `src/create-quiver/lib/cli/command-registry.js`
18
+ - `src/create-quiver/lib/cli/parser.js`
19
+ - `src/create-quiver/index.js`, solo para extraer constantes existentes e invocar el adaptador parser sin cambiar comportamiento.
20
+ - `tests/commands/parser-contract.test.js`, solo como suite nueva de contratos de parser.
21
+ - `tests/commands/cli-contract.test.js`, solo para ajustar expectativas al comportamiento real de `origin/main`, no al comportamiento viejo de la rama candidata.
22
+
23
+ ## Archivos excluidos
24
+
25
+ - `package.json`
26
+ - `package-lock.json`
27
+ - Version/release files
28
+ - Cambios de comandos no mapeados
29
+ - `src/create-quiver/commands/ai.js`
30
+ - `src/create-quiver/commands/ai-core.js`
31
+ - Cualquier split de comandos `ai/*`
32
+ - Wrappers top-level nuevos como `status` o `changelog`
33
+ - Docs generadas o templates, salvo que el cambio futuro demuestre que el help real ya cambio y se apruebe en `07-slice`
34
+
35
+ ## Funcionalidad existente afectada
36
+
37
+ Todos los comandos CLI pueden verse afectados por parser/dispatch.
38
+
39
+ ## Matriz antes/despues
40
+
41
+ Obligatoria por comando, alias, flag, help, JSON, exit code y side effect.
42
+
43
+ Baseline minimo que debe quedar igual:
44
+
45
+ | Area | Antes en `origin/main` | Despues permitido |
46
+ |---|---|---|
47
+ | `--help` / `help` | Ambos imprimen la misma referencia CLI | Igual, sin perder comandos ni aliases |
48
+ | `version` | Reporte humano `Quiver CLI: 0.15.3` sobre base actual | Igual salvo version si se implementa en base posterior |
49
+ | `version --json` | JSON con `version_schema_version`, `cli`, `runtime`, `package_manager`, `project` | Igual schema y campos |
50
+ | Unknown command | Exit `1`, stderr con unsupported command + hints | Igual contrato |
51
+ | `config language show --json` | JSON con `schema_version`, `language`, `source`, `requested_source`, `requested_language`, `warnings` | Igual contrato |
52
+ | `slice` sin subcomando | Exit `1`, lista subcomandos soportados | Igual contrato |
53
+ | `handoff` sin subcomando | Exit `1`, lista subcomandos soportados | Igual contrato |
54
+ | `evidence list --json` | JSON `{ "evidence": [] }` cuando no hay evidencia | Igual contrato |
55
+ | `init --dry-run` | Plan sin escribir en el repo | Igual contrato dry-run |
56
+ | `ai status --json` | Actualmente salida humana en estado sin run | No corregir ni cambiar sin decision explicita |
57
+
58
+ ## Validaciones
59
+
60
+ - Compatibilidad total contra baseline.
61
+ - No se pierden aliases ni flags.
62
+ - Rollback definido antes de implementar.
63
+ - `parser.js` debe seguir usando el parser legacy como adapter durante esta etapa.
64
+ - `command-registry.js` debe reconstruirse desde `origin/main`, no copiarse tal cual desde `QUIVER-46-49`.
65
+ - `HELP_OPTION_SCOPES` puede extraerse como metadata solo si no cambia texto publico sin aprobacion.
66
+
67
+ ## Riesgos
68
+
69
+ Regresion transversal silenciosa.
70
+
71
+ Riesgos especificos detectados:
72
+
73
+ - `feature/QUIVER-46-49-cli-modernization` cambia `7` archivos clave con `4235` inserciones y `3755` eliminaciones en el area parser/CLI.
74
+ - El `command-registry.js` candidato incluye comandos top-level `status` y `changelog`; no deben habilitarse en este slice.
75
+ - El split `ai-core.js` tiene `3443` lineas nuevas; queda fuera para evitar mezclar parser con modularizacion AI.
76
+ - El test candidato `parser-contract.test.js` contiene casos utiles, pero algunos dependen de comportamiento de rama (`status` top-level) que no pertenece al baseline actual.
77
+
78
+ ## Rollback
79
+
80
+ Revertir los archivos candidatos al estado previo de `origin/main` y validar:
81
+
82
+ - `node bin/create-quiver.js --help`
83
+ - `node bin/create-quiver.js help`
84
+ - `node bin/create-quiver.js version`
85
+ - `node bin/create-quiver.js version --json`
86
+ - `node bin/create-quiver.js __unknown__`
87
+ - `node bin/create-quiver.js config language show --json`
88
+ - `node bin/create-quiver.js slice`
89
+ - `node bin/create-quiver.js handoff`
90
+ - `node bin/create-quiver.js evidence list --json`
91
+
92
+ ## Decision tecnica exacta
93
+
94
+ Implementar en una rama futura como migracion conservadora:
95
+
96
+ 1. Crear `command-registry.js` nuevo, pero poblarlo con los sets actuales de `origin/main`, no con la lista literal de `QUIVER-46-49`.
97
+ 2. Crear `parser.js` como adaptador de `parseArgs`, equivalente al candidato de rama, sin introducir parser nuevo.
98
+ 3. Cambiar `index.js` solo para importar los sets desde `command-registry.js` y llamar `parseCliArgs(..., { legacyParseArgs: parseArgs })`.
99
+ 4. No cambiar logica de parsing, validaciones, dispatch ni comandos.
100
+ 5. Agregar tests de contrato seleccionados del candidato, filtrando casos que dependan de comandos no aprobados.
101
+ 6. No tocar `ai.js`, `ai-core.js`, wrappers, docs, package ni version.
102
+
103
+ ## Criterio de salida para aprobar implementacion futura
104
+
105
+ - Diff acotado a archivos candidatos.
106
+ - Help global sin perdida de comandos.
107
+ - Contratos basicos de baseline preservados.
108
+ - Tests nuevos solo pinnean comportamiento existente o riesgos aprobados.
109
+ - No aparecen `status` o `changelog` top-level como comandos nuevos.
@@ -0,0 +1,36 @@
1
+ {
2
+ "slice_id": "06-slice",
3
+ "slice_number": "06",
4
+ "title": "Extraccion de comandos y wrappers",
5
+ "objective": "Planificar extracciones futuras de comandos/wrappers sin perder comportamiento existente.",
6
+ "problem": "Evita incorporar wrappers desde ramas viejas sin explicar que comando cambian y por que mejora.",
7
+ "value_outcome": "Plan por comando con matriz antes/despues, archivos candidatos, exclusiones y validaciones.",
8
+ "scope": {
9
+ "includes": ["Comandos candidatos", "Estado actual", "Cambio propuesto", "Motivo", "Mejora verificable", "Validacion", "Rollback"],
10
+ "excludes": ["Implementar comandos", "Eliminar aliases", "Cambiar parser global sin 05-slice", "Modificar package/version"]
11
+ },
12
+ "actors": ["Tech Lead", "Usuarios CLI", "Reviewer", "Implementador futuro"],
13
+ "preconditions": ["Baseline aprobado", "Contrato aprobado", "Matriz de extraccion aprobada"],
14
+ "inputs": ["Matriz de extraccion", "Baseline de comandos", "Diffs de ramas fuente"],
15
+ "outputs": ["Backlog de comandos con planes independientes"],
16
+ "workflow": [
17
+ {"step": 1, "name": "Seleccionar comando", "description": "Elegir un comando candidato."},
18
+ {"step": 2, "name": "Registrar antes/despues", "description": "Documentar comportamiento actual y cambio propuesto."},
19
+ {"step": 3, "name": "Definir validacion", "description": "Definir evidencia esperada y rollback."},
20
+ {"step": 4, "name": "Repetir", "description": "Repetir por comando sin mezclar responsabilidades."}
21
+ ],
22
+ "business_rules": ["Comando no cambia sin antes/despues", "Mejora verificable", "JSON/exit code/side effect requiere aprobacion", "No eliminar aliases/flags sin aprobacion"],
23
+ "validations": ["Matriz completa por comando", "Motivo y mejora", "Rollback", "Sin scope creep"],
24
+ "error_cases": ["Comando nuevo colisiona", "Comando existente con otro comportamiento", "Dependencia de parser"],
25
+ "acceptance_criteria": ["Plan individual por comando", "Sin perdida funcional sin aprobacion", "Salidas justificadas", "Package/version fuera", "Rollback definido"],
26
+ "dependencies": {
27
+ "functional": ["Baseline", "Matriz de extraccion"],
28
+ "technical": [],
29
+ "external": [],
30
+ "depends_on_slices": ["04-slice"]
31
+ },
32
+ "implementation_order": 6,
33
+ "slicing_rationale": "Separar comandos evita fixes parciales y reduce blast radius.",
34
+ "risks": ["Wrappers duplican comandos existentes o cambian UX"],
35
+ "open_questions": ["Orden exacto de comandos segun valor y riesgo"]
36
+ }
@@ -0,0 +1,107 @@
1
+ # 06-slice - Extraccion de comandos y wrappers
2
+
3
+ ## 1. Nombre del slice
4
+
5
+ Extraccion de comandos y wrappers.
6
+
7
+ ## 2. Objetivo del slice
8
+
9
+ Planificar extracciones futuras de comandos/wrappers sin perder comportamiento existente.
10
+
11
+ ## 3. Problema puntual que resuelve
12
+
13
+ Evita incorporar wrappers desde ramas viejas sin explicar que comando cambian y por que mejora.
14
+
15
+ ## 4. Valor observable que entrega
16
+
17
+ Plan por comando con matriz antes/despues, archivos candidatos, exclusiones y validaciones.
18
+
19
+ ## 5. Alcance especifico
20
+
21
+ Planificacion de comandos como `status`, `changelog`, `doctor`, `handoff`, `slice`, `init` y otros candidatos.
22
+
23
+ ## 6. Que incluye
24
+
25
+ - Lista de comandos candidatos.
26
+ - Estado actual de cada comando.
27
+ - Cambio propuesto.
28
+ - Motivo y mejora verificable.
29
+ - Validacion por comando.
30
+ - Rollback por comando.
31
+
32
+ ## 7. Que no incluye
33
+
34
+ - Implementar comandos.
35
+ - Eliminar aliases.
36
+ - Cambiar parser global sin `05-slice`.
37
+ - Modificar package/version.
38
+
39
+ ## 8. Actores involucrados
40
+
41
+ Tech Lead, usuarios CLI, reviewer e implementador futuro.
42
+
43
+ ## 9. Precondiciones
44
+
45
+ Baseline, contrato y matriz de extraccion aprobados.
46
+
47
+ ## 10. Entradas necesarias
48
+
49
+ Matriz de extraccion, baseline de comandos y diffs de ramas fuente.
50
+
51
+ ## 11. Flujo operativo paso a paso
52
+
53
+ 1. Seleccionar un comando candidato.
54
+ 2. Registrar comportamiento actual.
55
+ 3. Describir cambio propuesto y mejora.
56
+ 4. Definir archivos candidatos y excluidos.
57
+ 5. Definir validaciones.
58
+ 6. Definir rollback.
59
+ 7. Repetir por comando sin mezclar responsabilidades.
60
+
61
+ ## 12. Salidas esperadas
62
+
63
+ Backlog de comandos con planes implementables independientes.
64
+
65
+ ## 13. Reglas de negocio aplicables
66
+
67
+ - Un comando no puede cambiar sin antes/despues.
68
+ - Mejoras deben ser verificables.
69
+ - Si cambia JSON, exit code o side effect, requiere aprobacion explicita.
70
+ - No se eliminan aliases ni flags sin aprobacion.
71
+
72
+ ## 14. Validaciones
73
+
74
+ - Cada comando tiene matriz completa.
75
+ - Cada cambio tiene motivo y mejora.
76
+ - Cada comando tiene rollback.
77
+ - No hay scope creep entre comandos.
78
+
79
+ ## 15. Manejo de errores o edge cases
80
+
81
+ - Si el comando no existe hoy, documentar como nuevo y validar que no colisiona.
82
+ - Si ya existe con otro comportamiento, requerir compatibilidad o aprobacion.
83
+ - Si depende de parser, bloquear hasta `05-slice`.
84
+
85
+ ## 16. Criterios de aceptacion
86
+
87
+ - Cada comando candidato tiene plan individual.
88
+ - Ningun comportamiento existente desaparece sin aprobacion.
89
+ - Cambios de salida estan justificados y validados.
90
+ - Package/version fuera del alcance.
91
+ - Rollback por comando definido.
92
+
93
+ ## 17. Dependencias tecnicas, funcionales o externas
94
+
95
+ Baseline y matriz de extraccion.
96
+
97
+ ## 18. Depende de slices
98
+
99
+ `04-slice`; puede depender de `05-slice` si el comando requiere parser nuevo.
100
+
101
+ ## 19. Riesgos / decisiones abiertas
102
+
103
+ Algunos wrappers pueden duplicar comandos existentes o cambiar UX.
104
+
105
+ ## 20. Pendientes / preguntas abiertas
106
+
107
+ Definir orden exacto de comandos segun valor y riesgo.