@tacuchi/agent-workflow-cli 9.3.0 → 10.1.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 (75) hide show
  1. package/dist/application/auto-plan.d.ts +15 -2
  2. package/dist/application/auto-plan.d.ts.map +1 -1
  3. package/dist/application/auto-plan.js +70 -9
  4. package/dist/application/auto-plan.js.map +1 -1
  5. package/dist/application/host-doctor-service.d.ts +21 -0
  6. package/dist/application/host-doctor-service.d.ts.map +1 -0
  7. package/dist/application/host-doctor-service.js +101 -0
  8. package/dist/application/host-doctor-service.js.map +1 -0
  9. package/dist/application/project-tab-data.d.ts +4 -13
  10. package/dist/application/project-tab-data.d.ts.map +1 -1
  11. package/dist/application/project-tab-data.js +8 -64
  12. package/dist/application/project-tab-data.js.map +1 -1
  13. package/dist/application/release-data/sessions.d.ts +2 -0
  14. package/dist/application/release-data/sessions.d.ts.map +1 -1
  15. package/dist/application/release-data/sessions.js +4 -1
  16. package/dist/application/release-data/sessions.js.map +1 -1
  17. package/dist/application/render/history-row.d.ts.map +1 -1
  18. package/dist/application/render/history-row.js +3 -0
  19. package/dist/application/render/history-row.js.map +1 -1
  20. package/dist/application/session-create-service.d.ts +2 -0
  21. package/dist/application/session-create-service.d.ts.map +1 -1
  22. package/dist/application/session-create-service.js +21 -1
  23. package/dist/application/session-create-service.js.map +1 -1
  24. package/dist/application/session-resolver.d.ts +8 -0
  25. package/dist/application/session-resolver.d.ts.map +1 -1
  26. package/dist/application/session-resolver.js +29 -0
  27. package/dist/application/session-resolver.js.map +1 -1
  28. package/dist/application/templates/objetivo.d.ts +1 -1
  29. package/dist/application/templates/objetivo.d.ts.map +1 -1
  30. package/dist/application/templates/objetivo.js +13 -1
  31. package/dist/application/templates/objetivo.js.map +1 -1
  32. package/dist/cli/commands/auto-plan-decide.d.ts.map +1 -1
  33. package/dist/cli/commands/auto-plan-decide.js +56 -3
  34. package/dist/cli/commands/auto-plan-decide.js.map +1 -1
  35. package/dist/cli/commands/host-doctor.d.ts +3 -0
  36. package/dist/cli/commands/host-doctor.d.ts.map +1 -0
  37. package/dist/cli/commands/host-doctor.js +10 -0
  38. package/dist/cli/commands/host-doctor.js.map +1 -0
  39. package/dist/cli/commands/session-create.d.ts.map +1 -1
  40. package/dist/cli/commands/session-create.js +2 -0
  41. package/dist/cli/commands/session-create.js.map +1 -1
  42. package/dist/cli/main.js +2 -0
  43. package/dist/cli/main.js.map +1 -1
  44. package/dist/cli/tui/app.js +25 -13
  45. package/dist/cli/tui/app.js.map +1 -1
  46. package/dist/cli/tui/components/home-footer.d.ts.map +1 -1
  47. package/dist/cli/tui/components/home-footer.js +1 -0
  48. package/dist/cli/tui/components/home-footer.js.map +1 -1
  49. package/dist/cli/tui/data/activity.d.ts +4 -11
  50. package/dist/cli/tui/data/activity.d.ts.map +1 -1
  51. package/dist/cli/tui/data/activity.js +21 -70
  52. package/dist/cli/tui/data/activity.js.map +1 -1
  53. package/dist/cli/tui/tabs/project-tab.d.ts.map +1 -1
  54. package/dist/cli/tui/tabs/project-tab.js +32 -34
  55. package/dist/cli/tui/tabs/project-tab.js.map +1 -1
  56. package/dist/cli/tui/tabs/status-tab.js +1 -1
  57. package/dist/cli/tui/tabs/status-tab.js.map +1 -1
  58. package/package.json +3 -3
  59. package/skills/agent-workflow/commands/export-scripts.md +36 -19
  60. package/skills/agent-workflow/commands/patch.md +49 -0
  61. package/skills/agent-workflow/doctrine/implement/references/rollback-guide.md +5 -3
  62. package/skills/agent-workflow/doctrine/session/SKILL.md +47 -0
  63. package/skills/agent-workflow/exports/export-scripts/SKILL.md +97 -76
  64. package/skills/agent-workflow/exports/export-scripts/references/lexico-tecnico.md +20 -6
  65. package/skills/agent-workflow/exports/export-scripts/references/manifest-template.md +13 -1
  66. package/skills/agent-workflow/exports/export-scripts/references/readme-template.md +252 -42
  67. package/skills/agent-workflow/exports/export-scripts/references/theme-handling.md +45 -72
  68. package/skills/agent-workflow/exports/export-scripts/references/validations.md +119 -71
  69. package/skills/agent-workflow/standards/sql-rollback-generator/SKILL.md +77 -62
  70. package/skills/agent-workflow/standards/sql-rollback-generator/references/release-rollback.md +4 -2
  71. package/skills/agent-workflow/standards/sql-rollback-generator/references/rollback-patterns.md +5 -3
  72. package/skills/agent-workflow/standards/sql-script-organizer/SKILL.md +16 -16
  73. package/skills/agent-workflow/workflows/analyze-workflow/SKILL.md +3 -26
  74. package/skills/agent-workflow/workflows/design-workflow/SKILL.md +3 -24
  75. package/skills/agent-workflow/workflows/dev-workflow/SKILL.md +3 -26
@@ -1,6 +1,6 @@
1
1
  ---
2
- description: Consolida N sesiones del workspace + `docs/scripts/` ya graduados en un paquete de paso a producción bajo `docs/scripts/NNN-export-scripts-YYYY-MM-DD/`. Genera manifest.md (informe + checklist + acciones manuales + git state + code-scan), por-sesion/ (bundle SQL organizado), por-tema/ (vista opt-in), rollback-global.sql y ORDER.md. Read-only. Refactor de /agent-workflow:release + /agent-workflow:release-scripts.
3
- argument-hint: (opcional) --since sessionNNN | --source <alias> | --themes slug1,slug2|infer | --keep-parts | --skip-code-scan | --dry-run
2
+ description: Consolida N sesiones del workspace + `docs/scripts/` ya graduados en un paquete de paso a producción bajo `docs/scripts/NNN-export-scripts-YYYY-MM-DD/` (v4.0.0 — session093). Layout plano cross-session al root del bundle: 00-ROLLBACK.sql + 01-DDL-TABLES.sql + 02-DDL-FUNCTIONS.sql + 03-DML.sql + 04-INSERTS.sql + README.md único. Sin por-sesion/, sin companions .rollback.sql, sin per-sesión rollback. `--themes` opt-in genera por-tema/ como capa adicional. Read-only. Reemplaza /agent-workflow:release + /agent-workflow:release-scripts (deprecation Fase 1).
3
+ argument-hint: (opcional) --sessions NNN[,NNN] | --since sessionNNN | --source <alias> | --themes slug1,slug2|infer | --keep-parts | --skip-code-scan | --dry-run
4
4
  allowed-tools:
