@tacuchi/agent-workflow-cli 6.1.0 → 7.0.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 (191) hide show
  1. package/README.md +65 -12
  2. package/dist/application/profile/profile-service.d.ts +53 -0
  3. package/dist/application/profile/profile-service.d.ts.map +1 -0
  4. package/dist/application/profile/profile-service.js +210 -0
  5. package/dist/application/profile/profile-service.js.map +1 -0
  6. package/dist/application/render/history-row.d.ts.map +1 -1
  7. package/dist/application/render/history-row.js +5 -0
  8. package/dist/application/render/history-row.js.map +1 -1
  9. package/dist/application/self/bootstrap.js +2 -1
  10. package/dist/application/self/bootstrap.js.map +1 -1
  11. package/dist/application/self/detect-hosts.d.ts +18 -0
  12. package/dist/application/self/detect-hosts.d.ts.map +1 -0
  13. package/dist/application/self/detect-hosts.js +37 -0
  14. package/dist/application/self/detect-hosts.js.map +1 -0
  15. package/dist/application/self/install-hooks.d.ts +30 -0
  16. package/dist/application/self/install-hooks.d.ts.map +1 -0
  17. package/dist/application/self/install-hooks.js +253 -0
  18. package/dist/application/self/install-hooks.js.map +1 -0
  19. package/dist/application/self/install-skill.d.ts +2 -0
  20. package/dist/application/self/install-skill.d.ts.map +1 -1
  21. package/dist/application/self/install-skill.js +69 -3
  22. package/dist/application/self/install-skill.js.map +1 -1
  23. package/dist/application/session-close-service.d.ts +10 -0
  24. package/dist/application/session-close-service.d.ts.map +1 -1
  25. package/dist/application/session-close-service.js +87 -10
  26. package/dist/application/session-close-service.js.map +1 -1
  27. package/dist/cli/commands/self.d.ts.map +1 -1
  28. package/dist/cli/commands/self.js +9 -1
  29. package/dist/cli/commands/self.js.map +1 -1
  30. package/dist/cli/commands/session-close.d.ts.map +1 -1
  31. package/dist/cli/commands/session-close.js +11 -0
  32. package/dist/cli/commands/session-close.js.map +1 -1
  33. package/dist/cli/tui/tabs/skills-tab.d.ts.map +1 -1
  34. package/dist/cli/tui/tabs/skills-tab.js +100 -24
  35. package/dist/cli/tui/tabs/skills-tab.js.map +1 -1
  36. package/package.json +2 -2
  37. package/skills/agent-workflow/commands/README.md +24 -0
  38. package/skills/agent-workflow/commands/agent-workflow-compact.md +24 -0
  39. package/skills/agent-workflow/commands/agent-workflow-doctor.md +100 -0
  40. package/skills/agent-workflow/commands/agent-workflow-export-arq.md +77 -0
  41. package/skills/agent-workflow/commands/agent-workflow-export-conclusions.md +78 -0
  42. package/skills/agent-workflow/commands/agent-workflow-export-plan.md +74 -0
  43. package/skills/agent-workflow/commands/agent-workflow-export-qa-note.md +30 -0
  44. package/skills/agent-workflow/commands/agent-workflow-export-report.md +78 -0
  45. package/skills/agent-workflow/commands/agent-workflow-export-requirement.md +30 -0
  46. package/skills/agent-workflow/commands/agent-workflow-export-scripts.md +92 -0
  47. package/skills/agent-workflow/commands/agent-workflow-export-tech-manuals.md +75 -0
  48. package/skills/agent-workflow/commands/agent-workflow-export-tech-note.md +30 -0
  49. package/skills/agent-workflow/commands/agent-workflow-hub-init.md +82 -0
  50. package/skills/agent-workflow/commands/agent-workflow-migrate.md +56 -0
  51. package/skills/agent-workflow/commands/agent-workflow-project-init.md +60 -0
  52. package/skills/agent-workflow/commands/agent-workflow-resume.md +22 -0
  53. package/skills/agent-workflow/commands/agent-workflow-rules.md +40 -0
  54. package/skills/agent-workflow/commands/agent-workflow-session.md +35 -0
  55. package/skills/agent-workflow/doctrine/README.md +15 -0
  56. package/skills/agent-workflow/doctrine/compact/SKILL.md +145 -0
  57. package/skills/agent-workflow/doctrine/doctor/SKILL.md +86 -0
  58. package/skills/agent-workflow/doctrine/doctor/SKILL.md.tmp +0 -0
  59. package/skills/agent-workflow/doctrine/hub-init/SKILL.md +157 -0
  60. package/skills/agent-workflow/doctrine/hub-init/SKILL.md.tmp +0 -0
  61. package/skills/agent-workflow/doctrine/hub-init/references/multiroot-manual.md +51 -0
  62. package/skills/agent-workflow/doctrine/implement/SKILL.md +290 -0
  63. package/skills/agent-workflow/doctrine/implement/references/branch-verification.md +16 -0
  64. package/skills/agent-workflow/doctrine/implement/references/design-md-template.md +108 -0
  65. package/skills/agent-workflow/doctrine/implement/references/rollback-guide.md +81 -0
  66. package/skills/agent-workflow/doctrine/migrate/SKILL.md +281 -0
  67. package/skills/agent-workflow/doctrine/migrate/SKILL.md.tmp +0 -0
  68. package/skills/agent-workflow/doctrine/project-init/SKILL.md +100 -0
  69. package/skills/agent-workflow/doctrine/project-init/SKILL.md.tmp +0 -0
  70. package/skills/agent-workflow/doctrine/refactor/SKILL.md +208 -0
  71. package/skills/agent-workflow/doctrine/refactor/references/refactor-md-template.md +108 -0
  72. package/skills/agent-workflow/doctrine/refactor/references/strangler-checklist.md +116 -0
  73. package/skills/agent-workflow/doctrine/resume/SKILL.md +199 -0
  74. package/skills/agent-workflow/doctrine/rules/SKILL.md +224 -0
  75. package/skills/agent-workflow/doctrine/rules/SKILL.md.tmp +0 -0
  76. package/skills/agent-workflow/doctrine/session/SKILL.md +383 -0
  77. package/skills/agent-workflow/doctrine/session/references/auto-plan-rules.md +63 -0
  78. package/skills/agent-workflow/doctrine/session/references/backlog-template.md +95 -0
  79. package/skills/agent-workflow/doctrine/session/references/branch-verification.md +198 -0
  80. package/skills/agent-workflow/doctrine/session/references/commits-policy.md +111 -0
  81. package/skills/agent-workflow/doctrine/session/references/communication-style.md +50 -0
  82. package/skills/agent-workflow/doctrine/session/references/graduacion-routing.md +88 -0
  83. package/skills/agent-workflow/doctrine/session/references/lifecycle-deep.md +160 -0
  84. package/skills/agent-workflow/doctrine/session/references/prompts/C1-specialty-selection.md +11 -0
  85. package/skills/agent-workflow/doctrine/session/references/prompts/C2-cost-guard.md +14 -0
  86. package/skills/agent-workflow/doctrine/session/references/prompts/M1-closure-commit-prompt.md +104 -0
  87. package/skills/agent-workflow/doctrine/session/references/prompts/M10-next-step.md +17 -0
  88. package/skills/agent-workflow/doctrine/session/references/prompts/M11-context.md +16 -0
  89. package/skills/agent-workflow/doctrine/session/references/prompts/M2-branch-caso-A.md +14 -0
  90. package/skills/agent-workflow/doctrine/session/references/prompts/M3-branch-caso-C.md +33 -0
  91. package/skills/agent-workflow/doctrine/session/references/prompts/M4-cross-source-hard-gate.md +33 -0
  92. package/skills/agent-workflow/doctrine/session/references/prompts/M5-modality-analyze.md +15 -0
  93. package/skills/agent-workflow/doctrine/session/references/prompts/M6-phase-gate.md +31 -0
  94. package/skills/agent-workflow/doctrine/session/references/prompts/M7-refactor-legacy-detected.md +28 -0
  95. package/skills/agent-workflow/doctrine/session/references/prompts/M8-refactor-cleanup.md +16 -0
  96. package/skills/agent-workflow/doctrine/session/references/prompts/M9-contract-review.md +39 -0
  97. package/skills/agent-workflow/doctrine/session/references/prompts/S1-type-design.md +15 -0
  98. package/skills/agent-workflow/doctrine/session/references/prompts/S2-topic-change-detection.md +14 -0
  99. package/skills/agent-workflow/doctrine/session/references/prompts/S3-flow-detection.md +28 -0
  100. package/skills/agent-workflow/doctrine/session/references/prompts/S4-resume.md +27 -0
  101. package/skills/agent-workflow/doctrine/session/references/prompts/S5-post-compact.md +17 -0
  102. package/skills/agent-workflow/doctrine/session/references/prompts/S6-scope.md +16 -0
  103. package/skills/agent-workflow/doctrine/session/references/prompts/S7-design-review.md +37 -0
  104. package/skills/agent-workflow/doctrine/session/references/prompts-catalog.md +210 -0
  105. package/skills/agent-workflow/doctrine/session/references/sandbox-readonly-rules.md +82 -0
  106. package/skills/agent-workflow/doctrine/session/references/specialty-decision-tree.md +56 -0
  107. package/skills/agent-workflow/doctrine/session/references/topic-change-rules.md +67 -0
  108. package/skills/agent-workflow/exports/README.md +15 -0
  109. package/skills/agent-workflow/exports/export-arq/SKILL.md +229 -0
  110. package/skills/agent-workflow/exports/export-arq/SKILL.md.tmp +0 -0
  111. package/skills/agent-workflow/exports/export-arq/references/lexico-tecnico.md +94 -0
  112. package/skills/agent-workflow/exports/export-arq/references/template-c4.md +293 -0
  113. package/skills/agent-workflow/exports/export-arq/references/template-plantuml.puml +77 -0
  114. package/skills/agent-workflow/exports/export-arq/references/template-structurizr.dsl +72 -0
  115. package/skills/agent-workflow/exports/export-arq/references/validations.md +231 -0
  116. package/skills/agent-workflow/exports/export-conclusions/SKILL.md +169 -0
  117. package/skills/agent-workflow/exports/export-conclusions/references/dedup-rules.md +154 -0
  118. package/skills/agent-workflow/exports/export-conclusions/references/template-conclusions.md +158 -0
  119. package/skills/agent-workflow/exports/export-plan/SKILL.md +225 -0
  120. package/skills/agent-workflow/exports/export-plan/references/state-transitions.md +141 -0
  121. package/skills/agent-workflow/exports/export-plan/references/template-plan.md +132 -0
  122. package/skills/agent-workflow/exports/export-qa-note/SKILL.md +31 -0
  123. package/skills/agent-workflow/exports/export-report/SKILL.md +262 -0
  124. package/skills/agent-workflow/exports/export-report/SKILL.md.tmp +0 -0
  125. package/skills/agent-workflow/exports/export-report/references/lexico.md +174 -0
  126. package/skills/agent-workflow/exports/export-report/references/template-a.md +95 -0
  127. package/skills/agent-workflow/exports/export-report/references/template-b.md +221 -0
  128. package/skills/agent-workflow/exports/export-report/references/template-c.md +180 -0
  129. package/skills/agent-workflow/exports/export-report/references/validations.md +255 -0
  130. package/skills/agent-workflow/exports/export-requirement/SKILL.md +31 -0
  131. package/skills/agent-workflow/exports/export-scripts/SKILL.md +324 -0
  132. package/skills/agent-workflow/exports/export-scripts/references/code-scan-recommendations.md +83 -0
  133. package/skills/agent-workflow/exports/export-scripts/references/deprecation-plan.md +80 -0
  134. package/skills/agent-workflow/exports/export-scripts/references/lexico-tecnico.md +80 -0
  135. package/skills/agent-workflow/exports/export-scripts/references/manifest-template.md +253 -0
  136. package/skills/agent-workflow/exports/export-scripts/references/readme-template.md +79 -0
  137. package/skills/agent-workflow/exports/export-scripts/references/theme-handling.md +168 -0
  138. package/skills/agent-workflow/exports/export-scripts/references/validations.md +242 -0
  139. package/skills/agent-workflow/exports/export-tech-manuals/SKILL.md +214 -0
  140. package/skills/agent-workflow/exports/export-tech-manuals/references/lexico-tecnico.md +97 -0
  141. package/skills/agent-workflow/exports/export-tech-manuals/references/template-index.md +123 -0
  142. package/skills/agent-workflow/exports/export-tech-manuals/references/template-manual.md +143 -0
  143. package/skills/agent-workflow/exports/export-tech-manuals/references/validations.md +211 -0
  144. package/skills/agent-workflow/exports/export-tech-note/SKILL.md +31 -0
  145. package/skills/agent-workflow/hooks/README.md +15 -0
  146. package/skills/agent-workflow/hooks/hooks.template.json +90 -0
  147. package/skills/agent-workflow/references/README.md +12 -0
  148. package/skills/agent-workflow/references/legacy-anchors.md +50 -0
  149. package/skills/agent-workflow/references/profile-parametrization.md +88 -0
  150. package/skills/agent-workflow/specialties/README.md +14 -0
  151. package/skills/agent-workflow/specialties/analyze-conclude/SKILL.md +175 -0
  152. package/skills/agent-workflow/specialties/analyze-conclude/references/incident-classification.md +61 -0
  153. package/skills/agent-workflow/specialties/analyze-investigate/SKILL.md +148 -0
  154. package/skills/agent-workflow/specialties/analyze-investigate/SKILL.md.tmp +0 -0
  155. package/skills/agent-workflow/specialties/analyze-investigate/references/cost-guard.md +85 -0
  156. package/skills/agent-workflow/specialties/analyze-synthesize/SKILL.md +127 -0
  157. package/skills/agent-workflow/specialties/design-brief/SKILL.md +90 -0
  158. package/skills/agent-workflow/specialties/design-deliver/SKILL.md +121 -0
  159. package/skills/agent-workflow/specialties/design-develop/SKILL.md +115 -0
  160. package/skills/agent-workflow/specialties/design-discover/SKILL.md +103 -0
  161. package/skills/agent-workflow/standards/README.md +12 -0
  162. package/skills/agent-workflow/standards/coding-standards/SKILL.md +102 -0
  163. package/skills/agent-workflow/standards/coding-standards/SKILL.md.tmp +0 -0
  164. package/skills/agent-workflow/standards/coding-standards/references/angular-typescript.md +266 -0
  165. package/skills/agent-workflow/standards/coding-standards/references/database-conventions.md +170 -0
  166. package/skills/agent-workflow/standards/coding-standards/references/fe-be-integration.md +300 -0
  167. package/skills/agent-workflow/standards/coding-standards/references/frontend-structure.md +182 -0
  168. package/skills/agent-workflow/standards/coding-standards/references/java-spring.md +244 -0
  169. package/skills/agent-workflow/standards/coding-standards/references/project-structure.md +197 -0
  170. package/skills/agent-workflow/standards/frontend-design/SKILL.md +62 -0
  171. package/skills/agent-workflow/standards/frontend-design/references/feedback-toasts-patterns.md +249 -0
  172. package/skills/agent-workflow/standards/frontend-design/references/form-patterns.md +278 -0
  173. package/skills/agent-workflow/standards/frontend-design/references/list-patterns.md +256 -0
  174. package/skills/agent-workflow/standards/frontend-design/references/modal-patterns.md +220 -0
  175. package/skills/agent-workflow/standards/frontend-design/references/navigation-patterns.md +224 -0
  176. package/skills/agent-workflow/standards/redaccion-simple/SKILL.md +128 -0
  177. package/skills/agent-workflow/standards/sql-rollback-generator/SKILL.md +197 -0
  178. package/skills/agent-workflow/standards/sql-rollback-generator/references/irreversible-checklist.md +161 -0
  179. package/skills/agent-workflow/standards/sql-rollback-generator/references/release-rollback.md +131 -0
  180. package/skills/agent-workflow/standards/sql-rollback-generator/references/rollback-patterns.md +255 -0
  181. package/skills/agent-workflow/standards/sql-script-organizer/SKILL.md +244 -0
  182. package/skills/agent-workflow/standards/sql-script-organizer/references/bundle-readme-template.md +82 -0
  183. package/skills/agent-workflow/standards/sql-script-organizer/references/categorization-rules.md +122 -0
  184. package/skills/agent-workflow/standards/sql-script-organizer/references/consolidation-cross-session.md +125 -0
  185. package/skills/agent-workflow/standards/sql-script-organizer/references/scripts-sql-format.md +140 -0
  186. package/skills/agent-workflow/standards/testing-strategy/SKILL.md +113 -0
  187. package/skills/agent-workflow/standards/testing-strategy/references/test-levels.md +255 -0
  188. package/skills/agent-workflow/workflows/README.md +12 -0
  189. package/skills/agent-workflow/workflows/analyze-workflow/SKILL.md +107 -0
  190. package/skills/agent-workflow/workflows/design-workflow/SKILL.md +100 -0
  191. package/skills/agent-workflow/workflows/dev-workflow/SKILL.md +195 -0
