@tacuchi/agent-workflow-cli 10.4.0 → 11.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 (37) hide show
  1. package/LICENSE +661 -0
  2. package/README.md +5 -1
  3. package/package.json +2 -2
  4. package/skills/agent-workflow/LICENSE +661 -21
  5. package/skills/agent-workflow/README.md +2 -2
  6. package/skills/agent-workflow/commands/export-scripts.md +35 -62
  7. package/skills/agent-workflow/exports/export-scripts/SKILL.md +114 -248
  8. package/skills/agent-workflow/exports/export-scripts/references/lexico-tecnico.md +17 -64
  9. package/skills/agent-workflow/exports/export-scripts/references/readme-template.md +24 -264
  10. package/skills/agent-workflow/exports/export-scripts/references/validations.md +29 -250
  11. package/skills/agent-workflow/standards/sql-rollback-generator/SKILL.md +72 -126
  12. package/skills/agent-workflow/standards/sql-script-organizer/SKILL.md +12 -13
  13. package/dist/cli/tui/components/command-palette.d.ts +0 -18
  14. package/dist/cli/tui/components/command-palette.d.ts.map +0 -1
  15. package/dist/cli/tui/components/command-palette.js +0 -23
  16. package/dist/cli/tui/components/command-palette.js.map +0 -1
  17. package/dist/cli/tui/components/sidebar.d.ts +0 -27
  18. package/dist/cli/tui/components/sidebar.d.ts.map +0 -1
  19. package/dist/cli/tui/components/sidebar.js +0 -37
  20. package/dist/cli/tui/components/sidebar.js.map +0 -1
  21. package/dist/cli/tui/components/toast-stack.d.ts +0 -41
  22. package/dist/cli/tui/components/toast-stack.d.ts.map +0 -1
  23. package/dist/cli/tui/components/toast-stack.js +0 -61
  24. package/dist/cli/tui/components/toast-stack.js.map +0 -1
  25. package/dist/cli/tui/components/toast.d.ts +0 -7
  26. package/dist/cli/tui/components/toast.d.ts.map +0 -1
  27. package/dist/cli/tui/components/toast.js +0 -17
  28. package/dist/cli/tui/components/toast.js.map +0 -1
  29. package/skills/agent-workflow/doctrine/doctor/SKILL.md.tmp +0 -0
  30. package/skills/agent-workflow/doctrine/hub-init/SKILL.md.tmp +0 -0
  31. package/skills/agent-workflow/doctrine/migrate/SKILL.md.tmp +0 -0
  32. package/skills/agent-workflow/doctrine/project-init/SKILL.md.tmp +0 -0
  33. package/skills/agent-workflow/doctrine/rules/SKILL.md.tmp +0 -0
  34. package/skills/agent-workflow/exports/export-arq/SKILL.md.tmp +0 -0
  35. package/skills/agent-workflow/exports/export-report/SKILL.md.tmp +0 -0
  36. package/skills/agent-workflow/specialties/analyze-investigate/SKILL.md.tmp +0 -0
  37. package/skills/agent-workflow/standards/coding-standards/SKILL.md.tmp +0 -0