5
5
  [
6
6
  "Read",
@@ -15,19 +15,34 @@ allowed-tools:
15
15
 
16
16
  Consolida N sesiones cerradas (más opcionalmente activas) en un paquete único de paso a producción. Delega al skill `export-scripts` (`agent-workflow/skills/export-scripts/SKILL.md`).
17
17
 
18
- El skill **nunca** ejecuta commits, merges, push, SQL ni envía correos. Solo produce:
18
+ El skill **nunca** ejecuta commits, merges, push, SQL ni envía correos. Layout v4.0.0 del bundle (cross-session al root):
19
19
 
20
- - `<docs>/scripts/NNN-export-scripts-YYYY-MM-DD/manifest.md` — informe consolidado (sesiones, acciones manuales, BD, hallazgos code-scan, git, checklist).
21
- - `<docs>/scripts/NNN-export-scripts-YYYY-MM-DD/README.md` — índice + mapeo sesión↔tema↔scripts.
22
- - `<docs>/scripts/NNN-export-scripts-YYYY-MM-DD/ORDER.md` secuencia ejecutable.
23
- - `<docs>/scripts/NNN-export-scripts-YYYY-MM-DD/rollback-global.sql` rollback encadenado inverso.
24
- - `<docs>/scripts/NNN-export-scripts-YYYY-MM-DD/por-sesion/` bundle SQL por sesión (organizado 01→04).
25
- - `<docs>/scripts/NNN-export-scripts-YYYY-MM-DD/por-tema/` bundle consolidado por tema (opt-in).
20
+ ```
21
+ <docs>/scripts/NNN-export-scripts-YYYY-MM-DD/
22
+ ├── 00-ROLLBACK.sql # único rollback cross-session (encadenado 04→01)
23
+ ├── 01-DDL-TABLES.sql # CREATE/ALTER TABLE cross-session (skip si vacío)
24
+ ├── 02-DDL-FUNCTIONS.sql # CREATE OR REPLACE FUNCTION cross-session (skip si vacío)
25
+ ├── 03-DML.sql # UPDATE/DELETE/migración cross-session (skip si vacío)
26
+ ├── 04-INSERTS.sql # INSERT/seed cross-session (skip si vacío)
27
+ ├── README.md # único informe + índice + how-to-execute
28
+ ├── _queries/ # opcional: queries de soporte por sesión
29
+ │ └── sessionXXX/...
30
+ └── por-tema/ # opt-in (capa adicional encima del root plano)
31
+ ├── tema-<slug>/
32
+ │ ├── 01-DDL-TABLES.sql
33
+ │ ├── 02-DDL-FUNCTIONS.sql
34
+ │ ├── 03-DML.sql
35
+ │ ├── 04-INSERTS.sql
36
+ │ └── parts/ # si --keep-parts
37
+ └── tema-<otro>/...
38
+ ```
26
39
 
27
40
  Donde `<docs>` es:
28
41
  - `Path.cwd() / docs` por default (project mode o hub workspace base).
29
42
  - `<source.path>/docs` si se pasa `--source <alias>` en hub mode.
30
43
 
44
+ **No se generan** (eliminados desde v4.0.0): `manifest.md` separado, `ORDER.md`, `rollback-global.sql`, `por-sesion/`, `<file>.rollback.sql` companions, `<session>/rollback/`. El histórico v3.x (`docs/scripts/001-002-003-*` ya generados) queda como histórico — no se migra.
45
+
31
46
  Último comando de la familia `/agent-workflow:export-*` definida en `docs/conclusiones/007-export-commands-family.md`. Refactor que consolida `/agent-workflow:release` v2.0.0 + `/agent-workflow:release-scripts` v2.0.0.
32
47
 
33
48
  ## Excepción session-aware
@@ -40,34 +55,35 @@ Este skill (junto con `release`, `release-scripts`, `export-report`, `export-arq
40
55
 
41
56
  ### Argumentos soportados
42
57
 
43
- - `--since sessionNNN` — incluye sólo sesiones posteriores a NNN (inclusive).
58
+ - `--sessions NNN[,NNN]` — filtro discreto por código. Toma precedencia sobre `--since` (warning si ambos).
59
+ - `--since sessionNNN` — incluye sólo sesiones posteriores a NNN (inclusive). Ignorado si `--sessions` presente.
44
60
  - `--source <alias>` — en hub mode, limita a una fuente específica.
45
- - `--themes slug1,slug2` — genera `por-tema/` con los slugs declarados.
61
+ - `--themes slug1,slug2` — genera `por-tema/<slug>/` (capa adicional encima del root plano).
46
62
  - `--themes infer` — inferencia LLM de temas (mismo flujo que release-scripts legacy).
47
63
  - `--keep-parts` — preserva `por-tema/<slug>/parts/<categoria>/*.sql`.
48
64
  - `--skip-code-scan` — omite el escaneo de código fuente.
49
65
  - `--dry-run` — reporte propositivo sin escribir archivos.
50
66
 
51
- Sin args: incluye todas las sesiones cerradas, sin vista `por-tema/`, escanea todo el código.
67
+ Sin args: incluye todas las sesiones cerradas, sin capa `por-tema/`, escanea todo el código.
52
68
 
53
69
  ## Flujo
54
70
 
55
71
  Antes de generar, el skill llama al CLI `agent-workflow`:
56
72
 
57
73
  ```
58
- agent-workflow release-data --include-graduated [--since sessionNNN] [--source <alias>]
74
+ agent-workflow release-data --include-graduated [--sessions NNN[,NNN]] [--since sessionNNN] [--source <alias>]
59
75
  agent-workflow code-scan # con built-in patterns + override
60
76
  agent-workflow next-number docs/scripts # numeración determinística
61
77
  agent-workflow session-artifacts --code <CODE> # lazy read de OBJECTIVE/TASKS/DECISIONS/scripts
62
78
  ```
63
79
 
64
- Luego delega a `sql-script-organizer` (clasificación 01→04 cross-session) y `sql-rollback-generator` (rollback acoplado + global). Si hay temas declarados o `--themes infer`: aplica algoritmo de consolidación por tema (port adaptado de release-scripts legacy).
80
+ Luego consolida cross-session por categoría al root del bundle (`01-DDL-TABLES.sql`, `02-DDL-FUNCTIONS.sql`, `03-DML.sql`, `04-INSERTS.sql`) y delega a `sql-rollback-generator` v2.0.0+ para generar el `00-ROLLBACK.sql` único. Si `--themes` declarado o inferido: agrega capa `por-tema/<slug>/` sin duplicar rollback.
65
81
 
66
82
  Valida V1-V6 (`references/validations.md`) antes de escribir el bundle al filesystem.
67
83
 
68
84
  ## Plan mode
69
85
 
70
- Reglas generales en `skills/session/references/sandbox-readonly-rules.md`. Describir en el plan file: NNN resuelto + sesiones incluidas + scripts por sesión, vista `por-tema/` activación (lectura de `## Temas` o flag), hallazgos esperados del code-scan, acciones manuales detectadas, advertencias bloqueantes (sesiones abiertas, rollback ausente, irreversibles).
86
+ Reglas generales en `skills/session/references/sandbox-readonly-rules.md`. Describir en el plan file: NNN resuelto + sesiones incluidas + sentencias cross-session por categoría, capa `por-tema/` (activación + slugs), hallazgos esperados del code-scan, acciones manuales detectadas, advertencias bloqueantes (sesiones abiertas, rollback ausente, irreversibles).
71
87
 
72
88
  ## Relación con `/agent-workflow:release` y `/agent-workflow:release-scripts`
73
89
 
@@ -80,13 +96,14 @@ Detalle del plan: `skills/export-scripts/references/deprecation-plan.md`.
80
96
 
81
97
  ## Recursos
82
98
 
83
- - `skills/export-scripts/SKILL.md` v1.0.0 — orquestador del comando.
84
- - `skills/export-scripts/references/manifest-template.md` — plantilla canónica del informe consolidado.
85
- - `skills/export-scripts/references/readme-template.md` — plantilla del README del bundle.
99
+ - `skills/export-scripts/SKILL.md` v4.0.0 — orquestador del comando (layout plano cross-session).
100
+ - `skills/export-scripts/references/readme-template.md` — plantilla canónica del README único.
101
+ - `skills/export-scripts/references/manifest-template.md` — **DEPRECATED** desde v4.0.0 (histórico).
86
102
  - `skills/export-scripts/references/lexico-tecnico.md` — léxico vetado V2.
87
- - `skills/export-scripts/references/validations.md` — V1-V6 detalladas.
103
+ - `skills/export-scripts/references/validations.md` — V1-V6 detalladas (anti-redundancia v4.0.0).
88
104
  - `skills/export-scripts/references/code-scan-recommendations.md` — catálogo extendido de patrones.
89
105
  - `skills/export-scripts/references/theme-handling.md` — algoritmo de detección/consolidación por tema.
90
106
  - `skills/export-scripts/references/deprecation-plan.md` — plan de fases 1-2.
107
+ - `skills/sql-rollback-generator/SKILL.md` v2.0.0 — `00-ROLLBACK.sql` único cross-session.
91
108
  - `docs/conclusiones/007-export-commands-family.md` — Propuesta original de la familia `/agent-workflow:export-*`.
92
109
  - `agent-workflow/skills/release/SKILL.md`, `release-scripts/SKILL.md` — legacy en deprecation Fase 1.
@@ -0,0 +1,49 @@
1
+ ---
2
+ description: Comando ligero para tareas pequeñas y directas (fixes, ajustes, chores acotados). Micro-lifecycle en modo --lite de flow=dev — ceremonia mínima (OBJECTIVE condensado, sin TASKS/DESIGN, closure condensado). Escala in-place a sesión completa si la tarea crece.
3
+ argument-hint: (<descripción-tarea> | sessionXXX | XXX | close)
4
+ allowed-tools:
5
+ [
6
+ "Bash",
7
+ "Read",
8
+ "Write",
9
+ "Edit",
10
+ "Glob",
11
+ "Grep",
12
+ ]
13
+ ---
14
+
15
+ # Patch — micro-lifecycle para tareas pequeñas
16
+
17
+ Azúcar sobre el lifecycle universal: invoca el skill `session` (canónico de agent-workflow) en **modo lite** con `$ARGUMENTS`. Para fixes, ajustes y chores acotados que no justifican la ceremonia de una sesión completa, pero sí merecen trazabilidad mínima (HISTORY + DECISIONS lazy + commit M1).
18
+
19
+ No es un flow nuevo ni un motor paralelo: `/patch "<qué>"` = `session-create --lite --flow dev "<qué>"`.
20
+
21
+ ## Resolución de intención
22
+
23
+ El skill evalúa `$ARGUMENTS`:
24
+
25
+ 1. `close` → cerrar el patch activo (closure condensado).
26
+ 2. Matchea `sessionXXX` o `XXX` (3 dígitos) → retomar ese patch/sesión.
27
+ 3. Texto descriptivo → crear micro-sesión lite (este es el caso común).
28
+
29
+ ## Qué hace el modo lite (al crear)
30
+
31
+ 1. `agent-workflow session-create --lite --flow dev --name <slug> --objetivo "<texto>"` — crea la micro-sesión.
32
+ - OBJECTIVE condensado (solo `## Type` + `## Requirement`).
33
+ - `## Type` default `bugfix` (o `chore` si la heurística lo detecta). No admite `feature|refactor`.
34
+ - Tag `kind:patch` en la fila de HISTORY.
35
+ 2. **Salta la ceremonia de planning**: sin auto-plan prompt, sin TASKS.md, sin DESIGN.md/S7, sin M10. El Requirement es la única tarea.
36
+ 3. **Loop directo**: aplicar el cambio mínimo componiendo `implement` + `coding-standards`. Mostrar diff. Registrar DECISIONS solo si hay algo no obvio (lazy).
37
+ 4. **Closure condensado**: commit M1 (propose-then-execute) directo; no gradúa por default.
38
+
39
+ ## Escalado in-place
40
+
41
+ Si durante el trabajo emerge complejidad (toca >3 archivos, requiere scripts SQL/BD, o el cambio resulta ser feature/refactor): el AI **propone promover** a sesión completa. Promover = quitar el tag `kind:patch`, generar TASKS.md y, si el Type sube a feature/refactor, disparar DESIGN.md + S7 — en la **misma** sesión (no fragmenta).
42
+
43
+ ## Plan mode
44
+
45
+ El skill resuelve la intención normalmente y describe acciones en el plan file en lugar de ejecutarlas.
46
+
47
+ ## Recursos
48
+
49
+ Ver `skills/session/SKILL.md` §"Modo lite (/patch)" para el detalle del micro-lifecycle y el escalado.
@@ -68,9 +68,11 @@ Para minimizar la necesidad de rollback:
68
68
 
69
69
  Los rollbacks de código (git) descritos arriba **no revierten cambios en base de datos**. Para revertir scripts SQL ejecutados en producción, usar el skill `sql-rollback-generator`.
70
70
 
71
- El skill produce:
72
- - **Rollback acoplado** por script: `NNN-script.rollback.sql` al lado del forward.
73
- - **Bundle global**: `rollback/00-rollback-global.sql` que deshace toda la sesión en orden inverso.
71
+ El skill (v2.0.0+) produce:
72
+ - **Un único `00-ROLLBACK.sql`** al root del bundle generado por `/agent-workflow:export-scripts` v4.0.0+. Encadena rollbacks cross-session en orden inverso (última sesión → primera, 04→01 dentro de cada una) dentro de un `BEGIN; ... COMMIT;` único.
73
+ - **Bloque "Fase 5 Cleanup irreversible"** al final del archivo, fuera de la transacción, listando irreversibles para revisión manual.
74
+
75
+ > Comportamiento v1.0.0 (companions `.rollback.sql` por sentencia + per-sesión `rollback/`) eliminado en v2.0.0. Bundles ya generados con v1.0.0 quedan como histórico.
74
76
 
75
77
  Para operaciones irreversibles (TRUNCATE, DROP COLUMN, DROP TABLE sin backup), ver `skills/sql-rollback-generator/references/irreversible-checklist.md`.
76
78
 
@@ -241,6 +241,53 @@ Artefacto opcional por sesión que captura "lo que queda para otras sesiones": d
241
241
  - Append-only en práctica (no borrar entries previas; mover items a `Discarded` con razón).
242
242
  - Si el usuario explícitamente dice "no hay backlog para esta sesión", NO crear el archivo.
243
243
 
244
+ ## Modo lite (/patch) — micro-lifecycle
245
+
246
+ Perfil de ceremonia reducida sobre el lifecycle, para tareas pequeñas y directas (fixes, ajustes, chores acotados). Expuesto como `/agent-workflow:patch` (azúcar) y activado por el flag `--lite` de `session-create`. **No es un flow nuevo**: es un modo de `flow=dev`. Origen: `docs/conclusiones/010` (session095).
247
+
248
+ ### Cuándo usarlo
249
+
250
+ - Tarea acotada que no justifica la ceremonia completa (1-3 archivos, sin decisión de arquitectura, sin contrato FE-BE nuevo).
251
+ - Pero sí merece trazabilidad mínima (HISTORY + DECISIONS lazy + commit M1), a diferencia del trabajo ad-hoc sin rastro.
252
+ - Si la tarea es feature/refactor → NO usar lite; abrir sesión completa.
253
+
254
+ ### Crear (qué cambia vs sesión normal)
255
+
256
+ ```
257
+ agent-workflow session-create --lite --flow dev --name <slug> --objetivo "<texto>"
258
+ ```
259
+
260
+ - OBJECTIVE condensado: solo `## Type` + `## Requirement` (template `PATCH_TEMPLATE`).
261
+ - `## Type` default `bugfix`; `chore` si la heurística lo detecta. `--lite` rechaza `feature|refactor`.
262
+ - Tag `kind:patch` en la columna `refs` de la fila HISTORY.
263
+
264
+ ### Las 4 fases en modo lite
265
+
266
+ - **planning**: SKIP de la ceremonia. Sin auto-plan prompt, sin TASKS.md, sin DESIGN.md/S7, sin M10. El `## Requirement` es la única tarea.
267
+ - **execution**: loop directo. Verificar rama, cambio mínimo, diff, DECISIONS sólo si no es obvio (igual que `implement` flat). La doctrina bugfix (3 pasos) aplica si el cambio lo amerita; para un fix trivial el paso 1 (root-cause) se salta con justificación inline.
268
+ - **validation**: la que aporte el cambio (test puntual si aplica). No formal.
269
+ - **closure**: condensado. Inspección mínima del diff (sin el cleanup-gate elaborado de §1.5). Commit M1 (propose-then-execute) directo. **No gradúa** por default; si surge una decisión que merece persistir → `decision` como en cualquier sesión.
270
+
271
+ ### Escalado
272
+
273
+ **Upgrade in-place** (lite → completo) — caso principal. Señales de que la tarea creció:
274
+ - Toca >3 archivos o ≥2 fuentes.
275
+ - Requiere scripts SQL / cambios de BD.
276
+ - El cambio resulta ser feature/refactor (no un fix acotado).
277
+
278
+ Cuando el AI detecta una señal: **proponer** (no auto-escalar) vía `AskUserQuestion` (estilo S2): "Esto creció. ¿Promovemos a sesión dev completa?". Si el usuario acepta, promover **en la misma sesión**:
279
+ 1. Quitar el tag `kind:patch` de la fila HISTORY.
280
+ 2. Generar TASKS.md (auto-plan).
281
+ 3. Si el Type sube a feature/refactor → disparar DESIGN.md + S7 antes de seguir.
282
+
283
+ No fragmenta (a diferencia de `--from`, que queda como alternativa manual si el usuario prefiere separar en dos sesiones).
284
+
285
+ **Downgrade** (completo → lite) — preventivo, no a mitad. El valor está en sugerir `--lite` al inicio (heurística / auto-plan) antes de invertir en TASKS/DESIGN, no en des-escalar una sesión ya armada.
286
+
287
+ ### Exports
288
+
289
+ Los exports (`release-data`) colapsan las sesiones `kind:patch`: se agrupan/resumen (no una entrada completa por patch) para no inflar informes.
290
+
244
291
  ## Cerrar sesión
245
292
 
246
293
  ### 0. Detección de items abiertos → sugerir BACKLOG.md (F-F)
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: export-scripts
3
- description: "Consolida N sesiones del workspace + `docs/scripts/` ya graduados en un paquete de paso a producción bajo `docs/scripts/NNN-export-scripts-YYYY-MM-DD/`. v3.0.0 BREAKING (F-D session062): lee `SCRIPTS.sql` único per sesión (uppercase EN, G1), parsea markers `@category`/`@stmt` y separa post-hoc en `por-sesion/sessionXXX/01-04/`. Delega `sql-rollback-generator` v1.0.0+ on-export para generar rollbacks per archivo + global encadenado 04→01. Aborta con sugerencia de `/agent-workflow:migrate --upgrade-topology` si detecta layout legacy `scripts/01-04/*.sql` (G2). Sigue produciendo `manifest.md`, `por-tema/` opt-in, `rollback-global.sql`, `ORDER.md`. Read-only / reporte — no ejecuta commits ni SQL. Invocado sólo vía `/agent-workflow:export-scripts`. v3.1 (session081): corpus extendido a `docs/` además de sesiones (DEC-002) — ver `docs/shared-contract/export-corpus-sources.md`."
4
- version: 3.1.0
3
+ description: "Consolida N sesiones del workspace + `docs/scripts/` ya graduados en un paquete de paso a producción bajo `docs/scripts/NNN-export-scripts-YYYY-MM-DD/`. v4.0.0 BREAKING (session093): layout plano cross-session al root del bundle — `00-ROLLBACK.sql`, `01-DDL-TABLES.sql`, `02-DDL-FUNCTIONS.sql`, `03-DML.sql`, `04-INSERTS.sql`, `README.md` único. Sin `por-sesion/`, sin `<file>.rollback.sql` companions, sin per-sesión `rollback/`, sin `manifest.md`/`ORDER.md` separados (absorbidos por `README.md`). Lee `SCRIPTS.sql` único per sesión (uppercase EN, G1), parsea markers `@category`/`@stmt` y consolida cross-session. Delega `sql-rollback-generator` v2.0.0+ on-export para generar `00-ROLLBACK.sql` único encadenado 04→01. Aborta con sugerencia de `/agent-workflow:migrate --upgrade-topology` si detecta layout legacy `scripts/01-04/*.sql` (G2). `--themes` opt-in: capa adicional `por-tema/<slug>/` encima del root plano. Read-only / reporte — no ejecuta commits ni SQL. Invocado sólo vía `/agent-workflow:export-scripts`."
4
+ version: 4.0.0
5
5
  ---
6
6
 
7
7
  # Export Scripts — Bundle SQL + informe consolidado desde N sesiones
@@ -31,16 +31,17 @@ Como `release` y `release-scripts` legacy, este skill requiere conocimiento del
31
31
  - Re-generar tras agregar nuevas sesiones desde el último export.
32
32
  - Antes de go/no-go meeting.
33
33
 
34
- ## Qué hace este skill
34
+ ## Qué hace este skill (v4.0.0)
35
35
 
36
- 1. Lee sesiones (`.workflow/sessions/`) recolectando `scripts/` y `queries/` de **todas** las sesiones del workspace (filtrables por `--since` y `--source`).
36
+ 1. Lee sesiones (`.workflow/sessions/`) recolectando `SCRIPTS.sql` (uppercase EN canónico) de **todas** las sesiones del workspace (filtrables por `--since` y `--source`).
37
37
  2. Escanea código fuente buscando patrones que no deben llegar a producción.
38
38
  3. Consulta git (rama vs `certificacion`, commits pendientes, archivos sin commit).
39
- 4. Delega a `sql-script-organizer` (clasificación 01→04 cross-session) y `sql-rollback-generator` (rollback acoplado + global).
40
- 5. Detecta acciones manuales requeridas (matriz heredada de `release`).
41
- 6. **Theme detection (opt-in)**: si hay `## Temas` en algún OBJECTIVE o `--themes slug1,slug2` declarado, genera vista `por-tema/` consolidada por categoría.
42
- 7. Aplica validations V1-V6 (`references/validations.md`).
43
- 8. Si pasa: escribe el dossier completo bajo `docs/scripts/NNN-export-scripts-YYYY-MM-DD/`.
39
+ 4. **Consolida cross-session por categoría al root** del bundle: `01-DDL-TABLES.sql`, `02-DDL-FUNCTIONS.sql`, `03-DML.sql`, `04-INSERTS.sql` (skip silencioso si la categoría está vacía).
40
+ 5. Delega a `sql-rollback-generator` v2.0.0+ para generar **`00-ROLLBACK.sql` único** cross-session (encadenado 04→01).
41
+ 6. Detecta acciones manuales requeridas (matriz heredada de `release`).
42
+ 7. **Theme detection (opt-in)**: si hay `## Temas` en algún OBJECTIVE o `--themes slug1,slug2` declarado, genera `por-tema/<slug>/` como capa adicional encima del root plano (NO duplica rollback).
43
+ 8. Aplica validations V1-V6 (`references/validations.md`).
44
+ 9. Si pasa: escribe el bundle completo bajo `docs/scripts/NNN-export-scripts-YYYY-MM-DD/` con el layout plano + `README.md` único.
44
45
 
45
46
  ## Qué NO hace
46
47
 
@@ -49,11 +50,17 @@ Como `release` y `release-scripts` legacy, este skill requiere conocimiento del
49
50
  - Enviar correos ni crear PRs.
50
51
  - Modificar código fuente (los hallazgos del escaneo son recomendaciones).
51
52
  - Tocar `.workflow/sessions/` ni artefactos individuales.
52
- - Migrar histórico de `docs/release/` (workspaces que ya invocaron `release` legacy mantienen ese dir como histórico).
53
+ - Migrar histórico de `docs/release/` ni bundles `docs/scripts/00X-*` generados por export-scripts v3.x (layout previo, no se reescribe).
54
+ - **Escribir `por-sesion/`** (eliminado en v4.0.0): la consolidación es cross-session al root.
55
+ - **Escribir `<file>.rollback.sql` companions** (eliminado en v4.0.0): el rollback canónico es `00-ROLLBACK.sql` único.
56
+ - **Escribir `<session>/rollback/`** (eliminado en v4.0.0): no hay per-sesión rollback.
57
+ - **Escribir `manifest.md` separado** (eliminado en v4.0.0): absorbido por `README.md`.
58
+ - **Escribir `ORDER.md` separado** (eliminado en v4.0.0): absorbido por §4 del `README.md`.
59
+ - **Escribir `rollback-global.sql` separado** (eliminado en v4.0.0): el rollback es `00-ROLLBACK.sql` único.
53
60
 
54
61
  ## Sandbox read-only
55
62
 
56
- `../session/references/sandbox-readonly-rules.md`. Plan describe NNN, sesiones incluidas, secciones del manifest, hallazgos esperados, contenido del bundle por sesión y (opcionalmente) por tema.
63
+ `../session/references/sandbox-readonly-rules.md`. Plan describe NNN, sesiones incluidas, secciones del `README.md`, hallazgos esperados, contenido del bundle plano cross-session y (opcionalmente) capa `por-tema/`.
57
64
 
58
65
  ## Estilo de comunicación
59
66
 
@@ -97,7 +104,7 @@ Output: `{workspace_mode, is_hub, source_alias, docs_root, sessions, sessions_co
97
104
  > Sesiones en formato legacy detectadas: sessionXXX, sessionYYY.
98
105
  > Migrar primero con `/agent-workflow:migrate --upgrade-topology`, luego re-correr export-scripts.
99
106
 
100
- ### Paso 1.5 — Gate de layout SQL (v3.0.0, G2)
107
+ ### Paso 1.5 — Gate de layout SQL (v4.0.0, G2)
101
108
 
102
109
  Por cada sesión del corpus, verificar el layout SQL:
103
110
 
@@ -134,7 +141,7 @@ Built-in patterns: localhost, IP literal, TODO/FIXME/XXX/HACK, hardcoded-secret,
134
141
 
135
142
  Output: `{matches: [{pattern_id, severity, file, line, snippet, recommendation}], counts, by_severity, total_matches}`.
136
143
 
137
- Si `--skip-code-scan`: marcar la sección 5 del manifest como "escaneo omitido".
144
+ Si `--skip-code-scan`: marcar la sección 6 del `README.md` como "escaneo omitido".
138
145
 
139
146
  Catálogo extendido (alta/media/baja con recomendaciones detalladas) en `references/code-scan-recommendations.md`.
140
147
 
@@ -163,47 +170,63 @@ Output dir resuelto:
163
170
 
164
171
  Si `docs/scripts/` no existe, crearlo.
165
172
 
166
- ### Paso 5 — `por-sesion/` (bundle por sesión, v3.0.0)
173
+ ### Paso 5 — Consolidación cross-session por categoría (v4.0.0)
167
174
 
168
- Para cada sesión del corpus que tenga `SCRIPTS.sql` (verificado en Paso 1.5):
175
+ Recolectar markers de todos los `SCRIPTS.sql` del corpus y consolidar al root del bundle:
169
176
 
170
- 1. Crear `por-sesion/sessionXXX-<slug>/`.
171
- 2. **Leer y parsear `SCRIPTS.sql`** de la sesión:
177
+ 1. **Para cada sesión** con `SCRIPTS.sql` (verificado en Paso 1.5):
178
+ - Leer y parsear el archivo.
172
179
  - Detectar markers `-- @category: <01-04>` + `-- @stmt: NNN-verbo-objetivo`.
173
- - Detectar opcionales `@objeto` y `@alcance` para el header canónico de cada archivo separado.
174
- - Validar idempotencia básica (presencia de `IF EXISTS`, `OR REPLACE`, `ON CONFLICT`); advertir en manifest si falta.
175
- 3. **Separar en 01-04**:
176
- - Por cada par marker → escribir archivo `por-sesion/sessionXXX-<slug>/<categoria>/<stmt>.sql` con header canónico re-derivado (Script / Sesion / Objeto / Alcance) + BEGIN/COMMIT propios.
177
- - Orden dentro de cada categoría: cronológico según aparición en SCRIPTS.sql.
180
+ - Detectar opcionales `@objeto` y `@alcance` para header de cada sentencia.
181
+ - Validar idempotencia básica (presencia de `IF EXISTS`, `OR REPLACE`, `ON CONFLICT`); advertir en `README.md` §Hallazgos si falta.
178
182
  - Spec del SCRIPTS.sql: `agent-workflow/skills/sql-script-organizer/references/scripts-sql-format.md`.
179
- 4. **Delegar a `sql-rollback-generator` v1.0.0** (on-export): genera `<stmt>.rollback.sql` por cada forward separado + `rollback/00-rollback-global.sql` encadenado 04→01.
180
- 5. Copiar `queries/` tal cual si existe (canal aparte para queries de soporte; no se separa).
181
- 6. Si la sesión tenía layout legacy `scripts/01-04/*.sql` (sub-carpetas), el Paso 1.5 ya abortó antes — nunca llegamos acá con layout mixto.
182
183
 
183
- ### Paso 6`por-tema/` (opt-in)
184
+ 2. **Consolidar por categoría al root** un archivo por categoría con todas las sentencias cross-session. Mapping marker → filename:
185
+ - `01-DDL-TABLES.sql` ← `@category: 01-ddl-tablas` (CREATE/ALTER TABLE, INDEX, SEQUENCE).
186
+ - `02-DDL-FUNCTIONS.sql` ← `@category: 02-ddl-funciones` (CREATE OR REPLACE FUNCTION/PROCEDURE).
187
+ - `03-DML.sql` ← `@category: 03-migracion` (UPDATE/DELETE/INSERT...SELECT sobre datos existentes).
188
+ - `04-INSERTS.sql` ← `@category: 04-inserts` (INSERT INTO ... VALUES, seeds).
189
+ - Orden cross-session: sessionXXX cronológica → stmt cronológica dentro de cada una.
190
+ - Header de cada archivo: bloque inicial con metadata del bundle (corpus + fecha + versión CLI) + tabla de contenidos (sentencias en orden).
191
+ - Cada bloque de sentencia preserva su header canónico (`Script` / `Sesion` / `Objeto` / `Alcance`) + bloque transaccional `BEGIN; ... COMMIT;` propio.
192
+ - **Categorías vacías → skip silencioso**: no se escribe el archivo si no hay sentencias del corpus en esa categoría.
193
+
194
+ 3. **Delegar a `sql-rollback-generator` v2.0.0** (on-export): genera `00-ROLLBACK.sql` único cross-session encadenado 04→01 (ver Paso 7).
195
+
196
+ 4. **Queries de soporte**: si alguna sesión tiene `queries/`, copiarlas a `_queries/<sessionXXX>/` (sub-dir aparte; canal de consulta, no de ejecución).
197
+
198
+ 5. Si la sesión tenía layout legacy `scripts/01-04/*.sql` (sub-carpetas), el Paso 1.5 ya abortó — nunca llegamos acá con layout mixto.
199
+
200
+ **Nota explícita**: NO se crea `por-sesion/`. NO se crea `<file>.rollback.sql` companion por sentencia. NO se crea sub-carpeta `rollback/` per-sesión. Esos artefactos del v3.x quedan eliminados del default.
201
+
202
+ ### Paso 6 — `por-tema/` (opt-in, capa adicional encima del root plano)
184
203
 
185
204
  Activación:
186
205
  - `--themes slug1,slug2` declarado, **o**
187
206
  - Al menos una sesión tiene `## Temas` en su OBJECTIVE, **o**
188
207
  - `--themes infer` declarado (inferencia LLM).
189
208
 
190
- Si activado, aplicar `references/theme-handling.md` (port adaptado de release-scripts legacy):
209
+ Si activado, generar `por-tema/<slug>/` como **capa adicional** encima del root plano — NO reemplaza los archivos `0X-*.sql` del root. Aplicar `references/theme-handling.md`:
191
210
 
192
211
  1. Resolver temas por sesión (lectura declarativa + inferencia + confirmación).
193
- 2. Asignar cada script a su tema (header `-- Temas:`, nombre, contenido, fallback `tema-general`).
194
- 3. Consolidar por categoría dentro de cada tema en un único `.sql` ejecutable (4 forwards + 4 rollbacks + 1 rollback de tema = ~9 archivos/tema).
195
- 4. Generar `ORDER.md` cross-tema con secuencia fase 1→4.
196
- 5. Si `--keep-parts`: preservar `por-tema/<slug>/parts/<categoria>/*.sql`.
212
+ 2. Asignar cada sentencia a su tema (header `-- Temas:`, nombre, contenido, fallback `tema-general`).
213
+ 3. Consolidar por categoría dentro de cada tema en un único `.sql` ejecutable: `por-tema/<slug>/01-DDL-TABLES.sql`, `02-DDL-FUNCTIONS.sql`, `03-DML.sql`, `04-INSERTS.sql`.
214
+ 4. **Rollback per-tema**: NO se genera. El rollback canónico es siempre `00-ROLLBACK.sql` al root — un solo punto de verdad para reversa. Esto evita estado inconsistente si el operador ejecuta rollback de un tema y deja otros aplicados.
215
+ 5. Si `--keep-parts`: preservar `por-tema/<slug>/parts/<categoria>/*.sql` con sentencias individuales.
216
+ 6. README §Mapping: agregar tabla "Sesión ↔ Tema ↔ Scripts" cuando `por-tema/` activado.
197
217
 
198
218
  Si no activado, **skip** este paso completo (sin sub-carpeta `por-tema/` vacía).
199
219
 
200
- ### Paso 7 — `rollback-global.sql` + `ORDER.md`
220
+ ### Paso 7 — `00-ROLLBACK.sql` cross-session (rollback único)
221
+
222
+ Delegar a **`sql-rollback-generator` v2.0.0** para generar un único archivo `00-ROLLBACK.sql` al root del bundle:
201
223
 
202
- **`rollback-global.sql`**: encadena rollbacks en orden inverso al `ORDER.md`. Si `por-tema/` existe, el global encadena rollbacks por-tema; si no, encadena rollbacks por-sesion. Operaciones irreversibles "Fase 5 — Cleanup irreversible" al final con header WARNING.
224
+ - Encadena rollbacks en orden inverso: última sesión primera, dentro de cada una 0403→02→01.
225
+ - Header del archivo lista las sesiones cubiertas + corpus + fecha de generación.
226
+ - Cuerpo: `BEGIN; ... COMMIT;` único con bloques agrupados por sesión + categoría inversa.
227
+ - **Irreversibles**: bloque "Fase 5 — Cleanup irreversible" **después** del `COMMIT;` con header `-- WARNING: IRREVERSIBLE` y referencia a `DECISIONS.md` de la sesión origen. El operador decide ejecutar este bloque manualmente.
203
228
 
204
- **`ORDER.md`**: secuencia ejecutable cross-bundle:
205
- - Sin `por-tema/`: orden por sesión cronológica, dentro de cada una 01→04.
206
- - Con `por-tema/`: intercalado por fase (Fase 1 DDL tablas cross-tema, Fase 2 DDL funciones cross-tema, etc.) — algoritmo en `references/theme-handling.md`.
229
+ **No se genera** `ORDER.md`: la secuencia ejecutable vive en §4 del `README.md` (única fuente de verdad).
207
230
 
208
231
  ### Paso 8 — Detección de acciones manuales
209
232
 
@@ -212,37 +235,38 @@ Cruzar contra `release/references/manual-actions-catalog.md` (reference cruzada
212
235
  | Condición | Acción manual |
213
236
  |---|---|
214
237
  | Tokens/api-key/credenciales mencionados sin valor | Solicitar a admin de prod (plantilla de correo) |
215
- | Scripts en `03-migracion/` | Respaldar tablas afectadas |
238
+ | Sentencias categorizadas `03-migracion` (consolidadas en `03-DML.sql`) | Respaldar tablas afectadas |
216
239
  | `ALTER TABLE ... DROP` o `DROP TABLE` | Validar ventana de downtime |
217
240
  | Escaneo: `localhost` / staging URL | Reemplazar por env var |
218
241
  | Escaneo: credenciales hardcodeadas (alta) | Rotar + gestor de secretos |
219
242
  | Rama distinta de `certificacion` con commits | Crear PR a `certificacion` |
220
243
  | Sesión activa con `.sql` sin bundle | Cerrar o aislar antes del export |
221
244
 
222
- Cada acción incluye `id` (ACT-001, …) para referenciar desde el checklist final del manifest.
245
+ Cada acción incluye `id` (ACT-001, …) para referenciar desde el checklist final del `README.md` (§9).
223
246
 
224
- ### Paso 9 — `manifest.md` + `README.md` + validaciones
247
+ ### Paso 9 — `README.md` único + validaciones
248
+
249
+ **`README.md`** (único informe + índice + how-to-execute): usar `references/readme-template.md`. Secciones canónicas v4.0.0:
225
250
 
226
- **`manifest.md`** (informe consolidado): usar `references/manifest-template.md`. Secciones canónicas:
227
251
  1. Resumen ejecutivo + readiness.
228
252
  2. Sesiones incluidas.
229
253
  3. Acciones manuales (ACT-NNN).
230
- 4. Base de datos (secuencia, rollback, impacto, vista por-tema si aplica).
231
- 5. Hallazgos del code-scan.
232
- 6. Git y ramas.
233
- 7. Documentación graduada.
234
- 8. Checklist final de producción.
235
- 9. Advertencias.
236
- 10. Metadata.
254
+ 4. Secuencia de ejecución 01→04 + invocaciones psql.
255
+ 5. Rollback (`00-ROLLBACK.sql` — cómo, cuándo, irreversibles).
256
+ 6. Hallazgos del code-scan.
257
+ 7. Git y ramas.
258
+ 8. Documentación graduada (decisiones / manuales / etc.).
259
+ 9. Checklist final de producción.
260
+ 10. Metadata (corpus + fecha + versión CLI).
237
261
 
238
- **`README.md`**: índice del directorio + mapeo sesión↔tema↔scripts + how-to-execute. Usar `references/readme-template.md`.
262
+ **NO se genera `manifest.md`** (absorbido por README §1-§10). **NO se genera `ORDER.md`** (absorbido por §4 del README). El template `manifest-template.md` queda marcado `## Status: DEPRECATED` como histórico.
239
263
 
240
264
  **Validaciones V1-V6** (`references/validations.md`):
241
- - V1 estructura del manifest.
242
- - V2 noise vetado (placeholders, paths absolutos, `NNN` sin reemplazar).
243
- - V3 secciones obligatorias del manifest.
244
- - V4 conditionals (vista por-tema honored, dry-run, código scan skip).
245
- - V5 header del manifest bien formado.
265
+ - V1 estructura del bundle: archivos `00-ROLLBACK.sql`, `01..04-*.sql`, `README.md` al root. Falla si aparece `por-sesion/`, `<file>.rollback.sql`, `<session>/rollback/`, `manifest.md`, `ORDER.md` o `rollback-global.sql`.
266
+ - V2 noise vetado (placeholders, paths absolutos, `NNN` sin reemplazar) + anti-redundancia (sin patrones del layout v3.x).
267
+ - V3 secciones obligatorias del README único (las 10).
268
+ - V4 conditionals (`por-tema/` honored si activo, dry-run, code-scan skip).
269
+ - V5 header del README bien formado.
246
270
  - V6 referencias resolubles (paths a `docs/`).
247
271
 
248
272
  Si V1, V3 o V4 fallan → abortar con error report. V2, V5, V6 → warning.
@@ -251,33 +275,30 @@ Si V1, V3 o V4 fallan → abortar con error report. V2, V5, V6 → warning.
251
275
 
252
276
  Si `--dry-run`: imprimir reporte (count sesiones incluidas, hallazgos por severidad, acciones manuales, V4 outcome). No escribir.
253
277
 
254
- Si pasa: escribir directorio completo:
278
+ Si pasa: escribir directorio completo (layout plano cross-session):
255
279
 
256
280
  ```
257
281
  docs/scripts/NNN-export-scripts-YYYY-MM-DD/
258
- ├── manifest.md # informe consolidado
259
- ├── README.md # índice + mapeo
260
- ├── ORDER.md # secuencia ejecutable
261
- ├── rollback-global.sql # rollback encadenado inverso
262
- ├── por-sesion/
263
- ├── sessionXXX-<slug>/
264
- │ │ ├── 01-ddl-tablas/
265
- │ ├── 02-ddl-funciones/
266
- │ │ ├── 03-migracion/
267
- │ │ ├── 04-inserts/
268
- │ │ └── rollback/
269
- │ └── ...
270
- └── por-tema/ # opt-in
282
+ ├── 00-ROLLBACK.sql # único rollback cross-session (encadenado 04→01)
283
+ ├── 01-DDL-TABLES.sql # CREATE/ALTER TABLE cross-session (skip si vacío)
284
+ ├── 02-DDL-FUNCTIONS.sql # CREATE OR REPLACE FUNCTION cross-session (skip si vacío)
285
+ ├── 03-DML.sql # UPDATE/DELETE/migración cross-session (skip si vacío)
286
+ ├── 04-INSERTS.sql # INSERT/seed cross-session (skip si vacío)
287
+ ├── README.md # único informe + índice + how-to-execute
288
+ ├── _queries/ # opcional: queries de soporte por sesión (canal de consulta)
289
+ └── sessionXXX/...
290
+ └── por-tema/ # opt-in (capa adicional encima del root plano)
271
291
  ├── tema-<slug>/
272
- │ ├── 01-ddl-tablas.sql # consolidado cross-session
273
- │ ├── 02-ddl-funciones.sql
274
- │ ├── 03-migracion.sql
275
- │ ├── 04-inserts.sql
276
- ├── rollback-tema-<slug>.sql
277
- │ └── parts/ # si --keep-parts
292
+ │ ├── 01-DDL-TABLES.sql # consolidado cross-session del tema
293
+ │ ├── 02-DDL-FUNCTIONS.sql
294
+ │ ├── 03-DML.sql
295
+ │ ├── 04-INSERTS.sql
296
+ └── parts/ # si --keep-parts (sentencias individuales por categoría)
278
297
  └── tema-<otro>/...
279
298
  ```
280
299
 
300
+ **No se escriben** (eliminados desde v4.0.0): `por-sesion/`, `<file>.rollback.sql` companions, `<session>/rollback/`, `rollback-global.sql` separado, `manifest.md` separado, `ORDER.md`. El histórico (`docs/scripts/001-002-003-*` generados por v3.x) queda como histórico — no se migra.
301
+
281
302
  ### Paso 11 — Resumen al usuario
282
303
 
283
304
  - Ruta del bundle (`docs/scripts/NNN-export-scripts-YYYY-MM-DD/`).
@@ -288,10 +309,10 @@ docs/scripts/NNN-export-scripts-YYYY-MM-DD/
288
309
  ## Composición con otras skills
289
310
 
290
311
  - **`sql-script-organizer`** — clasificación 01→04 cross-session (paso 5 y consolidación por tema paso 6).
291
- - **`sql-rollback-generator`** — rollback acoplado por archivo y rollback global encadenado.
312
+ - **`sql-rollback-generator`** v2.0.0+ `00-ROLLBACK.sql` único cross-session (sin companions ni per-sesión).
292
313
  - **`session`** — este skill NO invoca graduación ni cierre.
293
314
  - **`coding-standards`** — patrones de escaneo derivan de reglas de seguridad.
294
- - **`agent-workflow:redaccion-simple`** — preset default aplicado en prosa del manifest.
315
+ - **`agent-workflow:redaccion-simple`** — preset default aplicado en prosa del `README.md`.
295
316
 
296
317
  ## Re-ejecución
297
318
 
@@ -312,7 +333,7 @@ Detalle completo: `references/deprecation-plan.md`.
312
333
 
313
334
  ## Recursos adicionales
314
335
 
315
- - **`references/manifest-template.md`** — plantilla canónica del informe consolidado (port adaptado de `release/references/report-template.md` con nuevos paths).
336
+ - **`references/manifest-template.md`** — **DEPRECATED** desde v4.0.0. El informe consolidado se redacta directamente en `README.md` siguiendo `references/readme-template.md`. Archivo se conserva como histórico — no usar para bundles nuevos.
316
337
  - **`references/readme-template.md`** — plantilla del README del bundle.
317
338
  - **`references/lexico-tecnico.md`** — lista mínima de noise vetado para V2.
318
339
  - **`references/validations.md`** — V1-V6 con condiciones de hard-fail.
@@ -1,10 +1,10 @@
1
- # Léxico técnico — limpieza mínima de noise para export-scripts
1
+ # Léxico técnico — limpieza mínima de noise para export-scripts (v4.0.0)
2
2
 
3
- A diferencia de `export-report/references/lexico.md` (que traduce técnico→ejecutivo para audiencia gerencial), este léxico es **mínimo**: la audiencia de `export-scripts` es técnica (devs / DBAs / release managers) y los términos técnicos son bienvenidos. Sólo se veta el noise interno: placeholders sin reemplazar, paths del developer, restos de plantilla.
3
+ A diferencia de `export-report/references/lexico.md` (que traduce técnico→ejecutivo para audiencia gerencial), este léxico es **mínimo**: la audiencia de `export-scripts` es técnica (devs / DBAs / release managers) y los términos técnicos son bienvenidos. Sólo se veta el noise interno: placeholders sin reemplazar, paths del developer, restos de plantilla, y referencias residuales al layout v3.x (`por-sesion/`, `manifest.md` separado, `ORDER.md`, `rollback-global.sql`).
4
4
 
5
5
  ## Lista vetada (V2 — para grep determinista)
6
6
 
7
- Términos / patrones que **no deben aparecer** en el cuerpo del `manifest.md` rendered (excepto en `## 10. Metadata`):
7
+ Términos / patrones que **no deben aparecer** en el cuerpo del `README.md` rendered (excepto en `## 10. Metadata`):
8
8
 
9
9
  ```
10
10
  {{
@@ -70,11 +70,25 @@ El validator de V2 (descrito en `validations.md` §V2) procesa este `.md` extray
70
70
 
71
71
  ```bash
72
72
  awk '/^```$/{flag=!flag; next} flag' lexico-tecnico.md > /tmp/lexico-vetado.txt
73
- grep -n -F -f /tmp/lexico-vetado.txt /tmp/manifest-body.md
73
+ grep -n -F -f /tmp/lexico-vetado.txt /tmp/readme-body.md
74
74
  ```
75
75
 
76
76
  El primer awk toggle-extrae las líneas entre triple-backticks (alterna `flag` cada `\`\`\`` solitario); el segundo grep matchea como fixed strings.
77
77
 
78
- ## Total 50 términos vetados
78
+ ## Anti-redundancia v4.0.0 (regex aparte)
79
79
 
80
- Mantenimiento: revisar tras cada change major del template; los términos derivan 1:1 de los placeholders activos en `manifest-template.md`.
80
+ Patrones del layout v3.x que NO deben aparecer en prosa del README (V2 los rechaza vía regex, no fixed-string):
81
+
82
+ ```regex
83
+ por-sesion/
84
+ manifest\.md
85
+ ORDER\.md
86
+ rollback-global\.sql
87
+ \.rollback\.sql
88
+ ```
89
+
90
+ Estos patrones son válidos sólo dentro de bloques que declaran explícitamente "v3.x histórico" / "DEPRECATED" / "eliminado". V2 valida el contexto (presencia de palabra "deprecated"/"histórico" cercana).
91
+
92
+ ## Total ≈ 50 términos vetados (fixed-string) + 5 patrones v3.x (regex)
93
+
94
+ Mantenimiento: revisar tras cada change major del `readme-template.md`; los términos derivan 1:1 de los placeholders activos en la plantilla.
@@ -1,6 +1,18 @@
1
1
  # Plantilla — Informe del bundle export-scripts
2
2
 
3
- Plantilla exacta que usa el skill `export-scripts` para generar `manifest.md` dentro del output dir. Reemplazar los placeholders `[entre corchetes]` con valores reales al momento de generar.
3
+ ## Status: DEPRECATED (desde v4.0.0 session093)
4
+
5
+ Este template ya **no se usa** para bundles nuevos. Desde `export-scripts` v4.0.0 el informe consolidado vive en `README.md` único al root del bundle (ver `readme-template.md`). El layout plano cross-session reemplazó `manifest.md` + `ORDER.md` + `rollback-global.sql` separados.
6
+
7
+ **Si estás generando un bundle nuevo**: usar `references/readme-template.md` (plantilla canónica).
8
+
9
+ **Si estás leyendo un bundle histórico** (`docs/scripts/001-002-003-export-scripts-*` generado por v3.x): este template describe el formato que tenía. No se reescriben los bundles ya generados.
10
+
11
+ ---
12
+
13
+ ## Plantilla original (export-scripts v3.x — histórico)
14
+
15
+ Plantilla exacta que usaba el skill `export-scripts` v3.x para generar `manifest.md` dentro del output dir. Reemplazar los placeholders `[entre corchetes]` con valores reales al momento de generar.
4
16
 
5
17
  > **Heredada de `release/references/report-template.md` v2.0.0**. Cambios respecto al original: (1) paths actualizados al nuevo output dir único; (2) sección 4.4 "Vista por tema" condicional (V4.a); (3) header con readiness color emoji; (4) sección 10 cita `export-scripts v1.0.0`.
6
18