@@ -0,0 +1,383 @@
1
+ ---
2
+ name: session
3
+ description: Lifecycle universal de sesiones qtc-* en 4 fases (planning/execution/validation/closure). Crea, retoma, lista o cierra sesiones componiendo skills de especialidad según el flow elegido (dev/design/analyze). Auto-plan antes de editar código. Topic-change detection en execution. Closure propone commits por fuente afectada (propose-then-execute). Invocado solo vía /agent-workflow:session.
4
+ version: 4.3.0
5
+ ---
6
+
7
+ # Session — Lifecycle universal qtc-* v3.0
8
+
9
+ Skill **único** y **universal** para el ciclo de vida de sesiones de toda la familia qtc-*. Vive en agent-workflow; los flow plugins son especialistas standalone vía `/agent-workflow:use` y declaran su comportamiento como workflow consumido por este skill.
10
+
11
+ ## Cuándo se invoca
12
+
13
+ - `/agent-workflow:session [create|resume|close|list] [args]` — entry point **único** del lifecycle.
14
+
15
+ Los flows (`dev`, `design`, `analyze`) son agrupaciones de skills de especialidad **dentro de `agent-workflow`** — no son repos/plugins separados desde la consolidación de v2.0.0. El único entry point del lifecycle es `/agent-workflow:session`; las especialidades se invocan internamente por composición.
16
+
17
+ ## Resolución de intención
18
+
19
+ Evaluar `$ARGUMENTS`:
20
+
21
+ 1. `close` → flujo de cierre.
22
+ 2. `list` → flujo de listado.
23
+ 3. Matchea `sessionXXX` o `XXX` (3 dígitos) → retomar.
24
+ 4. Texto descriptivo → crear.
25
+ 5. Sin args:
26
+ - Sin sesiones activas → preguntar y crear.
27
+ - Una activa → retomar automático.
28
+ - ≥2 activas → disparar `AskUserQuestion` con spec de S4 (`references/prompts-catalog.md#S4`). Header `resume`, ≤4 opciones (top-3 sesiones por última actividad + "Abrir nueva"). Other auto = nombre de sesión custom. Preview opcional con tabla `code · phase · last-activity · open-tasks`. NO narrar la pregunta en texto plano.
29
+
30
+ Una sesión está **activa** si aparece en `AW-PROJECT.Status.Sesiones activas`.
31
+
32
+ ## Crear nueva sesión
33
+
34
+ ### 1. Verificar AW-PROJECT
35
+
36
+ ```
37
+ agent-workflow project-md-upsert --read
38
+ ```
39
+
40
+ Si falta → proponer `/agent-workflow:project-init` (single-repo) o `/agent-workflow:hub-init` (multi-repo) y detener.
41
+
42
+ ### 2. Detectar flow
43
+
44
+ Resolver el flow desde el texto del comando o del OBJECTIVE.md:
45
+
46
+ 1. **Heurística por keywords**:
47
+ - `implementar`/`refactor`/`bugfix`/`SQL`/`endpoint`/`API`/`script` → flow=`dev`.
48
+ - `mockup`/`UI`/`UX`/`pantalla`/`wireframe`/`spec`/`flujo de pantalla` → flow=`design`.
49
+ - `investigar`/`propuesta`/`post-mortem`/`auditar`/`analizar`/`evidencia` → flow=`analyze`.
50
+ 2. **Fallback S3** (si la heurística no resuelve o el texto es ambiguo): disparar `AskUserQuestion` con spec de S3 (`references/prompts-catalog.md#S3`). Header `flow`, 4 opciones (dev/design/analyze/no estoy seguro). NO narrar la pregunta en texto plano.
51
+ 3. **Override explícito**: si el usuario pasa `--flow <dev|design|analyze>` en `$ARGUMENTS`, usarlo directamente y saltar heurística/S3.
52
+
53
+ ### 3. Cargar workflow del flow
54
+
55
+ ```
56
+ agent-workflow workflows --flow <flow>
57
+ ```
58
+
59
+ Output: `session_args` (ej. `--tipo`/`--modalidad`), `artifacts_by_phase`, `skills_by_phase`, `refs_format`, `resume_counters`.
60
+
61
+ ### 4. Capturar OBJECTIVE + args + handoff opcional + plan opcional
62
+
63
+ - Slug kebab-case (≤4 palabras), brief, criterios de aceptación, ramas por fuente.
64
+ - Args declarados en `session_args` del workflow.
65
+ - Handoff opcional `--from <flow>:<code>`: precarga `## Origin` en OBJECTIVE + tag `origen:` en HISTORY refs.
66
+ - **Plan opcional `--from-plan <NNN|path>` (F-E.3)**: si el usuario arranca desde un plan generado por `/agent-workflow:export-plan`:
67
+ - Acepta NNN (busca en `<docs>/planes/NNN-*.md`) o path absoluto/relativo.
68
+ - Lee frontmatter YAML + `## Resumen` del plan. Si `--objetivo` está vacío, lo deriva del Resumen.
69
+ - Append a OBJECTIVE.md: `## Origin (plan)` con referencia al plan y `sessions:` del frontmatter.
70
+ - Transición del plan: si `state == draft` → `active` con entry append-only en `state_changes[]` (canon en `agent-workflow/skills/export-plan/references/state-transitions.md`).
71
+ - Idempotente: si `state == active`, no-op silencioso.
72
+ - Errores claros: `PLAN_NOT_FOUND`, `PLAN_ARCHIVED`, `PLAN_INVALID_FRONTMATTER`.
73
+ - Si el plan está en `state: done`: ejecutar igualmente (caller puede querer abrir sesión follow-up); no transitiona automáticamente.
74
+ - **Tasks heredadas**: el AI puede leer manualmente la tabla `## Tasks` del plan y trasladarla a TASKS.md de la sesión nueva como base. Esta extracción NO la hace el CLI; queda al AI siguiendo la doctrina del skill.
75
+
76
+ ### 5. Crear
77
+
78
+ ```
79
+ agent-workflow session-create --flow <flow> --name <slug> --objetivo "<texto>" --branches alias:rama,…
80
+ # opcionalmente:
81
+ agent-workflow session-create --flow <flow> --name <slug> --from-plan <NNN|path> --branches alias:rama,…
82
+ ```
83
+
84
+ Crea `.workflow/sessions/sessionNNN-<flow>-<slug>/`, escribe OBJECTIVE.md (legacy ES: OBJETIVO.md), agrega fila `active` en HISTORY, registra en AW-PROJECT.Status. Si se pasó `--from-plan`, el output incluye `plan_transition: {plan, from, to}` para trazabilidad.
85
+
86
+ ### 6. Verificar ramas (proactivo, gate de avance)
87
+
88
+ Aplicar el **bloque común de verificación** descrito abajo en "Verificación interactiva de ramas". El AI **debe** presentar conflictos al usuario y esperar decisión antes de avanzar a fase planning. Sin confirmación explícita, no se ejecuta ningún `git checkout / stash / reset`.
89
+
90
+ ### 7. Entrar a fase planning
91
+
92
+ ## Las 4 fases
93
+
94
+ ```
95
+ planning → execution → validation → closure
96
+ ↑ ↓
97
+ └───────────┘
98
+ ```
99
+
100
+ | Fase | Qué pasa | Skills típicas | Artefactos |
101
+ |---|---|---|---|
102
+ | **planning** | OBJECTIVE + TASKS. Auto-plan decide skip/lite/full. | `analyze-synthesize`, opcional `design-brief` | OBJECTIVE.md, TASKS.md |
103
+ | **execution** | El trabajo. AI compone especialidades. Topic-change detection. | `implement` + `coding-standards` + `sql-script-organizer` + `analyze-investigate` + `design-deliver` | DECISIONS.md, scripts/, DELIVERY.md, EVIDENCE.md, FINDINGS.md, CONCLUSIONS.md |
104
+ | **validation** | Verifica criterios. Tests si aplica. | `testing-strategy`, `coding-standards` review | logs, marcado en TASKS |
105
+ | **closure** | Graduate (6 kinds) + compact automático. | `compact` (auto-disparado) | docs/decisiones/, docs/manuales/, docs/especificaciones/, docs/scripts/, docs/conclusiones/, docs/release/ + CHECKPOINT.md |
106
+
107
+ ### Fase 1 — planning
108
+
109
+ **Regla obligatoria**: no editar código antes de TASKS.md, salvo OBJECTIVE trivialmente atómico.
110
+
111
+ #### Auto-plan trigger
112
+
113
+ ```
114
+ agent-workflow auto-plan-decide --objetivo-file .workflow/sessions/<folder>/OBJECTIVE.md
115
+ ```
116
+
117
+ Output: `{decision: "skip"|"lite"|"full", reason, signals, metrics}`. El AI puede override con justificación.
118
+
119
+ **Trigger de S6 — scope advisory**: si `decision = "full"` y `metrics.eta_hours > 4`, disparar `AskUserQuestion` con spec de S6 (`references/prompts-catalog.md#S6`). Header `scope`, 3 opciones (Lite primero con 3 tasks core / Full / Split en 2 sesiones). La elección moldea cómo `analyze-synthesize` genera TASKS.md después: Lite → 3 tasks; Full → plan completo; Split → re-crear sessionA + sessionB con dependencia explícita. **Si `tasks_count ≤ 3` ya en el OBJECTIVE**: skip S6 (scope ya es lite). NO narrar la pregunta en texto plano.
120
+
121
+ #### Plan agent + Specialty (suggestion-only)
122
+
123
+ **Gate por harness**: antes de proponer Plan subagent o sub-agente per-flow, ejecutar `agent-workflow harness` y validar `supports_plan_subagent: true`. Si false (Codex/Copilot/unknown), saltar al fallback descrito en `references/lifecycle-deep.md` (redactar TASKS.md directamente o usar `specialty-choose` para sugerencias inline). Aplica también a `Task(subagent_type="<flow>-agent")` opt-in.
124
+
125
+ Para detalles de Plan subagent nativo (CC `Task(subagent_type="Plan")`), prompt completo, trade-offs y persistencia: ver `references/lifecycle-deep.md`.
126
+
127
+ ```
128
+ agent-workflow specialty-choose --phase planning --objetivo-file .workflow/sessions/<folder>/OBJECTIVE.md
129
+ ```
130
+
131
+ Devuelve `{suggestions, rationale, invoke_explicitly: true}`. **Mostrar** sugerencias al usuario, **esperar confirmación**, **invocar sólo las confirmadas** vía namespace explícito (`Skill(agent-workflow:analyze-synthesize)`; legacy `qtc-analyze:analyze-synthesize` válido durante convivencia Strangler Fig). Nunca auto-invocar.
132
+
133
+ #### Datos estructurados de la sesión (token-optimized v3.4+)
134
+
135
+ ```
136
+ agent-workflow objetivo-data --code <CODE> # tipo, modalidad, criterios, fuentes, origen
137
+ agent-workflow tasks-data --code <CODE> [--only-open] # counts + items + next_open
138
+ agent-workflow decisiones-list --code <CODE> # DEC-NNN headers + previews
139
+ agent-workflow session-artifacts --code <CODE> # dump consolidado
140
+ ```
141
+
142
+ Usar estos antes de leer archivos completos.
143
+
144
+ #### Cierre de planning (DESIGN.md + S7 + next-step prompt)
145
+
146
+ Al cerrar planning (TASKS.md producido + auto-plan resuelto + ramas verificadas), pipeline canónico **antes** de iniciar el loop de `execution`:
147
+
148
+ 1. **DESIGN.md + S7** — sólo si `flow=dev` y `## Type ∈ {feature, refactor}` (resuelto vía Capa 1/2/3 — ver `dev-workflow/SKILL.md` §"Resolución del `## Type`"):
149
+ - Si `DESIGN.md` no existe: el AI produce un draft completo desde OBJECTIVE+TASKS siguiendo `implement/references/design-md-template.md`. Headers EN canon (`## Context`, `## Goals`, etc.), body en idioma del usuario. Sección `## Open questions` obligatoria (escribir `None` si vacía).
150
+ - Disparar **`AskUserQuestion`** con spec de S7 (`references/prompts-catalog.md#S7`). Header `design-review`, 3 opciones (Sí lo reviso / Approve as-is / Refinar antes) + Other auto = feedback puntual con re-disparo. Preview ASCII opcional. NUNCA narrar la pregunta en texto plano.
151
+ - **Confirmación obligatoria**: el gate no avanza a M10 hasta señal explícita. Opción 3 ("Refinar antes") y Other auto iteran el DESIGN.md y re-disparan S7 hasta confirmación 1 o 2.
152
+ - **Skip silencioso** para `## Type: bugfix|chore`: no se produce DESIGN.md, no dispara S7. La doctrina bugfix (3 pasos canónicos en `implement/SKILL.md`) no requiere design artifact upfront.
153
+
154
+ 2. **M10 — next-step**: tras DESIGN.md/S7 (o tras planning si tipo bugfix/chore), disparar `AskUserQuestion` con spec de M10 (`references/prompts-catalog.md#M10`). Header `next-step`, 3 opciones (Ejecutar end-to-end / T1+T2 en paralelo / Una task por vez). **Recomendación dinámica**: el AI marca `(Recomendado)` en opción 1 si `tasks_count ≤5 ∧ eta_total ≤4h` (estimas TASKS.md S=0.5h/M=2h/L=4h); caso contrario marca opción 2. NO narrar la pregunta en texto plano.
155
+
156
+ **Si TASKS.md está vacío o ausente** (auto-plan retornó `skip` y el OBJECTIVE es trivialmente atómico): skip M10 y skip DESIGN.md/S7, pasar directo a execution sin loop.
157
+
158
+ ### Fase 2 — execution
159
+
160
+ Antes de arrancar, evaluar opt-in del **sub-agente per-flow** (`agent-workflow profiles` → `delegate_to_subagent`). Detalles en `references/lifecycle-deep.md`.
161
+
162
+ #### Verificar rama (obligatorio, gate de avance)
163
+
164
+ Re-aplicar el **bloque común de verificación** descrito en "Verificación interactiva de ramas" antes de tocar código en cada entrada a execution. La rama puede haber drifted desde la creación de la sesión (el usuario puede haber hecho checkout manual). No avanzar al loop de tasks sin que el bloque retorne consistente.
165
+
166
+ #### Composición dinámica + diffs incrementales
167
+
168
+ Tabla de composición + reglas de activación (regla cero) en `references/lifecycle-deep.md`. Loop:
169
+
170
+ 1. Tomar tarea (`tasks-data --only-open`).
171
+ 2. Verificar rama por archivo.
172
+ 3. Cambio mínimo + diff.
173
+ 4. Registrar DECISIÓN sólo si no es obvia.
174
+ 5. Marcar tarea cerrada.
175
+ 6. Repetir.
176
+
177
+ #### Topic-change detection
178
+
179
+ ```
180
+ agent-workflow topic-change-check --objetivo-file .workflow/sessions/<folder>/OBJECTIVE.md --request "<resumen>"
181
+ ```
182
+
183
+ Si `changed: true`, **dispara `AskUserQuestion`** con spec de S2 (`references/prompts-catalog.md#S2`). Header `topic-change`, 3 opciones (cerrar+abrir nueva / extender OBJECTIVE / ignorar). No bloquea — el Other auto registra el pedido como nota informal. NO narrar la pregunta en texto plano.
184
+
185
+ ### Fase 3 — validation
186
+
187
+ No automática. Preguntar si valida desde plugin (`testing-strategy`) o manual. Registrar nota en DECISIONS (legacy: DECISIONES) si aporta.
188
+
189
+ ### Fase 4 — closure
190
+
191
+ Ver "Cerrar sesión" abajo.
192
+
193
+ #### Closure sin implementación (F-E.1)
194
+
195
+ Cerrar la sesión sin ejecutar implementación es **válido** cuando el corpus producido representa un análisis terminado o una decisión documentada. El CLI lo permite sin restricciones (`session-close-service.ts` no exige criterios). Doctrina explícita: aceptar el cierre si se cumple:
196
+
197
+ 1. **OBJECTIVE.md presente** (siempre — gate básico), Y
198
+ 2. **Al menos uno de los siguientes artefactos**:
199
+ - `CONCLUSIONS.md` (flow analyze terminado), O
200
+ - `DELIVERY.md` (flow design entregado), O
201
+ - `DESIGN.md` (decisión de diseño documentada sin código).
202
+
203
+ Casos de uso típicos:
204
+ - Sesión analyze que produjo CONCLUSIONS + roadmap pero el dev se difiere a otra sesión (post-062 es ejemplo canónico).
205
+ - Sesión design que entregó DELIVERY.md (specs UX/UI) sin implementación aún.
206
+ - Sesión exploratoria que rompió en DESIGN.md sin avanzar a code.
207
+
208
+ **Si TASKS.md tiene `[ ]` abiertos al cierre**: sugerir crear `BACKLOG.md` (ver F-F abajo) capturando lo diferido/descartado. Es lazy — solo se crea si hay valor en preservar follow-ups.
209
+
210
+ **Skip silencioso**: si la sesión es dev y no hay CONCLUSIONS/DELIVERY/DESIGN producidos, NO doctrinar el caso. El usuario debe completar la implementación o reconvertir explícitamente la sesión a analyze.
211
+
212
+ #### BACKLOG.md — artefacto opcional lazy (F-F)
213
+
214
+ Artefacto opcional por sesión que captura "lo que queda para otras sesiones": diferido, descartado o followups detectados al cierre.
215
+
216
+ **Cuándo crearlo**:
217
+ - TASKS.md con ≥1 ítem abierto al cierre, **o**
218
+ - El usuario menciona ítems a diferir/descartar, **o**
219
+ - Closure sin implementación (F-E.1) con items derivados que no entran al alcance de la próxima sesión.
220
+
221
+ **Trade-off rechazado**: incrustar `## Backlog` dentro de CHECKPOINT.md. Razón: CHECKPOINT = retomar **esta** sesión; BACKLOG = qué quedó pendiente **para otras**.
222
+
223
+ **Estructura mínima** (ver `references/backlog-template.md` para plantilla completa):
224
+
225
+ ```markdown
226
+ # Backlog — session<NNN>-<flow>-<slug>
227
+
228
+ ## Deferred
229
+ - Item con razón (out of scope, ETA insuficiente, depende de X).
230
+
231
+ ## Discarded
232
+ - Item descartado con razón (no aplica, contraproducente, redundante).
233
+
234
+ ## Followups
235
+ - Acción concreta para otra sesión, con sugerencia de slug y dependencia.
236
+ ```
237
+
238
+ **Reglas**:
239
+ - Vive en `.workflow/sessions/<folder>/BACKLOG.md`. NO se gradúa.
240
+ - Consumido por `export-plan` como "Tasks abiertas heredadas" al consolidar N sesiones.
241
+ - Append-only en práctica (no borrar entries previas; mover items a `Discarded` con razón).
242
+ - Si el usuario explícitamente dice "no hay backlog para esta sesión", NO crear el archivo.
243
+
244
+ ## Cerrar sesión
245
+
246
+ ### 0. Detección de items abiertos → sugerir BACKLOG.md (F-F)
247
+
248
+ Antes de graduar, ejecutar:
249
+
250
+ ```
251
+ agent-workflow tasks-data --code <CODE> --only-open
252
+ ```
253
+
254
+ Si `open > 0` o si el usuario menciona items diferidos/descartados durante el cierre: sugerir crear `BACKLOG.md` siguiendo `references/backlog-template.md`. Lazy — solo crear si hay valor (≥1 item con razón clara). Si el usuario rechaza o no hay items, skip silencioso.
255
+
256
+ Reglas:
257
+ - NO bloquear el cierre por items abiertos (el cierre sin impl/sin tareas completas es válido per F-E.1).
258
+ - NO crear BACKLOG.md vacío ni con placeholders.
259
+ - BACKLOG.md no se gradúa; queda en `.workflow/sessions/<folder>/BACKLOG.md`.
260
+
261
+ ### 1. Graduar artefactos (6 kinds — DEC-003)
262
+
263
+ Sólo 6 kinds graduan al cerrar. El resto vive en la sesión y no se gradúa por default.
264
+
265
+ | Kind | Comando | Categoría destino |
266
+ |---|---|---|
267
+ | `decision` | `agent-workflow graduate --kind decision --session <CODE> --id DEC-NNN --slug <kebab>` | `docs/decisiones/NNN-<slug>.md` |
268
+ | `manual` | `agent-workflow graduate --kind manual --session <CODE> --slug <kebab>` | `docs/manuales/NNN-<slug>.md` |
269
+ | `script` | **`/agent-workflow:release` exclusivamente** (no `graduate --kind script` directo) | `docs/scripts/NNN-sessionXXX-<slug>/` |
270
+ | `especificacion` | `agent-workflow graduate --kind especificacion --session <CODE> --slug <kebab>` | `docs/especificaciones/NNN-<slug>/` |
271
+ | `conclusion` | `agent-workflow graduate --kind conclusion --session <CODE> --slug <kebab>` (opt-in; default = no graduar) | `docs/conclusiones/NNN-<slug>.md` |
272
+ | `release` | **`/agent-workflow:release` exclusivamente** | `docs/release/NNN-informe-release.md` |
273
+
274
+ **Eliminados del modelo nuevo**: `plan`, `refactor`, `design`, `design-system`, `propuesta`, `postmortem`, `analysis`. Estos artefactos:
275
+ - Se quedan en `.workflow/sessions/<folder>/` (no se gradúan).
276
+ - O se promueven manualmente a `manual` / `especificacion` si el usuario decide curarlos.
277
+
278
+ **Regla absoluta del destino (DEC-002)**: la graduación respeta `workspace_mode` sin prompt por sesión. Hub mode → hub root (`<hub>/docs/<categoria>/`); project mode → cwd (`<cwd>/docs/<categoria>/`). Eliminado M12. Regla canónica completa: `references/graduacion-routing.md`.
279
+
280
+ ### `docs/referencias/` transversal (DEC-004 v2)
281
+
282
+ Material de referencia del usuario (mockups, especificaciones, exports, glosarios, capturas, etc.) vive en una única carpeta transversal al workspace: `<workspace-root>/docs/referencias/`. En hub mode el path es `<hub-root>/docs/referencias/`; en single-repo es `<cwd>/docs/referencias/`. Cualquier sesión activa puede leer las referencias sin tener que subirlas por-sesión.
283
+
284
+ - **Único path canónico**: `docs/referencias/`. La carpeta legacy `.workflow/sessions/<folder>/referencias/` (DEC-004 v1) **no se lee** bajo ningún flow. Si una sesión cerrada la tiene, queda como histórico; el rescate de contenido pasa por `agent-workflow:migrate` opt-in.
285
+ - **Manual del usuario**: cualquier formato (md, pdf, xlsx, png, txt, etc.). El usuario coloca archivos ahí; la sub-estructura interna es libre.
286
+ - **Lectura del AI**: cualquier sesión (flow=dev/design/analyze) lee referencias relevantes al OBJECTIVE on-demand. Sin pre-procesamiento ni índices.
287
+ - **El AI no escribe** salvo solicitud explícita ("guardá esto en referencias", "agregá este wireframe a referencias").
288
+ - **Lazy**: la carpeta no se crea automáticamente; el workspace puede sembrar `docs/referencias/README.md` describiendo el contrato.
289
+ - **No se gradúa**: queda en `docs/referencias/`, fuera del flujo de graduación de las 6 kinds.
290
+
291
+ **Histórico DEC-004**: v1 (sesiones previas): `.workflow/sessions/<folder>/referencias/` por sesión. v2 (session080-dev-referencias-globales): mover a `docs/referencias/` transversal y eliminar lectura legacy.
292
+
293
+ ### 2. Proponer commits por fuente afectada (propose-then-execute)
294
+
295
+ Aplicación canónica del patrón **universal** definido en `references/commits-policy.md` (Regla 3) — closure es uno de 3 disparadores del prompt M1 (los otros 2: solicitud explícita con/sin sesión activa). El flujo siguiente describe la variante auto-disparada por closure; el patrón completo (bypass por mensaje literal, fuera de sesión, etc.) vive en el canon.
296
+
297
+ Antes de compactar, ejecutar el **commit prompt** definido en `references/commits-policy.md` (Regla 3) y `references/prompts-catalog.md#M1`:
298
+
299
+ 1. `agent-workflow sources --session <CODE>` → leer `sources[]` con `dirty` y `current_branch` por fuente.
300
+ 2. Si todas tienen `dirty=false` → **skip silencioso**. Continuar al paso 4.
301
+ 3. Si hay 1+ fuentes con `dirty=true`, invocar **una sola** `AskUserQuestion` con N questions tab-por-fuente (N = #fuentes-dirty, máx 4 simultáneas). Spec literal de cada question, headers, opciones y manejo del Other → ver `references/prompts-catalog.md#M1`. Resumen operacional:
302
+ - Header de cada tab: `<alias>` puro (ej. `core`, `dev`).
303
+ - 2 opciones explícitas: "Aprobar sugerido (Recomendado)" con el mensaje canónico (1 línea, ≤72 chars, tag `session<CODE>`, sin co-author, ver `commits-policy.md` regla 2) / "Saltar esta fuente".
304
+ - `Other` auto-inyectado = mensaje de commit custom.
305
+ - Por cada question respondida: si aprueba o el usuario escribió en Other, ejecutar `git commit -m "<msg>"` **solo en esa fuente** (`git -C <path>`), respetando hooks (sin `--no-verify`).
306
+ - Si la fuente tiene `match=false` (rama inesperada), omitirla del prompt — abortar commit ahí, avisar al usuario y dejar que alinee la rama primero.
307
+ - Si N > 4 fuentes dirty (caso excepcional): ejecutar en tandas. Registrar parcial en `CHECKPOINT.md` entre tandas.
308
+ 4. Re-ejecutar `agent-workflow sources --session <CODE>` para verificar que las fuentes aprobadas quedaron limpias y registrar en `CHECKPOINT.md`.
309
+
310
+ Reglas absolutas: nunca `--amend`, nunca `git push`, nunca commits en fuentes no aprobadas, nunca `--no-verify`. Si un hook pre-commit falla, mostrar el error y dejar al usuario decidir.
311
+
312
+ ### 3. Compact automático
313
+
314
+ 1. Invocar skill `compact` → escribe CHECKPOINT.md final + dispara `/compact` host.
315
+ 2. Tras `/compact`, contexto liberado. Sesión cerrada en HISTORY pero con CHECKPOINT.md por si retoma.
316
+
317
+ ### 4. Cerrar formalmente
318
+
319
+ ```
320
+ agent-workflow session-close --code <CODE> \
321
+ --graduated-decisions "001-slug1,002-slug2" \
322
+ --graduated-plan 001-plan-slug \
323
+ --graduated-scripts NNN-sessionXXX-<slug>
324
+ ```
325
+
326
+ ## Retomar sesión
327
+
328
+ 1. `agent-workflow checkpoint-read --code <CODE>` (si existe).
329
+ 2. Si no, fallback `agent-workflow session-resume --code <CODE>`.
330
+ 3. Aplicar el **bloque común de verificación** descrito en "Verificación interactiva de ramas". El usuario puede haber cambiado de rama o introducido cambios sin commit entre sesiones. Sin consistencia, no avanzar.
331
+ 4. Presentar resumen + continuar desde fase actual.
332
+
333
+ ## Verificación interactiva de ramas (canon — invocado en pasos 6/retomar/execution)
334
+
335
+ Bloque común que el AI **debe** seguir. Detalles del flujo y mensajes en `references/branch-verification.md`.
336
+
337
+ ```
338
+ agent-workflow sources [--session CODE] [--scope alias1,alias2]
339
+ ```
340
+
341
+ El payload incluye `sources[]` (per-fuente: `match`, `dirty`, `current_branch`, `expected_work_branch`, `flow`), `cross_source_consistent` y `divergent_sources`. El flow se resuelve automáticamente desde la sesión activa; para sesiones `flow=analyze` la rama esperada cae a `main_branch` (típicamente `certificacion`) cuando no se declaran branches en la sesión.
342
+
343
+ **Decisión por fuente** (orden):
344
+ 1. `cross_source_consistent=false` (hub mode con divergencia no declarada) → **hard gate**. Mostrar matriz `alias → current → expected` (de `divergent_sources`) y disparar `AskUserQuestion`:
345
+ - "Alinear todas a una misma rama" (preguntar cuál y aplicar Caso A por fuente).
346
+ - "Declarar la divergencia explícita" (re-crear o `project-md-upsert --update-phase <folder> --branches alias:rama,...` con valores distintos).
347
+ - "Cancelar acción".
348
+ No avanzar hasta resolver.
349
+ 2. Para cada fuente con `match=false`:
350
+ - `dirty=false` → **Caso A** (`AskUserQuestion`): "¿Hago `git checkout <expected>` en `<alias>`?" / "Mantener current y actualizar la sesión" / "Cancelar".
351
+ - `dirty=true` → **Caso B**: pausar y esperar resolución manual del usuario. Listar archivos modificados. NO ofrecer checkout. Reintentar el check después de "listo/continúa".
352
+ 3. Para fuentes con `flow=analyze` y `match=true` que durante execution el usuario decide editar: **Caso C** (proactivo del AI): preguntar nombre de rama de trabajo, verificar existencia con `git rev-parse --verify`, ofrecer `checkout` o `checkout -b` desde `main_branch`, registrar en sesión vía `project-md-upsert --update-phase`.
353
+
354
+ **Reglas absolutas**:
355
+ - Nunca ejecutar `git stash`, `git reset --hard`, `git checkout -- .`, `git restore .`, `git clean` sin confirmación explícita del usuario para esa fuente.
356
+ - Después de cualquier acción git, re-ejecutar `agent-workflow sources --scope <alias>` para confirmar el nuevo estado.
357
+ - Si el usuario rechaza todas las opciones, abortar la acción que disparó el check (no avanzar).
358
+
359
+ ## Listar sesiones
360
+
361
+ ```
362
+ agent-workflow sessions [--include-legacy]
363
+ ```
364
+
365
+ ## Reglas generales
366
+
367
+ - **Sin fallbacks automáticos**: explicar antes de aplicar.
368
+ - **AW-PROJECT obligatorio**: si falta, proponer project-init/hub-init.
369
+ - **Fuentes globales**: el proyecto las declara una vez; las sesiones sólo indican ramas.
370
+ - **BD: scripts versionados, no ejecución directa**. MCP `<mcp-cert>`/`<mcp-prod>` son read-only por contrato (SELECT, EXPLAIN, `\d`). Cualquier mutación (INSERT/UPDATE/DELETE/DDL) se materializa como script en `docs/scripts/` del workspace de la fuente; el AI nunca ejecuta el script — el usuario lo aplica manualmente y confirma post-ejecución antes de cerrar la tarea. Excepción única: el usuario explícitamente delega ejecución por bloque.
371
+ - **No tocar sesiones de otro flow** sin pedir cambio de plugin/comando.
372
+
373
+ ## Recursos adicionales
374
+
375
+ - **`references/lifecycle-deep.md`** — Plan agent details, sub-agente per-flow, hub mode, plan mode, composición dinámica, compatibilidad legacy.
376
+ - **`references/branch-verification.md`** — flujo cuando rama no coincide.
377
+ - **`references/commits-policy.md`** — política controlada de commits cross-plugin (anchor `agent-workflow:commits-policy`). Define las 5 reglas: prohibición de commits autónomos, formato canónico, propose-then-execute universal (M1) en cualquier solicitud o mención de commit, interacción con release/graduate, y bypass por mensaje literal.
378
+ - **`references/specialty-decision-tree.md`** — árbol completo para choose_specialty.
379
+ - **`references/topic-change-rules.md`** — heurística + ejemplos.
380
+ - **`references/auto-plan-rules.md`** — disparadores skip/lite/full.
381
+ - **`references/sandbox-readonly-rules.md`** — reglas universales de plan mode (canon).
382
+ - **shared-contract.md §14-§19** — contrato del lifecycle universal.
383
+ - **`agent-workflow:redaccion-simple`** — guía transversal de redacción para todos los artefactos qtc-* (frases cortas, listas, sin jerga). Aplicar al escribir OBJECTIVE/TASKS/DECISIONS/EVIDENCE/FINDINGS/CONCLUSIONS/CHECKPOINT/STATUS/PROBLEM/IDEAS/DELIVERY.
@@ -0,0 +1,63 @@
1
+ # Auto-plan rules
2
+
3
+ > Anchor `agent-workflow:auto-plan-rules`. Disparadores que decide `auto-plan` antes de empezar execution: `skip` (no plan), `lite` (plan inline en TASKS.md sin TodoWrite), `full` (TASKS.md detallado + TodoWrite).
4
+
5
+ ## CLI runtime
6
+
7
+ ```
8
+ agent-workflow auto-plan-decide --code <NNN>
9
+ ```
10
+
11
+ Devuelve `{ decision: skip|lite|full, reason: <text> }`.
12
+
13
+ ## Heurísticas
14
+
15
+ ### `skip` — sin plan
16
+
17
+ Aplica cuando:
18
+
19
+ - Bugfix de 1 línea / cambio trivial de configuración / typo.
20
+ - OBJECTIVE.md `## Type: chore` o `## Type: docs` (alias legacy `## Tipo` legible vía parser bilingüe). Estos tipos NO producen `DESIGN.md` ni disparan S7 (skip silencioso).
21
+ - Sesión flow=analyze (los analyze tienen su propio shape de plan en EVIDENCE/FINDINGS).
22
+ - El usuario declara explícito "vamos directo, sin plan".
23
+
24
+ ### `lite` — plan inline en TASKS.md
25
+
26
+ Aplica cuando:
27
+
28
+ - 1-3 archivos a tocar, scope acotado.
29
+ - OBJECTIVE.md tiene 1-2 acceptance criteria.
30
+ - Bugfix con 1 fase (write test → fix → verify).
31
+ - Refactor pequeño que no merece tracking via TodoWrite.
32
+
33
+ ### `full` — TASKS.md detallado + TodoWrite tracking
34
+
35
+ Aplica cuando:
36
+
37
+ - ≥4 archivos involucrados.
38
+ - OBJECTIVE.md ≥3 acceptance criteria.
39
+ - `## Type: feature` o `## Type: refactor` en OBJECTIVE.md (canónico v2.8+; alias legacy `## Tipo` aceptado por parser bilingüe). El modelo phased Phase 0-5 implica plan completo + DESIGN.md + S7 gate antes de Phase 0.
40
+ - Multi-phase work (analyze → implement → integrate).
41
+ - Cross-source (toca ≥2 fuentes en hub workspace).
42
+
43
+ ## Decisión por flow
44
+
45
+ | Flow | Default | Override |
46
+ |---|---|---|
47
+ | dev | `lite` | `full` si `## Type: feature\|refactor` (alias legacy `## Tipo`) o ≥4 archivos |
48
+ | design | `lite` | `full` si flow=design Type=system (toca design-system completo) |
49
+ | analyze | `skip` | `lite` si modalidad=incident (post-mortem requiere ordering) |
50
+
51
+ ## Override manual
52
+
53
+ Usuario puede declarar `--plan-mode skip|lite|full` en `aw session-create` o `aw auto-plan-decide`.
54
+
55
+ ## Composición con superpowers
56
+
57
+ `auto-plan-decide` returning `full` → la skill `agent-workflow:session` invoca también `superpowers:writing-plans` para que el plan de execution tenga la estructura recomendada (review checkpoints, success criteria explícitos).
58
+
59
+ ## Refs
60
+
61
+ - `references/lifecycle-deep.md` §Composición dinámica de especialidades.
62
+ - CLI: `agent-workflow auto-plan-decide --help`.
63
+ - `superpowers:writing-plans` — composición al disparar `full`.
@@ -0,0 +1,95 @@
1
+ # Template — `BACKLOG.md` (artefacto opcional lazy de sesión)
2
+
3
+ Plantilla canónica del archivo en `.workflow/sessions/<folder>/BACKLOG.md`. Lazy: solo se crea si hay valor en preservar items pendientes al cierre.
4
+
5
+ ## Cuándo crear
6
+
7
+ - ≥1 ítem abierto en TASKS.md al cierre.
8
+ - Usuario menciona items diferidos/descartados durante la sesión.
9
+ - Closure sin implementación (F-E.1) con followups derivados que no entran a la próxima sesión inmediata.
10
+
11
+ ## Cuándo NO crear
12
+
13
+ - Sesión cerrada con TASKS.md 100% completas y sin followups explícitos.
14
+ - Usuario indica explícitamente "no hay backlog para esta sesión".
15
+ - BACKLOG vacío sería peor que su ausencia (no escribir secciones placeholder).
16
+
17
+ ## Estructura
18
+
19
+ ````markdown
20
+ # Backlog — session<NNN>-<flow>-<slug>
21
+
22
+ ## Deferred
23
+
24
+ Items con valor pero fuera del alcance temporal de esta sesión.
25
+
26
+ - **D1**: <descripción accionable>. Razón: <out-of-scope/ETA-insuficiente/dependencia-X>. Sugerencia: <abrir sessionNNN-flow-slug>.
27
+ - **D2**: <descripción>. Razón: <...>.
28
+
29
+ ## Discarded
30
+
31
+ Items evaluados y descartados, con razón explícita.
32
+
33
+ - **X1**: <descripción>. Razón: <no-aplica/contraproducente/redundante-con-Y>.
34
+ - **X2**: <descripción>. Razón: <...>.
35
+
36
+ ## Followups
37
+
38
+ Acciones concretas para otras sesiones, con sugerencia de slug y dependencia.
39
+
40
+ - **F1**: <acción>. Sesión sugerida: `sessionNNN-<flow>-<slug>`. Dependencia: <ninguna|sessionYYY ok>. ETA: ≈<N>h.
41
+ - **F2**: <acción>. Sesión sugerida: ...
42
+
43
+ ## Notas
44
+
45
+ - Append-only en práctica. No borrar entries; mover a `Discarded` con razón si cambia el contexto.
46
+ - Consumido por `/agent-workflow:export-plan` como "Tasks abiertas heredadas" del corpus.
47
+ - NO se gradúa al canon. Vive solo en `.workflow/sessions/<folder>/BACKLOG.md`.
48
+ ````
49
+
50
+ ## Ejemplo real (smoke)
51
+
52
+ ````markdown
53
+ # Backlog — session055-analyze-docs-from-sessions
54
+
55
+ ## Deferred
56
+
57
+ - **D1**: Implementar export-conclusions skill. Razón: scope inicial de session055 cerró en propuesta + 4 comandos (no 6). Sugerencia: abrir sessionNNN-dev-export-conclusions post-062.
58
+ - **D2**: Plan de deprecación Fase 2 (remover `/agent-workflow:release` legacy). Razón: requiere ≥1 mes de uso de la familia export-* nueva. Sugerencia: revisar Q3 2026.
59
+
60
+ ## Discarded
61
+
62
+ - **X1**: Modelo "1 skill genérico de docs" (`docs-generator`). Razón: feedback explícito del usuario — prefiere responsabilidades separadas con naming `export-*`.
63
+
64
+ ## Followups
65
+
66
+ - **F1**: Decisión meta sobre nuevos `kind`s (arquitectura, funcional, documentation) en modelo de graduación. Sesión sugerida: `sessionNNN-analyze-graduation-kinds-fase-2`. Dependencia: ≥1 mes de uso. ETA: ≈2h.
67
+ - **F2**: Validar contratos cross-host (Claude Code + Codex) para los 4 commands export-* nuevos. Sesión sugerida: `sessionNNN-dev-validacion-cross-host-export`. Dependencia: ninguna. ETA: ≈1h.
68
+ ````
69
+
70
+ ## Reglas de uso
71
+
72
+ - **Frontmatter**: NO usar. BACKLOG.md no requiere YAML; los IDs (`D1`, `X1`, `F1`) ya proveen estructura.
73
+ - **IDs**: prefijos `D` (Deferred), `X` (Discarded), `F` (Followups). Numerados secuencialmente por sección. Reutilizables si se mueve item entre secciones (mantener el prefijo del estado actual).
74
+ - **Idioma**: ES default (igual que otros artefactos del workspace).
75
+ - **Concisión**: 1-2 líneas por item; sin prosa extensa.
76
+ - **Razón obligatoria**: cada `D` y `X` debe declarar razón explícita. Sin razón → mejor no incluir.
77
+ - **Sesión sugerida en `F`**: best-effort. Si no hay slug claro, omitir y dejar solo la acción.
78
+
79
+ ## Integración con otros artefactos
80
+
81
+ | Artefacto | Relación con BACKLOG.md |
82
+ |---|---|
83
+ | `TASKS.md` | Items `[ ]` no cerrados → candidatos a `Deferred` o `Followups`. |
84
+ | `CHECKPOINT.md` | NO duplicar. CHECKPOINT = estado para retomar; BACKLOG = pendiente para otras sesiones. |
85
+ | `CONCLUSIONS.md` | Si analyze produjo recomendations no incluidas en alcance → registrar como `Followups`. |
86
+ | `export-plan` | Lee BACKLOG.md de las N sesiones consolidadas como input adicional al plan derivado. |
87
+ | `export-conclusions` | NO consume BACKLOG (su input son CONCLUSIONS.md). |
88
+
89
+ ## Reglas absolutas
90
+
91
+ - Lazy: no crear archivo vacío.
92
+ - Append-only: no borrar entries históricas.
93
+ - No graduar: BACKLOG queda en sesión.
94
+ - Mover entre secciones con `(antes: D1 en sessionXXX)` como nota para trazabilidad si aplica.
95
+ - Si una sesión retoma items de un BACKLOG previo → mencionarlo en `OBJECTIVE.md ## Origin` (no en BACKLOG).