@@ -1,345 +1,211 @@
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/`. 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
3
+ description: "Consolida los SQL pendientes del workspace en un único paquete `docs/scripts/NNN-export-scripts-YYYY-MM-DD/` con numeración continua: `00-ROLLBACK.sql` + `01-…`, `02-…`, etc. en orden ascendente. Lee SQL desde dos fuentes: `.workflow/sessions/<folder>/SCRIPTS.sql` de cada sesión Y archivos `docs/scripts/*.sql` standalone (excluyendo bundles previos `docs/scripts/NNN-export-scripts-*/`). Headers SQL mínimos (1 línea), README minimal (solo índice + cómo aplicar + cómo revertir). Genera `00-ROLLBACK.sql` AL FINAL leyendo los forwards consolidados. Read-only/reporte — no ejecuta SQL ni commits. Invocado vía `/agent-workflow:export-scripts`."
4
+ version: 5.0.0
5
5
  ---
6
6
 
7
- # Export Scripts — Bundle SQL + informe consolidado desde N sesiones
7
+ # Export Scripts — Bundle SQL consolidado, simple y directo
8
8
 
9
- Consolida N sesiones cerradas (más opcionalmente activas) en un único output dir `docs/scripts/NNN-export-scripts-YYYY-MM-DD/`. Es **solo lectura/reporte**: el usuario sigue ejecutando scripts, correos, merges y commits manualmente.
9
+ Consolida SQL pendientes de N sesiones + archivos standalone en un único bundle `docs/scripts/NNN-export-scripts-YYYY-MM-DD/` con numeración continua tras `00-ROLLBACK.sql`. Solo lectura/reporte: el usuario aplica los scripts manualmente.
10
10
 
11
- > Último comando de la familia `/agent-workflow:export-*`. Refactor que consolida `/agent-workflow:release` v2.0.0 + `/agent-workflow:release-scripts` v2.0.0. Propuesta del modelo: `docs/conclusiones/007-export-commands-family.md`. Plan de deprecación: ver `references/deprecation-plan.md`.
11
+ > v5.0.0 (session103) simplificación radical del v4.0.0: numeración continua, headers SQL de 1 línea, README minimal (3 secciones), búsqueda extendida a `docs/scripts/*.sql` standalone, rollback derivado de forwards.
12
12
 
13
13
  ## Excepción session-aware
14
14
 
15
- Como `release` y `release-scripts` legacy, este skill requiere conocimiento del lifecycle. **No crea ni modifica sesiones**. Si el workspace no tiene sesiones cerradas abortar y sugerir `/agent-workflow:session create`.
16
-
17
- **Solo formato actual (v0.9+)**: sesiones legacy abortan; migrar con `/agent-workflow:migrate --upgrade-topology`.
15
+ Requiere conocimiento del lifecycle. **No crea ni modifica sesiones**. Si el workspace no tiene SQL pendientes (ni en sesiones cerradas ni en `docs/scripts/`) abortar.
18
16
 
19
17
  **Consumo de CLI `agent-workflow`** (no leer paths hardcodeados):
20
18
 
21
- - `agent-workflow release-data [--since sessionNNN] [--source alias] [--include-graduated]` — dump consolidado de sesiones + bundles graduados.
22
- - `agent-workflow session-artifacts --code <NNN>` — lectura lazy de OBJECTIVE/TASKS/DECISIONS/scripts (con fallback bilingual a OBJETIVO/TASKS/DECISIONES legacy).
23
- - `agent-workflow code-scan` — escaneo determinístico (built-in + opcionalmente `--patterns-file`).
19
+ - `agent-workflow release-data [--since sessionNNN] [--source alias] [--include-graduated]` — dump consolidado de sesiones.
20
+ - `agent-workflow session-artifacts --code <NNN>` — lectura lazy de artefactos por sesión.
24
21
  - `agent-workflow next-number docs/scripts` — numeración determinística del output dir.
25
22
  - Resolución hub-aware de `docs/scripts/` la maneja el CLI internamente.
26
23
 
27
24
  ## When to use
28
25
 
29
- - "Bundle SQL del release", "informe de release", "qué falta para producción", "preparar paso a prod".
30
- - Sesiones cerradas a consolidar para promover a `certificacion` o `main`.
31
- - Re-generar tras agregar nuevas sesiones desde el último export.
32
- - Antes de go/no-go meeting.
26
+ - "Bundle SQL del release", "preparar paso a prod", "consolidar SQLs pendientes".
27
+ - Antes de promover a `certificacion` o `main`.
33
28
 
34
- ## Qué hace este skill (v4.0.0)
29
+ ## Qué hace
35
30
 
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
- 2. Escanea código fuente buscando patrones que no deben llegar a producción.
38
- 3. Consulta git (rama vs `certificacion`, commits pendientes, archivos sin commit).
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.
31
+ 1. Recolecta SQL del workspace desde **dos fuentes** (Paso 1):
32
+ - `.workflow/sessions/<folder>/SCRIPTS.sql` de cada sesión del corpus.
33
+ - `docs/scripts/*.sql` standalone (top-level), **excluyendo** cualquier `docs/scripts/NNN-export-scripts-*/` (bundles previos de este mismo skill).
34
+ 2. Clasifica sentencias por categoría (DDL-TABLES / DDL-FUNCTIONS / DML / INSERTS).
35
+ 3. Consolida cross-source por categoría en archivos al root del bundle con **numeración continua** tras `00-ROLLBACK.sql` (Paso 4).
36
+ 4. Escribe los forwards consolidados.
37
+ 5. Genera `00-ROLLBACK.sql` **al final**, leyendo los forwards ya escritos (Paso 6).
38
+ 6. Escribe `README.md` minimal con índice de archivos + cómo aplicar + cómo revertir (Paso 7).
45
39
 
46
40
  ## Qué NO hace
47
41
 
48
- - Ejecutar commits, merges, push (ver `agent-workflow:commits-policy`).
49
- - Ejecutar scripts SQL contra BD.
50
- - Enviar correos ni crear PRs.
51
- - Modificar código fuente (los hallazgos del escaneo son recomendaciones).
52
- - Tocar `.workflow/sessions/` ni artefactos individuales.
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.
42
+ - Ejecutar SQL, commits, merges, push.
43
+ - Tocar `.workflow/sessions/` ni archivos standalone de `docs/scripts/*.sql` (lectura only).
44
+ - Migrar bundles previos (`docs/scripts/00X-export-scripts-*` quedan como histórico).
45
+ - Generar plantillas de correo, checklists de producción, listados de commits, listados de sesiones, ACT-NNN, resúmenes ejecutivos.
60
46
 
61
47
  ## Sandbox read-only
62
48
 
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/`.
64
-
65
- ## Estilo de comunicación
66
-
67
- `../session/references/communication-style.md`. Confirmación antes de crear el bundle SQL consolidado; si declina, ejecutar como `--dry-run` (sólo reporte propositivo).
49
+ `../session/references/sandbox-readonly-rules.md`. Plan describe NNN, fuentes detectadas, archivos esperados al root y contenido aproximado del README.
68
50
 
69
51
  ## Entrada
70
52
 
71
53
  ```
72
54
  /agent-workflow:export-scripts [--sessions NNN[,NNN]] [--since sessionNNN] [--source <alias>]
73
- [--themes slug1,slug2|infer] [--keep-parts]
74
- [--skip-code-scan] [--dry-run]
55
+ [--skip-standalone] [--dry-run]
75
56
  ```
76
57
 
77
58
  | Flag | Comportamiento |
78
59
  |---|---|
79
- | `--sessions NNN[,NNN]` | Filtro discreto por código. Toma precedencia sobre `--since` (si ambos se pasan, `--since` se ignora con warning) |
80
- | `--since sessionNNN` | Incluye sólo sesiones posteriores a NNN (inclusive). Ignorado si `--sessions` presente |
60
+ | `--sessions NNN[,NNN]` | Filtro discreto por código (precedencia sobre `--since`) |
61
+ | `--since sessionNNN` | Incluye sólo sesiones posteriores a NNN (inclusive) |
81
62
  | `--source <alias>` | Limita a una fuente específica (hub mode) |
82
- | `--themes slug1,slug2` | Genera `por-tema/` con los slugs declarados |
83
- | `--themes infer` | Inferencia LLM de temas (mismo flujo que release-scripts legacy) |
84
- | `--keep-parts` | Preserva `por-tema/<slug>/parts/<categoria>/*.sql` con scripts individuales |
85
- | `--skip-code-scan` | Omite el escaneo de código fuente |
63
+ | `--skip-standalone` | Omite la lectura de `docs/scripts/*.sql` standalone |
86
64
  | `--dry-run` | Reporte propositivo sin escribir archivos |
87
65
 
88
- Sin args: incluye todas las sesiones cerradas, sin vista `por-tema/`, escanea todo el código.
89
-
90
- Ejemplo: `/agent-workflow:export-scripts --sessions 055,057,061` consolida sólo esas 3 sesiones.
66
+ Sin args: incluye todas las sesiones cerradas + todos los `.sql` standalone de `docs/scripts/` (excluyendo bundles previos).
91
67
 
92
68
  ## Flujo
93
69
 
94
- ### Paso 1 — Descubrimiento de sesiones
95
-
96
- ```
97
- agent-workflow release-data --include-graduated [--sessions NNN[,NNN]] [--since sessionNNN] [--source <alias>]
98
- ```
99
-
100
- Output: `{workspace_mode, is_hub, source_alias, docs_root, sessions, sessions_count, legacy_sessions, graduated_bundles}`.
101
-
102
- **Sesiones legacy v0.x (REQUIREMENTS.md)**: si `legacy_sessions` no vacío → abortar:
103
-
104
- > Sesiones en formato legacy detectadas: sessionXXX, sessionYYY.
105
- > Migrar primero con `/agent-workflow:migrate --upgrade-topology`, luego re-correr export-scripts.
106
-
107
- ### Paso 1.5 — Gate de layout SQL (v4.0.0, G2)
70
+ ### Paso 1 — Recolección de fuentes SQL
108
71
 
109
- Por cada sesión del corpus, verificar el layout SQL:
72
+ **Fuente A sesiones**:
110
73
 
111
74
  ```
112
- agent-workflow session-artifacts --code <CODE>
75
+ agent-workflow release-data [--sessions NNN[,NNN]] [--since sessionNNN] [--source <alias>]
113
76
  ```
114
77
 
115
- Lógica:
116
- 1. Si `scripts_sql_present: true` → OK, usar `SCRIPTS.sql` (path: `.workflow/sessions/<folder>/SCRIPTS.sql`).
117
- 2. Si `scripts_sql_present: false` Y existe carpeta `.workflow/sessions/<folder>/scripts/` con sub-carpetas `01-ddl-tablas/`, `02-ddl-funciones/`, `03-migracion/` o `04-inserts/` → **ABORTAR**:
78
+ Por cada sesión del corpus, leer `.workflow/sessions/<folder>/SCRIPTS.sql` si existe. Si no existe → skip silencioso (no es error). Markers esperados: `-- @category: <01-04>` + `-- @stmt: NNN-verbo-objetivo` (spec en `agent-workflow/skills/sql-script-organizer/references/scripts-sql-format.md`).
118
79
 
119
- > Layout SQL legacy detectado en sessionXXX-<slug>:
120
- > - scripts/01-ddl-tablas/...
121
- > - scripts/02-ddl-funciones/...
122
- > Migrar primero con `/agent-workflow:migrate --upgrade-topology` (consolida en SCRIPTS.sql) y luego re-correr export-scripts.
80
+ **Fuente B standalone en `docs/scripts/`** (a menos que `--skip-standalone`):
123
81
 
124
- 3. Si ninguno de los dos: la sesión no tiene cambios SQL skipear esa sesión silenciosamente (no es error).
82
+ Listar `docs/scripts/*.sql` (sólo top-level). **Excluir explícitamente** cualquier archivo dentro de directorios `docs/scripts/NNN-export-scripts-*/` (son outputs previos de este skill, no fuente). Por cada archivo:
83
+ - Inferir categoría desde el contenido: `CREATE TABLE`/`ALTER TABLE`/`CREATE INDEX` → `01`; `CREATE OR REPLACE FUNCTION` → `02`; `UPDATE`/`DELETE` → `03`; `INSERT INTO ... VALUES` → `04`.
84
+ - Si el archivo tiene markers `@category` explícitos, respetar el declarado.
85
+ - Si el filename contiene `rollback` (caso `*-rollback.sql` legacy): skip — no se incluye en forward, se asume que el operador ya tiene su propio rollback.
125
86
 
126
- **Nunca consumir sesiones mixtas**: el bundle final debe ser coherente, sin mezclar layouts.
87
+ Si la unión de Fuentes A + B está vacía abortar con mensaje "No hay SQL pendientes en el workspace".
127
88
 
128
- Para artefactos por sesión: el `session-artifacts` ya incluye flags de presencia (`scripts_sql_present`, `conclusiones_present`, etc.).
129
-
130
- ### Paso 2 — Escaneo de código fuente (delegado a `code-scan`)
131
-
132
- ```
133
- agent-workflow code-scan
134
- ```
135
-
136
- Built-in patterns: localhost, IP literal, TODO/FIXME/XXX/HACK, hardcoded-secret, console-log. Override con `--patterns-file references/code-scan-recommendations.md` (catálogo extendido) o `--pattern ID:REGEX:SEV` repetible.
137
-
138
- **Excludes** por default: `node_modules/`, `target/`, `dist/`, `build/`, `.workflow/`, `docs/`, `tests/`, `test/`, `.git/`, `__pycache__/`, `.idea/`, `.vscode/`. Override: `--exclude DIR1,DIR2`.
139
-
140
- **Extensiones** por default: `.java`, `.ts`, `.js`, `.py`, `.go`, `.rb`, `.php`, `.cs`, `.kt`, `.scala`, `.vue`, `.tsx`, `.jsx`, `.properties`, `.yml`, `.yaml`, `.json`, `.xml`, `.sql`. Override: `--ext`.
141
-
142
- Output: `{matches: [{pattern_id, severity, file, line, snippet, recommendation}], counts, by_severity, total_matches}`.
143
-
144
- Si `--skip-code-scan`: marcar la sección 6 del `README.md` como "escaneo omitido".
145
-
146
- Catálogo extendido (alta/media/baja con recomendaciones detalladas) en `references/code-scan-recommendations.md`.
147
-
148
- ### Paso 3 — Estado de git
149
-
150
- ```
151
- git rev-parse --abbrev-ref HEAD
152
- git log certificacion..HEAD --oneline
153
- git log HEAD..certificacion --oneline
154
- git status --porcelain
155
- git diff certificacion --stat
156
- git branch -a --list
157
- ```
158
-
159
- Interpretar: rama actual, commits no mergeados, cambios sin commit, archivos modificados. Si `certificacion`: marcar "ya integrada". Si git falla: registrar advertencia, no abortar.
160
-
161
- ### Paso 4 — Numeración del output dir
89
+ ### Paso 2 Numeración del output dir
162
90
 
163
91
  ```
