@tacuchi/agent-workflow-cli 10.3.0 → 10.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/help-groups.d.ts +9 -0
- package/dist/cli/help-groups.d.ts.map +1 -1
- package/dist/cli/help-groups.js +8 -0
- package/dist/cli/help-groups.js.map +1 -1
- package/dist/cli/main.js +10 -2
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/tui/components/hub-init-form.d.ts.map +1 -1
- package/dist/cli/tui/components/hub-init-form.js +16 -3
- package/dist/cli/tui/components/hub-init-form.js.map +1 -1
- package/package.json +1 -1
- package/skills/agent-workflow/commands/export-scripts.md +35 -62
- package/skills/agent-workflow/commands/hub-init.md +1 -1
- package/skills/agent-workflow/doctrine/hub-init/SKILL.md +3 -1
- package/skills/agent-workflow/exports/export-scripts/SKILL.md +114 -248
- package/skills/agent-workflow/exports/export-scripts/references/lexico-tecnico.md +17 -64
- package/skills/agent-workflow/exports/export-scripts/references/readme-template.md +24 -264
- package/skills/agent-workflow/exports/export-scripts/references/validations.md +29 -250
- package/skills/agent-workflow/standards/sql-rollback-generator/SKILL.md +72 -126
- package/skills/agent-workflow/standards/sql-script-organizer/SKILL.md +12 -13
|
@@ -1,345 +1,211 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: export-scripts
|
|
3
|
-
description: "Consolida
|
|
4
|
-
version:
|
|
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
|
|
7
|
+
# Export Scripts — Bundle SQL consolidado, simple y directo
|
|
8
8
|
|
|
9
|
-
Consolida N sesiones
|
|
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
|
-
>
|
|
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
|
-
|
|
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
|
|
22
|
-
- `agent-workflow session-artifacts --code <NNN>` — lectura lazy de
|
|
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", "
|
|
30
|
-
-
|
|
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
|
|
29
|
+
## Qué hace
|
|
35
30
|
|
|
36
|
-
1.
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
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
|
|
49
|
-
-
|
|
50
|
-
-
|
|
51
|
-
-
|
|
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,
|
|
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
|
-
|
|
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
|
|
80
|
-
| `--since sessionNNN` | Incluye sólo sesiones posteriores a NNN (inclusive)
|
|
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
|
-
| `--
|
|
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
|
|
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 —
|
|
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
|
-
|
|
72
|
+
**Fuente A — sesiones**:
|
|
110
73
|
|
|
111
74
|
```
|
|
112
|
-
agent-workflow
|
|
75
|
+
agent-workflow release-data [--sessions NNN[,NNN]] [--since sessionNNN] [--source <alias>]
|
|
113
76
|
```
|
|
114
77
|
|
|
115
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
97
|
+
### Paso 3 — Clasificación y orden interno
|
|
176
98
|
|
|
177
|
-
|
|
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
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
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
|
-
|
|
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
|
-
|
|
108
|
+
### Paso 4 — Numeración continua
|
|
197
109
|
|
|
198
|
-
|
|
110
|
+
Asignar números **secuenciales** a las categorías **con contenido**, en el orden canónico arriba:
|
|
199
111
|
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
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
|
-
|
|
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
|
-
|
|
121
|
+
### Paso 5 — Escribir forwards
|
|
210
122
|
|
|
211
|
-
|
|
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
|
-
|
|
125
|
+
**Header del archivo** (3 líneas máx):
|
|
219
126
|
|
|
220
|
-
|
|
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
|
-
|
|
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
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
134
|
+
```sql
|
|
135
|
+
-- sessionXXX / NNN-verbo-objetivo
|
|
136
|
+
BEGIN;
|
|
137
|
+
<SQL del SCRIPTS.sql original>
|
|
138
|
+
COMMIT;
|
|
139
|
+
```
|
|
228
140
|
|
|
229
|
-
**
|
|
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
|
|
147
|
+
### Paso 6 — Generar `00-ROLLBACK.sql` (al final)
|
|
232
148
|
|
|
233
|
-
|
|
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
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
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
|
-
|
|
156
|
+
### Paso 7 — Escribir `README.md`
|
|
246
157
|
|
|
247
|
-
|
|
158
|
+
Usar `references/readme-template.md`. Sólo 3 secciones:
|
|
248
159
|
|
|
249
|
-
|
|
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
|
-
|
|
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
|
-
|
|
166
|
+
### Paso 8 — Validaciones V1-V2
|
|
263
167
|
|
|
264
|
-
|
|
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
|
-
|
|
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
|
-
|
|
173
|
+
Ambas hard-fail. Si fallan → abortar antes de finalizar.
|
|
275
174
|
|
|
276
|
-
|
|
175
|
+
### Paso 9 — Resumen al usuario
|
|
277
176
|
|
|
278
|
-
|
|
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/
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
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 01
|
|
312
|
-
- **`sql-rollback-generator`**
|
|
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
|
|
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
|
-
|
|
329
|
-
- Remoción de skills + commands legacy.
|
|
330
|
-
- Decisión final cuando se confirme migración cross-workspace.
|
|
197
|
+
## Recursos adicionales
|
|
331
198
|
|
|
332
|
-
|
|
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
|
-
##
|
|
207
|
+
## Histórico de versiones
|
|
335
208
|
|
|
336
|
-
-
|
|
337
|
-
-
|
|
338
|
-
-
|
|
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 —
|
|
1
|
+
# Léxico técnico — placeholders vetados (V2)
|
|
2
2
|
|
|
3
|
-
|
|
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
|
|
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
|
-
[
|
|
11
|
+
[CATEGORIA]
|
|
17
12
|
[nombre-rama]
|
|
18
|
-
[
|
|
19
|
-
[
|
|
20
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
40
|
+
Válidos sólo dentro de bloques explícitos "DEPRECATED" / "histórico". V2 valida el contexto cercano.
|
|
91
41
|
|
|
92
|
-
##
|
|
42
|
+
## Cómo extraer la lista
|
|
93
43
|
|
|
94
|
-
|
|
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
|
+
```
|