164
92
  agent-workflow next-number docs/scripts
165
93
  ```
166
94
 
167
- Output dir resuelto:
168
- - **hub mode** → `<hub>/docs/scripts/NNN-export-scripts-YYYY-MM-DD/`.
169
- - **project mode** → `<cwd>/docs/scripts/NNN-export-scripts-YYYY-MM-DD/`.
170
-
171
- Si `docs/scripts/` no existe, crearlo.
172
-
173
- ### Paso 5 — Consolidación cross-session por categoría (v4.0.0)
95
+ Output: `<docs>/scripts/NNN-export-scripts-YYYY-MM-DD/` (hub-aware vía CLI).
174
96
 
175
- Recolectar markers de todos los `SCRIPTS.sql` del corpus y consolidar al root del bundle:
97
+ ### Paso 3 Clasificación y orden interno
176
98
 
177
- 1. **Para cada sesión** con `SCRIPTS.sql` (verificado en Paso 1.5):
178
- - Leer y parsear el archivo.
179
- - Detectar markers `-- @category: <01-04>` + `-- @stmt: NNN-verbo-objetivo`.
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.
182
- - Spec del SCRIPTS.sql: `agent-workflow/skills/sql-script-organizer/references/scripts-sql-format.md`.
99
+ Agrupar todas las sentencias recolectadas por categoría canónica:
183
100
 
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.
101
+ 1. `DDL-TABLES``CREATE TABLE`, `ALTER TABLE`, `CREATE INDEX`, `CREATE SEQUENCE`.
102
+ 2. `DDL-FUNCTIONS` `CREATE OR REPLACE FUNCTION`, `PROCEDURE`.
103
+ 3. `DML` `UPDATE`, `DELETE`, migraciones de datos.
104
+ 4. `INSERTS` `INSERT INTO ... VALUES`, seeds.
193
105
 
194
- 3. **Delegar a `sql-rollback-generator` v2.0.0** (on-export): genera `00-ROLLBACK.sql` único cross-session encadenado 0401 (ver Paso 7).
106
+ Orden interno dentro de cada categoría: cronológico por origen sesionXXX ascendente stmt ascendente dentro de cada una; archivos standalone se intercalan por su orden léxico (`001-…`, `002-…`).
195
107
 
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).
108
+ ### Paso 4 Numeración continua
197
109
 
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.
110
+ Asignar números **secuenciales** a las categorías **con contenido**, en el orden canónico arriba:
199
111
 
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)
112
+ | Categorías presentes | Archivos generados al root |
113
+ |---|---|
114
+ | Sólo DML | `00-ROLLBACK.sql`, `01-DML.sql` |
115
+ | DDL-TABLES + DML | `00-ROLLBACK.sql`, `01-DDL-TABLES.sql`, `02-DML.sql` |
116
+ | DDL-TABLES + DDL-FUNCTIONS + INSERTS | `00-ROLLBACK.sql`, `01-DDL-TABLES.sql`, `02-DDL-FUNCTIONS.sql`, `03-INSERTS.sql` |
117
+ | Las 4 | `00-ROLLBACK.sql`, `01-DDL-TABLES.sql`, `02-DDL-FUNCTIONS.sql`, `03-DML.sql`, `04-INSERTS.sql` |
203
118
 
204
- Activación:
205
- - `--themes slug1,slug2` declarado, **o**
206
- - Al menos una sesión tiene `## Temas` en su OBJECTIVE, **o**
207
- - `--themes infer` declarado (inferencia LLM).
119
+ **Sin gaps**: categorías vacías no ocupan número. El primer forward siempre es `01-…`.
208
120
 
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`:
121
+ ### Paso 5Escribir forwards
210
122
 
211
- 1. Resolver temas por sesión (lectura declarativa + inferencia + confirmación).
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.
123
+ Por cada categoría con contenido, escribir un archivo con:
217
124
 
218
- Si no activado, **skip** este paso completo (sin sub-carpeta `por-tema/` vacía).
125
+ **Header del archivo** (3 líneas máx):
219
126
 
220
- ### Paso 7 — `00-ROLLBACK.sql` cross-session (rollback único)
127
+ ```sql
128
+ -- 0N-<CATEGORIA>.sql — bundle NNN-export-scripts-YYYY-MM-DD
129
+ -- Generado por agent-workflow export-scripts v5.0.0
130
+ ```
221
131
 
222
- Delegar a **`sql-rollback-generator` v2.0.0** para generar un único archivo `00-ROLLBACK.sql` al root del bundle:
132
+ **Cuerpo**: las sentencias consolidadas en orden cronológico. Por cada sentencia, **un comentario de una línea** identificando su origen, seguido del SQL:
223
133
 
224
- - Encadena rollbacks en orden inverso: última sesión → primera, dentro de cada una 04→03→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.
134
+ ```sql
135
+ -- sessionXXX / NNN-verbo-objetivo
136
+ BEGIN;
137
+ <SQL del SCRIPTS.sql original>
138
+ COMMIT;
139
+ ```
228
140
 
229
- **No se genera** `ORDER.md`: la secuencia ejecutable vive en §4 del `README.md` (única fuente de verdad).
141
+ **Reglas de header SQL**:
142
+ - No replicar la motivación / impacto / idempotencia que ya está en el SCRIPTS.sql origen (se copia tal cual lo que escribió el developer).
143
+ - No agregar índice de sentencias al inicio del archivo.
144
+ - No agregar SELECTs de verificación post-write — si el developer los puso en SCRIPTS.sql, quedan; si no, no se inventan.
145
+ - El header de bloque per-sentencia es UNA línea: `-- sessionXXX / stmt-id` o `-- docs/scripts/001-filename.sql` (para fuente standalone).
230
146
 
231
- ### Paso 8Detección de acciones manuales
147
+ ### Paso 6Generar `00-ROLLBACK.sql` (al final)
232
148
 
233
- Cruzar contra `release/references/manual-actions-catalog.md` (reference cruzada DEC-004 session061). Reglas resumidas:
149
+ Delegar a `sql-rollback-generator` v3.0.0+ **leyendo los forwards ya escritos** (no el SCRIPTS.sql original). Produce un archivo único al root del bundle con:
234
150
 
235
- | Condición | Acción manual |
236
- |---|---|
237
- | Tokens/api-key/credenciales mencionados sin valor | Solicitar a admin de prod (plantilla de correo) |
238
- | Sentencias categorizadas `03-migracion` (consolidadas en `03-DML.sql`) | Respaldar tablas afectadas |
239
- | `ALTER TABLE ... DROP` o `DROP TABLE` | Validar ventana de downtime |
240
- | Escaneo: `localhost` / staging URL | Reemplazar por env var |
241
- | Escaneo: credenciales hardcodeadas (alta) | Rotar + gestor de secretos |
242
- | Rama distinta de `certificacion` con commits | Crear PR a `certificacion` |
243
- | Sesión activa con `.sql` sin bundle | Cerrar o aislar antes del export |
151
+ - Header mínimo (2 líneas: bundle + fecha).
152
+ - Sentencias inversas en orden inverso al de los forwards (último → primero).
153
+ - Bloque `BEGIN; COMMIT;` único.
154
+ - Bloque "Fase 5 Cleanup irreversible" al final fuera de la transacción (solo si hay irreversibles).
244
155
 
245
- Cada acción incluye `id` (ACT-001, …) para referenciar desde el checklist final del `README.md` (§9).
156
+ ### Paso 7 Escribir `README.md`
246
157
 
247
- ### Paso 9 — `README.md` único + validaciones
158
+ Usar `references/readme-template.md`. Sólo 3 secciones:
248
159
 
249
- **`README.md`** (único informe + índice + how-to-execute): usar `references/readme-template.md`. Secciones canónicas v4.0.0:
160
+ 1. `## Archivos` tabla con archivos generados (1 fila por archivo presente).
161
+ 2. `## Aplicar` — bloque `bash` con `psql -f` por archivo, en orden ascendente.
162
+ 3. `## Revertir` — `psql -f 00-ROLLBACK.sql` + nota sobre Fase 5 si aplica.
250
163
 
251
- 1. Resumen ejecutivo + readiness.
252
- 2. Sesiones incluidas.
253
- 3. Acciones manuales (ACT-NNN).
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).
164
+ **Vetado** en el README: resumen ejecutivo, tabla de sesiones, plantillas de correo, ACT-NNN, listado de commits, checklist de producción, documentación graduada.
261
165
 
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.
166
+ ### Paso 8 Validaciones V1-V2
263
167
 
264
- **Validaciones V1-V6** (`references/validations.md`):
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.
270
- - V6 referencias resolubles (paths a `docs/`).
168
+ Aplicar `references/validations.md`:
271
169
 
272
- Si V1, V3 o V4 fallan abortar con error report. V2, V5, V6 → warning.
170
+ - **V1**: estructura del bundle (archivos obligatorios + numeración continua sin gaps + vetados ausentes).
171
+ - **V2**: ausencia de placeholders en `README.md` y `.sql`.
273
172
 
274
- ### Paso 10 Escribir output
173
+ Ambas hard-fail. Si fallan abortar antes de finalizar.
275
174
 
276
- Si `--dry-run`: imprimir reporte (count sesiones incluidas, hallazgos por severidad, acciones manuales, V4 outcome). No escribir.
175
+ ### Paso 9 Resumen al usuario
277
176
 
278
- Si pasa: escribir directorio completo (layout plano cross-session):
177
+ Una línea por archivo escrito + ruta del bundle. No replicar el contenido del README en el resumen. Ejemplo:
279
178
 
280
179
  ```
281
- docs/scripts/NNN-export-scripts-YYYY-MM-DD/
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)
291
- ├── tema-<slug>/
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)
297
- └── tema-<otro>/...
180
+ Bundle escrito: docs/scripts/004-export-scripts-2026-05-28/
181
+ 00-ROLLBACK.sql (12 líneas)
182
+ 01-DML.sql (28 líneas)
183
+ README.md (18 líneas)
298
184
  ```
299
185
 
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
-
302
- ### Paso 11 — Resumen al usuario
303
-
304
- - Ruta del bundle (`docs/scripts/NNN-export-scripts-YYYY-MM-DD/`).
305
- - Counts: sesiones incluidas, scripts totales, hallazgos por severidad, acciones manuales pendientes.
306
- - Si `por-tema/` activado: temas resueltos + scripts por tema.
307
- - Advertencias bloqueantes: sesiones abiertas, rollback ausente, irreversibles sin respaldo.
308
-
309
186
  ## Composición con otras skills
310
187
 
311
- - **`sql-script-organizer`** — clasificación 0104 cross-session (paso 5 y consolidación por tema paso 6).
312
- - **`sql-rollback-generator`** v2.0.0+ — `00-ROLLBACK.sql` único cross-session (sin companions ni per-sesión).
188
+ - **`sql-script-organizer`** — clasificación de categorías 01-04 cross-session.
189
+ - **`sql-rollback-generator`** v3.0.0+ — `00-ROLLBACK.sql` derivado de forwards.
313
190
  - **`session`** — este skill NO invoca graduación ni cierre.
314
- - **`coding-standards`** — patrones de escaneo derivan de reglas de seguridad.
315
191
  - **`agent-workflow:redaccion-simple`** — preset default aplicado en prosa del `README.md`.
316
192
 
317
193
  ## Re-ejecución
318
194
 
319
- Idempotente funcional pero NO sobreescribe bundles previos. Cada ejecución toma siguiente NNN. Para regenerar: borrar el directorio manualmente y re-invocar.
320
-
321
- ## Relación con `release` / `release-scripts` legacy
322
-
323
- Plan de deprecación Fase 1 (plugin v2.8.0):
324
- - `/agent-workflow:release` y `/agent-workflow:release-scripts` siguen funcionando idénticos. Output legacy (`docs/release/NNN-informe-release.md` + `docs/scripts/NNN-sessionXXX-<slug>/` + `scripts-por-tema/`) sin cambios.
325
- - Banner deprecation visible al cargar SKILL.md y commands/*.md de ambos.
326
- - Workspaces que ya invocaron `release` mantienen `docs/release/` como histórico. Nuevas invocaciones se hacen vía `/agent-workflow:export-scripts`.
195
+ Idempotente funcional pero NO sobrescribe bundles previos. Cada ejecución toma siguiente NNN. Para regenerar: borrar el directorio manualmente y re-invocar.
327
196
 
328
- Plan de deprecación Fase 2 (plugin v3.0.0 — futuro, sin compromiso de fecha):
329
- - Remoción de skills + commands legacy.
330
- - Decisión final cuando se confirme migración cross-workspace.
197
+ ## Recursos adicionales
331
198
 
332
- Detalle completo: `references/deprecation-plan.md`.
199
+ - **`references/readme-template.md`** — plantilla del README minimal.
200
+ - **`references/validations.md`** — V1-V2 hard-fail.
201
+ - **`references/lexico-tecnico.md`** — lista de placeholders vetados (V2).
202
+ - **`references/code-scan-recommendations.md`** — catálogo opcional si se requiere escaneo de código adicional (NO se ejecuta por default en v5.0.0; el flujo del bundle no requiere code-scan).
203
+ - **`references/theme-handling.md`** — DEPRECATED en v5.0.0 (capa `por-tema/` removida del default; ver histórico si se requiere reactivar).
204
+ - **`references/manifest-template.md`** — DEPRECATED desde v4.0.0 (absorbido por README).
205
+ - **`references/deprecation-plan.md`** — plan de fases legacy `release`/`release-scripts`.
333
206
 
334
- ## Recursos adicionales
207
+ ## Histórico de versiones
335
208
 
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.
337
- - **`references/readme-template.md`**plantilla del README del bundle.
338
- - **`references/lexico-tecnico.md`**lista mínima de noise vetado para V2.
339
- - **`references/validations.md`** — V1-V6 con condiciones de hard-fail.
340
- - **`references/code-scan-recommendations.md`** — catálogo extendido de patrones (port directo de `release/references/code-scan-patterns.md`).
341
- - **`references/theme-handling.md`** — algoritmo de detección/consolidación por tema (port adaptado de `release-scripts/references/theme-detection.md` + `order-generation.md`).
342
- - **`references/deprecation-plan.md`** — plan de fases 1-2.
343
- - **`release/references/manual-actions-catalog.md`** — catálogo de acciones manuales (reference cruzada — DEC-004 session061).
344
- - **`docs/conclusiones/007-export-commands-family.md`** — Propuesta original de la familia `/agent-workflow:export-*`.
345
- - **`agent-workflow/skills/export-report/SKILL.md`**, **`export-arq/SKILL.md`**, **`export-tech-manuals/SKILL.md`** — hermanos de la familia.
209
+ - **v5.0.0** (session103, 2026-05-28) simplificación: numeración continua, headers SQL minimal, README de 3 secciones, búsqueda extendida a `docs/scripts/*.sql` standalone, rollback derivado de forwards. Sin code-scan ni theme handling por default.
210
+ - **v4.0.0** (session093) — layout plano cross-session (`00-ROLLBACK.sql` + `01-04` por categoría). Histórico bundles previos no se migran.
211
+ - **v3.x y anteriores** layout `por-sesion/` + `manifest.md` + `ORDER.md` + companions. Histórico.
@@ -1,83 +1,33 @@
1
- # Léxico técnico — limpieza mínima de noise para export-scripts (v4.0.0)
1
+ # Léxico técnico — placeholders vetados (V2)
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, y referencias residuales al layout v3.x (`por-sesion/`, `manifest.md` separado, `ORDER.md`, `rollback-global.sql`).
3
+ Lista mínima de placeholders y patrones de noise que NO deben aparecer en el bundle generado (`README.md` y `.sql`). Audiencia técnica: la terminología SQL/DBA es bienvenida, sólo se vetan restos de plantilla.
4
4
 
5
- ## Lista vetada (V2 — para grep determinista)
6
-
7
- Términos / patrones que **no deben aparecer** en el cuerpo del `README.md` rendered (excepto en `## 10. Metadata`):
5
+ ## Lista vetada (V2 — para grep -F -f)
8
6
 
9
7
  ```
10
- {{
11
- }}
12
- {{PRODUCTO}}
13
- {{FECHA}}
14
- {{SOURCE}}
8
+ NNN
9
+ YYYY-MM-DD
15
10
  [entre corchetes]
16
- [YYYY-MM-DD]
11
+ [CATEGORIA]
17
12
  [nombre-rama]
18
- [nombre]
19
- [lista]
20
- [N]
21
- [motivo 1]
22
- [motivo 2]
23
- [breve descripción]
24
- [resumen 1 línea]
25
- [título]
26
- [fecha objetivo]
27
- [correo-destino]
28
- [correo-cc]
29
- [servicio 1]
30
- [servicio 2]
31
- [sha corto]
32
- [mensaje]
33
- [salida de
13
+ [primera categoría con contenido]
14
+ [segunda categoría con contenido — si aplica]
15
+ <placeholder>
34
16
  sessionXXX
35
17
  sessionYYY
36
18
  sessionNNN
37
- session001-nombre
38
- session002-nombre
39
- NNN-export-scripts-YYYY-MM-DD
40
- NNN-informe-release
41
- NNN-release-YYYY-MM-DD
42
- DEC-NNN
43
19
  ACT-NNN
44
20
  ACT-001
45
21
  ACT-002
46
- H1
47
- M1
48
22
  /Users/
49
- ~/Git/
23
+ /home/
50
24
  C:\Users\
51
25
  TODO:
52
26
  FIXME:
53
27
  WIP:
54
- XXX:
55
- <-- TODO
56
- <-- FIXME
57
- <-- WIP
58
- resto de acciones detectadas automáticamente
59
- otras advertencias dinámicas según lo detectado
60
- Si vacío:
61
- Si no hay irreversibles:
62
- Si no existe vista por tema:
63
- Si --skip-code-scan fue usado:
64
- Si no hay advertencias:
65
- ```
66
-
67
- ## Cómo extraer la lista para `grep -F -f`
68
-
69
- El validator de V2 (descrito en `validations.md` §V2) procesa este `.md` extrayendo sólo las líneas **dentro del fenced block**, no toda la prosa. Pre-proceso típico:
70
-
71
- ```bash
72
- awk '/^```$/{flag=!flag; next} flag' lexico-tecnico.md > /tmp/lexico-vetado.txt
73
- grep -n -F -f /tmp/lexico-vetado.txt /tmp/readme-body.md
74
28
  ```
75
29
 
76
- El primer awk toggle-extrae las líneas entre triple-backticks (alterna `flag` cada `\`\`\`` solitario); el segundo grep matchea como fixed strings.
77
-
78
- ## Anti-redundancia v4.0.0 (regex aparte)
79
-
80
- Patrones del layout v3.x que NO deben aparecer en prosa del README (V2 los rechaza vía regex, no fixed-string):
30
+ ## Patrones v3.x deprecados (V2 regex)
81
31
 
82
32
  ```regex
83
33
  por-sesion/
@@ -87,8 +37,11 @@ rollback-global\.sql
87
37
  \.rollback\.sql
88
38
  ```
89
39
 
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).
40
+ Válidos sólo dentro de bloques explícitos "DEPRECATED" / "histórico". V2 valida el contexto cercano.
91
41
 
92
- ## Total 50 términos vetados (fixed-string) + 5 patrones v3.x (regex)
42
+ ## Cómo extraer la lista
93
43
 
94
- Mantenimiento: revisar tras cada change major del `readme-template.md`; los términos derivan 1:1 de los placeholders activos en la plantilla.
44
+ ```bash
45
+ awk '/^```$/{flag=!flag; next} flag' lexico-tecnico.md > /tmp/lexico-vetado.txt
46
+ grep -n -F -f /tmp/lexico-vetado.txt README.md
47
+ ```