@tacuchi/agent-workflow-cli 6.1.0 → 7.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +65 -12
- package/dist/application/profile/profile-service.d.ts +53 -0
- package/dist/application/profile/profile-service.d.ts.map +1 -0
- package/dist/application/profile/profile-service.js +210 -0
- package/dist/application/profile/profile-service.js.map +1 -0
- package/dist/application/render/history-row.d.ts.map +1 -1
- package/dist/application/render/history-row.js +5 -0
- package/dist/application/render/history-row.js.map +1 -1
- package/dist/application/self/bootstrap.js +2 -1
- package/dist/application/self/bootstrap.js.map +1 -1
- package/dist/application/self/detect-hosts.d.ts +18 -0
- package/dist/application/self/detect-hosts.d.ts.map +1 -0
- package/dist/application/self/detect-hosts.js +37 -0
- package/dist/application/self/detect-hosts.js.map +1 -0
- package/dist/application/self/install-hooks.d.ts +30 -0
- package/dist/application/self/install-hooks.d.ts.map +1 -0
- package/dist/application/self/install-hooks.js +253 -0
- package/dist/application/self/install-hooks.js.map +1 -0
- package/dist/application/self/install-skill.d.ts +2 -0
- package/dist/application/self/install-skill.d.ts.map +1 -1
- package/dist/application/self/install-skill.js +69 -3
- package/dist/application/self/install-skill.js.map +1 -1
- package/dist/application/session-close-service.d.ts +10 -0
- package/dist/application/session-close-service.d.ts.map +1 -1
- package/dist/application/session-close-service.js +87 -10
- package/dist/application/session-close-service.js.map +1 -1
- package/dist/cli/commands/self.d.ts.map +1 -1
- package/dist/cli/commands/self.js +9 -1
- package/dist/cli/commands/self.js.map +1 -1
- package/dist/cli/commands/session-close.d.ts.map +1 -1
- package/dist/cli/commands/session-close.js +11 -0
- package/dist/cli/commands/session-close.js.map +1 -1
- package/dist/cli/tui/tabs/skills-tab.d.ts.map +1 -1
- package/dist/cli/tui/tabs/skills-tab.js +100 -24
- package/dist/cli/tui/tabs/skills-tab.js.map +1 -1
- package/package.json +2 -2
- package/skills/agent-workflow/commands/README.md +24 -0
- package/skills/agent-workflow/commands/agent-workflow-compact.md +24 -0
- package/skills/agent-workflow/commands/agent-workflow-doctor.md +100 -0
- package/skills/agent-workflow/commands/agent-workflow-export-arq.md +77 -0
- package/skills/agent-workflow/commands/agent-workflow-export-conclusions.md +78 -0
- package/skills/agent-workflow/commands/agent-workflow-export-plan.md +74 -0
- package/skills/agent-workflow/commands/agent-workflow-export-qa-note.md +30 -0
- package/skills/agent-workflow/commands/agent-workflow-export-report.md +78 -0
- package/skills/agent-workflow/commands/agent-workflow-export-requirement.md +30 -0
- package/skills/agent-workflow/commands/agent-workflow-export-scripts.md +92 -0
- package/skills/agent-workflow/commands/agent-workflow-export-tech-manuals.md +75 -0
- package/skills/agent-workflow/commands/agent-workflow-export-tech-note.md +30 -0
- package/skills/agent-workflow/commands/agent-workflow-hub-init.md +82 -0
- package/skills/agent-workflow/commands/agent-workflow-migrate.md +56 -0
- package/skills/agent-workflow/commands/agent-workflow-project-init.md +60 -0
- package/skills/agent-workflow/commands/agent-workflow-resume.md +22 -0
- package/skills/agent-workflow/commands/agent-workflow-rules.md +40 -0
- package/skills/agent-workflow/commands/agent-workflow-session.md +35 -0
- package/skills/agent-workflow/doctrine/README.md +15 -0
- package/skills/agent-workflow/doctrine/compact/SKILL.md +145 -0
- package/skills/agent-workflow/doctrine/doctor/SKILL.md +86 -0
- package/skills/agent-workflow/doctrine/doctor/SKILL.md.tmp +0 -0
- package/skills/agent-workflow/doctrine/hub-init/SKILL.md +157 -0
- package/skills/agent-workflow/doctrine/hub-init/SKILL.md.tmp +0 -0
- package/skills/agent-workflow/doctrine/hub-init/references/multiroot-manual.md +51 -0
- package/skills/agent-workflow/doctrine/implement/SKILL.md +290 -0
- package/skills/agent-workflow/doctrine/implement/references/branch-verification.md +16 -0
- package/skills/agent-workflow/doctrine/implement/references/design-md-template.md +108 -0
- package/skills/agent-workflow/doctrine/implement/references/rollback-guide.md +81 -0
- package/skills/agent-workflow/doctrine/migrate/SKILL.md +281 -0
- package/skills/agent-workflow/doctrine/migrate/SKILL.md.tmp +0 -0
- package/skills/agent-workflow/doctrine/project-init/SKILL.md +100 -0
- package/skills/agent-workflow/doctrine/project-init/SKILL.md.tmp +0 -0
- package/skills/agent-workflow/doctrine/refactor/SKILL.md +208 -0
- package/skills/agent-workflow/doctrine/refactor/references/refactor-md-template.md +108 -0
- package/skills/agent-workflow/doctrine/refactor/references/strangler-checklist.md +116 -0
- package/skills/agent-workflow/doctrine/resume/SKILL.md +199 -0
- package/skills/agent-workflow/doctrine/rules/SKILL.md +224 -0
- package/skills/agent-workflow/doctrine/rules/SKILL.md.tmp +0 -0
- package/skills/agent-workflow/doctrine/session/SKILL.md +383 -0
- package/skills/agent-workflow/doctrine/session/references/auto-plan-rules.md +63 -0
- package/skills/agent-workflow/doctrine/session/references/backlog-template.md +95 -0
- package/skills/agent-workflow/doctrine/session/references/branch-verification.md +198 -0
- package/skills/agent-workflow/doctrine/session/references/commits-policy.md +111 -0
- package/skills/agent-workflow/doctrine/session/references/communication-style.md +50 -0
- package/skills/agent-workflow/doctrine/session/references/graduacion-routing.md +88 -0
- package/skills/agent-workflow/doctrine/session/references/lifecycle-deep.md +160 -0
- package/skills/agent-workflow/doctrine/session/references/prompts/C1-specialty-selection.md +11 -0
- package/skills/agent-workflow/doctrine/session/references/prompts/C2-cost-guard.md +14 -0
- package/skills/agent-workflow/doctrine/session/references/prompts/M1-closure-commit-prompt.md +104 -0
- package/skills/agent-workflow/doctrine/session/references/prompts/M10-next-step.md +17 -0
- package/skills/agent-workflow/doctrine/session/references/prompts/M11-context.md +16 -0
- package/skills/agent-workflow/doctrine/session/references/prompts/M2-branch-caso-A.md +14 -0
- package/skills/agent-workflow/doctrine/session/references/prompts/M3-branch-caso-C.md +33 -0
- package/skills/agent-workflow/doctrine/session/references/prompts/M4-cross-source-hard-gate.md +33 -0
- package/skills/agent-workflow/doctrine/session/references/prompts/M5-modality-analyze.md +15 -0
- package/skills/agent-workflow/doctrine/session/references/prompts/M6-phase-gate.md +31 -0
- package/skills/agent-workflow/doctrine/session/references/prompts/M7-refactor-legacy-detected.md +28 -0
- package/skills/agent-workflow/doctrine/session/references/prompts/M8-refactor-cleanup.md +16 -0
- package/skills/agent-workflow/doctrine/session/references/prompts/M9-contract-review.md +39 -0
- package/skills/agent-workflow/doctrine/session/references/prompts/S1-type-design.md +15 -0
- package/skills/agent-workflow/doctrine/session/references/prompts/S2-topic-change-detection.md +14 -0
- package/skills/agent-workflow/doctrine/session/references/prompts/S3-flow-detection.md +28 -0
- package/skills/agent-workflow/doctrine/session/references/prompts/S4-resume.md +27 -0
- package/skills/agent-workflow/doctrine/session/references/prompts/S5-post-compact.md +17 -0
- package/skills/agent-workflow/doctrine/session/references/prompts/S6-scope.md +16 -0
- package/skills/agent-workflow/doctrine/session/references/prompts/S7-design-review.md +37 -0
- package/skills/agent-workflow/doctrine/session/references/prompts-catalog.md +210 -0
- package/skills/agent-workflow/doctrine/session/references/sandbox-readonly-rules.md +82 -0
- package/skills/agent-workflow/doctrine/session/references/specialty-decision-tree.md +56 -0
- package/skills/agent-workflow/doctrine/session/references/topic-change-rules.md +67 -0
- package/skills/agent-workflow/exports/README.md +15 -0
- package/skills/agent-workflow/exports/export-arq/SKILL.md +229 -0
- package/skills/agent-workflow/exports/export-arq/SKILL.md.tmp +0 -0
- package/skills/agent-workflow/exports/export-arq/references/lexico-tecnico.md +94 -0
- package/skills/agent-workflow/exports/export-arq/references/template-c4.md +293 -0
- package/skills/agent-workflow/exports/export-arq/references/template-plantuml.puml +77 -0
- package/skills/agent-workflow/exports/export-arq/references/template-structurizr.dsl +72 -0
- package/skills/agent-workflow/exports/export-arq/references/validations.md +231 -0
- package/skills/agent-workflow/exports/export-conclusions/SKILL.md +169 -0
- package/skills/agent-workflow/exports/export-conclusions/references/dedup-rules.md +154 -0
- package/skills/agent-workflow/exports/export-conclusions/references/template-conclusions.md +158 -0
- package/skills/agent-workflow/exports/export-plan/SKILL.md +225 -0
- package/skills/agent-workflow/exports/export-plan/references/state-transitions.md +141 -0
- package/skills/agent-workflow/exports/export-plan/references/template-plan.md +132 -0
- package/skills/agent-workflow/exports/export-qa-note/SKILL.md +31 -0
- package/skills/agent-workflow/exports/export-report/SKILL.md +262 -0
- package/skills/agent-workflow/exports/export-report/SKILL.md.tmp +0 -0
- package/skills/agent-workflow/exports/export-report/references/lexico.md +174 -0
- package/skills/agent-workflow/exports/export-report/references/template-a.md +95 -0
- package/skills/agent-workflow/exports/export-report/references/template-b.md +221 -0
- package/skills/agent-workflow/exports/export-report/references/template-c.md +180 -0
- package/skills/agent-workflow/exports/export-report/references/validations.md +255 -0
- package/skills/agent-workflow/exports/export-requirement/SKILL.md +31 -0
- package/skills/agent-workflow/exports/export-scripts/SKILL.md +324 -0
- package/skills/agent-workflow/exports/export-scripts/references/code-scan-recommendations.md +83 -0
- package/skills/agent-workflow/exports/export-scripts/references/deprecation-plan.md +80 -0
- package/skills/agent-workflow/exports/export-scripts/references/lexico-tecnico.md +80 -0
- package/skills/agent-workflow/exports/export-scripts/references/manifest-template.md +253 -0
- package/skills/agent-workflow/exports/export-scripts/references/readme-template.md +79 -0
- package/skills/agent-workflow/exports/export-scripts/references/theme-handling.md +168 -0
- package/skills/agent-workflow/exports/export-scripts/references/validations.md +242 -0
- package/skills/agent-workflow/exports/export-tech-manuals/SKILL.md +214 -0
- package/skills/agent-workflow/exports/export-tech-manuals/references/lexico-tecnico.md +97 -0
- package/skills/agent-workflow/exports/export-tech-manuals/references/template-index.md +123 -0
- package/skills/agent-workflow/exports/export-tech-manuals/references/template-manual.md +143 -0
- package/skills/agent-workflow/exports/export-tech-manuals/references/validations.md +211 -0
- package/skills/agent-workflow/exports/export-tech-note/SKILL.md +31 -0
- package/skills/agent-workflow/hooks/README.md +15 -0
- package/skills/agent-workflow/hooks/hooks.template.json +90 -0
- package/skills/agent-workflow/references/README.md +12 -0
- package/skills/agent-workflow/references/legacy-anchors.md +50 -0
- package/skills/agent-workflow/references/profile-parametrization.md +88 -0
- package/skills/agent-workflow/specialties/README.md +14 -0
- package/skills/agent-workflow/specialties/analyze-conclude/SKILL.md +175 -0
- package/skills/agent-workflow/specialties/analyze-conclude/references/incident-classification.md +61 -0
- package/skills/agent-workflow/specialties/analyze-investigate/SKILL.md +148 -0
- package/skills/agent-workflow/specialties/analyze-investigate/SKILL.md.tmp +0 -0
- package/skills/agent-workflow/specialties/analyze-investigate/references/cost-guard.md +85 -0
- package/skills/agent-workflow/specialties/analyze-synthesize/SKILL.md +127 -0
- package/skills/agent-workflow/specialties/design-brief/SKILL.md +90 -0
- package/skills/agent-workflow/specialties/design-deliver/SKILL.md +121 -0
- package/skills/agent-workflow/specialties/design-develop/SKILL.md +115 -0
- package/skills/agent-workflow/specialties/design-discover/SKILL.md +103 -0
- package/skills/agent-workflow/standards/README.md +12 -0
- package/skills/agent-workflow/standards/coding-standards/SKILL.md +102 -0
- package/skills/agent-workflow/standards/coding-standards/SKILL.md.tmp +0 -0
- package/skills/agent-workflow/standards/coding-standards/references/angular-typescript.md +266 -0
- package/skills/agent-workflow/standards/coding-standards/references/database-conventions.md +170 -0
- package/skills/agent-workflow/standards/coding-standards/references/fe-be-integration.md +300 -0
- package/skills/agent-workflow/standards/coding-standards/references/frontend-structure.md +182 -0
- package/skills/agent-workflow/standards/coding-standards/references/java-spring.md +244 -0
- package/skills/agent-workflow/standards/coding-standards/references/project-structure.md +197 -0
- package/skills/agent-workflow/standards/frontend-design/SKILL.md +62 -0
- package/skills/agent-workflow/standards/frontend-design/references/feedback-toasts-patterns.md +249 -0
- package/skills/agent-workflow/standards/frontend-design/references/form-patterns.md +278 -0
- package/skills/agent-workflow/standards/frontend-design/references/list-patterns.md +256 -0
- package/skills/agent-workflow/standards/frontend-design/references/modal-patterns.md +220 -0
- package/skills/agent-workflow/standards/frontend-design/references/navigation-patterns.md +224 -0
- package/skills/agent-workflow/standards/redaccion-simple/SKILL.md +128 -0
- package/skills/agent-workflow/standards/sql-rollback-generator/SKILL.md +197 -0
- package/skills/agent-workflow/standards/sql-rollback-generator/references/irreversible-checklist.md +161 -0
- package/skills/agent-workflow/standards/sql-rollback-generator/references/release-rollback.md +131 -0
- package/skills/agent-workflow/standards/sql-rollback-generator/references/rollback-patterns.md +255 -0
- package/skills/agent-workflow/standards/sql-script-organizer/SKILL.md +244 -0
- package/skills/agent-workflow/standards/sql-script-organizer/references/bundle-readme-template.md +82 -0
- package/skills/agent-workflow/standards/sql-script-organizer/references/categorization-rules.md +122 -0
- package/skills/agent-workflow/standards/sql-script-organizer/references/consolidation-cross-session.md +125 -0
- package/skills/agent-workflow/standards/sql-script-organizer/references/scripts-sql-format.md +140 -0
- package/skills/agent-workflow/standards/testing-strategy/SKILL.md +113 -0
- package/skills/agent-workflow/standards/testing-strategy/references/test-levels.md +255 -0
- package/skills/agent-workflow/workflows/README.md +12 -0
- package/skills/agent-workflow/workflows/analyze-workflow/SKILL.md +107 -0
- package/skills/agent-workflow/workflows/design-workflow/SKILL.md +100 -0
- package/skills/agent-workflow/workflows/dev-workflow/SKILL.md +195 -0
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
# Theme handling — detección + consolidación + ORDER cross-tema
|
|
2
|
+
|
|
3
|
+
> **Port adaptado** de `release-scripts/references/theme-detection.md` + `release-scripts/references/order-generation.md` (ambos v2.0.0). DEC-004 de session061: contenido equivalente, paths actualizados al output dir único de export-scripts.
|
|
4
|
+
|
|
5
|
+
## Activación de la vista `por-tema/`
|
|
6
|
+
|
|
7
|
+
`por-tema/` se genera **sólo** si se cumple **alguna** de estas condiciones:
|
|
8
|
+
|
|
9
|
+
1. `--themes slug1,slug2` declarado explícitamente.
|
|
10
|
+
2. Al menos una de las sesiones incluidas tiene sección `## Temas` en su `OBJECTIVE.md` (o `OBJETIVO.md` legacy).
|
|
11
|
+
3. `--themes infer` declarado (inferencia LLM con confirmación).
|
|
12
|
+
|
|
13
|
+
Si **ninguna** se cumple: el output dir contiene solo `por-sesion/` + archivos top-level. No se crea sub-carpeta `por-tema/` vacía.
|
|
14
|
+
|
|
15
|
+
## Formato de `## Temas` en OBJECTIVE
|
|
16
|
+
|
|
17
|
+
```markdown
|
|
18
|
+
## Temas
|
|
19
|
+
|
|
20
|
+
- `rbac`: gestión de roles y permisos
|
|
21
|
+
- `lista-negra-blanca`: filtros de acceso
|
|
22
|
+
- `auditoria`: logging de cambios sensibles
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Reglas:
|
|
26
|
+
- Slug kebab-case (`a-z0-9-`).
|
|
27
|
+
- Una descripción breve por tema (ayuda a la inferencia cross-session).
|
|
28
|
+
- Sin overlapping en una misma sesión salvo necesidad expresa.
|
|
29
|
+
|
|
30
|
+
## Resolución de temas por sesión
|
|
31
|
+
|
|
32
|
+
### Paso A — Lectura declarativa
|
|
33
|
+
|
|
34
|
+
Para cada sesión incluida, leer `OBJECTIVE.md` (fallback bilingual a `OBJETIVO.md`) buscando sección `## Temas`. Si presente: extraer slugs como autoritativos para esa sesión.
|
|
35
|
+
|
|
36
|
+
### Paso B — Inferencia LLM (si `--themes infer` o falta declarativo en N sesiones)
|
|
37
|
+
|
|
38
|
+
Para cada sesión sin `## Temas`:
|
|
39
|
+
|
|
40
|
+
1. Leer OBJECTIVE + nombres de scripts SQL.
|
|
41
|
+
2. Inferir temas candidatos (3-5 max) con confidence score 0-1.
|
|
42
|
+
3. Proponer al usuario:
|
|
43
|
+
```
|
|
44
|
+
Sesión session057:
|
|
45
|
+
- Tema candidato: `export-report` (confidence 0.92, scripts: ...)
|
|
46
|
+
- Tema candidato: `lifecycle-extension` (confidence 0.45)
|
|
47
|
+
- ¿Aceptar / editar / declarar uno propio?
|
|
48
|
+
```
|
|
49
|
+
4. Persistir respuesta:
|
|
50
|
+
- Si sesión **activa**: escribir `## Temas` en OBJECTIVE.
|
|
51
|
+
- Si sesión **cerrada**: guardar en `por-tema/themes.inferred.md` del bundle (no toca artefactos cerrados).
|
|
52
|
+
|
|
53
|
+
### Paso C — Filtro `--themes`
|
|
54
|
+
|
|
55
|
+
Si `--themes slug1,slug2` declarado: restringir el output `por-tema/` a esos slugs. Scripts cuyo tema no entre en el filtro caen en `por-sesion/` solamente (no aparecen en `por-tema/`).
|
|
56
|
+
|
|
57
|
+
## Asignación de cada script a su tema
|
|
58
|
+
|
|
59
|
+
Por cada `.sql` forward de las sesiones incluidas:
|
|
60
|
+
|
|
61
|
+
1. **Header declarativo**: leer primeras 10 líneas buscando `-- Temas: slug1, slug2`. Si presente: usa esos slugs.
|
|
62
|
+
2. **Por nombre**: matchear contra patrones del tema (substring del slug en el filename, ej. `rbac-rol-permiso.sql` → `rbac`).
|
|
63
|
+
3. **Por contenido**: leer el SQL y aplicar heurística (qué tabla/función toca, qué módulo de negocio).
|
|
64
|
+
4. **Fallback**: si nada matchea, asignar a `tema-general/` con warning en el manifest.
|
|
65
|
+
|
|
66
|
+
### Multi-tema
|
|
67
|
+
|
|
68
|
+
Si un script aplica a 2+ temas: copia al primer tema declarado y crea `.link.md` en los demás referenciando el canónico:
|
|
69
|
+
|
|
70
|
+
```markdown
|
|
71
|
+
# Link — script multi-tema
|
|
72
|
+
|
|
73
|
+
Este script aplica al tema `[secundario]` pero su versión canónica vive en:
|
|
74
|
+
|
|
75
|
+
- `por-tema/tema-[primario]/03-migracion.sql` (sección [N], script `[nombre-original.sql]`)
|
|
76
|
+
|
|
77
|
+
Razón: el header declarativo del script lista temas múltiples, y por convención el primero es el canónico.
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## Consolidación por categoría dentro de cada tema
|
|
81
|
+
|
|
82
|
+
Para cada tema y cada categoría (01..04):
|
|
83
|
+
|
|
84
|
+
1. Ordenar scripts fuente por NNN original (cronológico cross-session).
|
|
85
|
+
2. Leer cada `.sql`, extraer cuerpo eliminando `BEGIN;` inicial y `COMMIT;` final.
|
|
86
|
+
3. Concatenar con separadores `[i/N]` + nombre + ruta canónica.
|
|
87
|
+
4. Envolver todo en un único `BEGIN; … COMMIT;`.
|
|
88
|
+
5. Escribir `por-tema/tema-<slug>/<categoria>.sql`.
|
|
89
|
+
6. Consolidar `.rollback.sql` en orden inverso.
|
|
90
|
+
|
|
91
|
+
### Header del consolidado
|
|
92
|
+
|
|
93
|
+
**Uno solo** al inicio del archivo, con el formato canónico de 4 líneas definido en `sql-script-organizer/SKILL.md#header-canónico`:
|
|
94
|
+
|
|
95
|
+
```
|
|
96
|
+
-- Script: tema-rbac/03-migracion.sql
|
|
97
|
+
-- Sesion: s057, s058, s063
|
|
98
|
+
-- Objeto: migración de roles y asignaciones RBAC
|
|
99
|
+
-- Alcance: tablas tb_rol, tb_permiso_rol, tb_rol_usuario
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
**No copiar** los headers de los scripts individuales — su origen queda registrado en los separadores `[i/N]` del cuerpo y en `README.md`.
|
|
103
|
+
|
|
104
|
+
### `--keep-parts`
|
|
105
|
+
|
|
106
|
+
Si el flag está activo: preservar `por-tema/<slug>/parts/<categoria>/*.sql` con los scripts individuales (no consolidados). Permite ejecutar uno por vez para debugging.
|
|
107
|
+
|
|
108
|
+
## Rollback por tema y global
|
|
109
|
+
|
|
110
|
+
### `por-tema/tema-<slug>/rollback-tema-<slug>.sql`
|
|
111
|
+
|
|
112
|
+
Encadena los 4 consolidados de rollback (04→03→02→01) dentro de un único `BEGIN; … COMMIT;`. Operaciones irreversibles marcadas con header WARNING.
|
|
113
|
+
|
|
114
|
+
### `rollback-global.sql` (en output dir top-level)
|
|
115
|
+
|
|
116
|
+
Encadena rollback por-tema en orden **inverso a `ORDER.md`**. Si `por-tema/` no existe, encadena `por-sesion/<sessionXXX>/rollback/*.sql` por sesión cronológica inversa.
|
|
117
|
+
|
|
118
|
+
Algoritmo completo en `sql-rollback-generator/references/release-rollback.md` (referenciable cross-skill).
|
|
119
|
+
|
|
120
|
+
## `ORDER.md` cross-tema
|
|
121
|
+
|
|
122
|
+
Cuando hay `por-tema/`: el `ORDER.md` top-level del bundle intercala scripts por **fase** (no por tema):
|
|
123
|
+
|
|
124
|
+
```markdown
|
|
125
|
+
## Fase 1 — DDL tablas
|
|
126
|
+
|
|
127
|
+
psql -f por-tema/tema-rbac/01-ddl-tablas.sql
|
|
128
|
+
psql -f por-tema/tema-lista-negra-blanca/01-ddl-tablas.sql
|
|
129
|
+
psql -f por-tema/tema-auditoria/01-ddl-tablas.sql
|
|
130
|
+
|
|
131
|
+
## Fase 2 — DDL funciones
|
|
132
|
+
|
|
133
|
+
psql -f por-tema/tema-rbac/02-ddl-funciones.sql
|
|
134
|
+
...
|
|
135
|
+
|
|
136
|
+
## Fase 3 — Migración
|
|
137
|
+
|
|
138
|
+
...
|
|
139
|
+
|
|
140
|
+
## Fase 4 — Inserts iniciales
|
|
141
|
+
|
|
142
|
+
...
|
|
143
|
+
|
|
144
|
+
## Fase 5 — Cleanup irreversible
|
|
145
|
+
|
|
146
|
+
(operaciones DROP COLUMN, TRUNCATE, DROP CASCADE — al final)
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
Cuando **no** hay `por-tema/`: el `ORDER.md` lista scripts por sesión cronológica, dentro de cada una 01→04:
|
|
150
|
+
|
|
151
|
+
```markdown
|
|
152
|
+
## Sesión session057-export-func
|
|
153
|
+
|
|
154
|
+
psql -f por-sesion/session057-export-func/01-ddl-tablas/001-...sql
|
|
155
|
+
psql -f por-sesion/session057-export-func/02-ddl-funciones/001-...sql
|
|
156
|
+
...
|
|
157
|
+
|
|
158
|
+
## Sesión session058-export-arq
|
|
159
|
+
|
|
160
|
+
...
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
## Idempotencia
|
|
164
|
+
|
|
165
|
+
- Re-ejecutar export-scripts con los mismos args sobre las mismas sesiones produce el **mismo** output **modulo el NNN nuevo** del directorio. Cada invocación toma siguiente NNN; no sobrescribe.
|
|
166
|
+
- Para regenerar: borrar el directorio manualmente y re-invocar.
|
|
167
|
+
- Si los temas se declararon en OBJECTIVE: sin re-confirmación.
|
|
168
|
+
- Si fueron inferidos: re-propone con `--themes infer`.
|
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
# Validations — V1-V6 para `/agent-workflow:export-scripts`
|
|
2
|
+
|
|
3
|
+
Checks post-render que se aplican antes de escribir el bundle al filesystem. Adaptados del canon de la familia export-* (export-arq + export-report) con foco en bundle SQL + informe.
|
|
4
|
+
|
|
5
|
+
Niveles de severidad:
|
|
6
|
+
- **Hard-fail**: aborta la escritura, devuelve `ok: false` con error report. No se crea el directorio.
|
|
7
|
+
- **Warning**: emite mensaje, pide confirmación del usuario para continuar.
|
|
8
|
+
|
|
9
|
+
## V1 — Estructura del bundle
|
|
10
|
+
|
|
11
|
+
**Severidad**: hard-fail si falta archivo obligatorio o sub-dir esperado.
|
|
12
|
+
|
|
13
|
+
**Archivos obligatorios siempre**:
|
|
14
|
+
- `manifest.md`
|
|
15
|
+
- `README.md`
|
|
16
|
+
- `ORDER.md`
|
|
17
|
+
- `rollback-global.sql`
|
|
18
|
+
- `por-sesion/` con ≥1 sesión
|
|
19
|
+
|
|
20
|
+
**Archivos condicionales**:
|
|
21
|
+
- `por-tema/` con ≥1 tema — sólo si la activación de Paso 6 dio positivo (themes declarados, `## Temas` en OBJECTIVE, o `--themes infer`).
|
|
22
|
+
|
|
23
|
+
**Cómo validar**: listar el output dir antes de escribir el manifest final; verificar que todos los archivos obligatorios estarán presentes.
|
|
24
|
+
|
|
25
|
+
**Error report (hard-fail)**:
|
|
26
|
+
```
|
|
27
|
+
V1 FAILED: bundle incompleto
|
|
28
|
+
esperado: manifest.md, README.md, ORDER.md, rollback-global.sql, por-sesion/
|
|
29
|
+
encontrado: manifest.md, README.md, por-sesion/
|
|
30
|
+
faltantes: ORDER.md, rollback-global.sql
|
|
31
|
+
acción: regenerar pasos 7 y 9
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## V2 — Noise vetado
|
|
35
|
+
|
|
36
|
+
**Severidad**: hard-fail si hay ≥1 ocurrencia en el cuerpo del `manifest.md` (header y sección Metadata exentos).
|
|
37
|
+
|
|
38
|
+
**Scope**: body-only — líneas después de `# Informe del bundle NNN` (h1 inicial) y antes de `## 10. Metadata`.
|
|
39
|
+
|
|
40
|
+
**Cómo validar**:
|
|
41
|
+
```bash
|
|
42
|
+
awk '
|
|
43
|
+
BEGIN { body=0 }
|
|
44
|
+
/^## 10\. Metadata/ { body=0 }
|
|
45
|
+
body { print }
|
|
46
|
+
/^# / && !/Metadata/ { body=1 }
|
|
47
|
+
' manifest.md > /tmp/body.md
|
|
48
|
+
grep -n -F -f references/lexico-tecnico.md /tmp/body.md
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
**Error report (hard-fail)**:
|
|
52
|
+
```
|
|
53
|
+
V2 FAILED: noise vetado detectado en cuerpo del manifest
|
|
54
|
+
ocurrencias:
|
|
55
|
+
línea 12: "NNN-export-scripts-YYYY-MM-DD" → placeholder sin reemplazar
|
|
56
|
+
línea 28: "/Users/tacuchi/" → path absoluto del developer
|
|
57
|
+
línea 41: "DEC-NNN" → placeholder sin reemplazar
|
|
58
|
+
total: 3 ocurrencias
|
|
59
|
+
acción: completar render y stripear paths absolutos
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## V3 — Secciones obligatorias del manifest
|
|
63
|
+
|
|
64
|
+
**Severidad**: hard-fail si falta una sección obligatoria.
|
|
65
|
+
|
|
66
|
+
**Secciones obligatorias** (todas siempre presentes en `manifest.md`):
|
|
67
|
+
1. `## 1. Resumen ejecutivo`
|
|
68
|
+
2. `## 2. Sesiones incluidas`
|
|
69
|
+
3. `## 3. Acciones manuales previas a producción`
|
|
70
|
+
4. `## 4. Base de datos`
|
|
71
|
+
5. `## 5. Código fuente — hallazgos del escaneo`
|
|
72
|
+
6. `## 6. Git y ramas`
|
|
73
|
+
7. `## 7. Documentación graduada`
|
|
74
|
+
8. `## 8. Checklist final de producción`
|
|
75
|
+
9. `## 9. Advertencias`
|
|
76
|
+
10. `## 10. Metadata`
|
|
77
|
+
|
|
78
|
+
**Cómo validar**:
|
|
79
|
+
```bash
|
|
80
|
+
grep -c '^## [0-9]\+\. ' manifest.md # debe dar exactamente 10
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
**Error report (hard-fail)**:
|
|
84
|
+
```
|
|
85
|
+
V3 FAILED: secciones obligatorias faltantes
|
|
86
|
+
esperadas: 10
|
|
87
|
+
encontradas: 8
|
|
88
|
+
faltantes: "## 5. Código fuente — hallazgos del escaneo", "## 9. Advertencias"
|
|
89
|
+
acción: regenerar manifest con secciones completas
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
## V4 — Secciones condicionales honored
|
|
93
|
+
|
|
94
|
+
**Severidad**: hard-fail si una sub-sección condicional aparece sin justificación o falta cuando debería estar.
|
|
95
|
+
|
|
96
|
+
### V4.a — Vista por tema (`## 4.4 Vista por tema`)
|
|
97
|
+
|
|
98
|
+
- **Patrón A — activada**: temas declarados (CLI flag o `## Temas`) → sub-sección `## 4.4 Vista por tema` presente con conteo + paths a `por-tema/`.
|
|
99
|
+
- **Patrón B — no activada**: sin temas → sub-sección `## 4.4 Vista por tema` **ausente** (no aparece header ni placeholder).
|
|
100
|
+
|
|
101
|
+
**Error report (Patrón B esperado pero sección presente sin contenido)**:
|
|
102
|
+
```
|
|
103
|
+
V4.a FAILED: sin temas declarados pero sección "## 4.4 Vista por tema" presente
|
|
104
|
+
themes: []
|
|
105
|
+
acción: omitir sección cuando no hay temas (no dejar placeholder)
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### V4.b — Code scan skip (`## 5`)
|
|
109
|
+
|
|
110
|
+
- **Patrón A — escaneo ejecutado**: sección 5 contiene resumen con counts (`X críticos · Y medios · Z bajos`).
|
|
111
|
+
- **Patrón B — `--skip-code-scan`**: sección 5 contiene **nota inline explícita** `_(Escaneo omitido por --skip-code-scan)_` y no hay tabla de hallazgos.
|
|
112
|
+
|
|
113
|
+
**Error report (Patrón B esperado pero tabla presente)**:
|
|
114
|
+
```
|
|
115
|
+
V4.b FAILED: --skip-code-scan declarado pero sección 5 tiene tabla de hallazgos
|
|
116
|
+
args: --skip-code-scan
|
|
117
|
+
acción: reemplazar tabla por nota inline
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### V4.c — Sesiones abiertas
|
|
121
|
+
|
|
122
|
+
- **Patrón A — sesiones cerradas**: tabla "## 2. Sesiones incluidas" sin warnings ⚠.
|
|
123
|
+
- **Patrón B — sesiones activas incluidas**: cada sesión activa marcada con ⚠ + motivo de apertura en la columna "Resumen".
|
|
124
|
+
|
|
125
|
+
**Error report (Patrón B sin ⚠)**:
|
|
126
|
+
```
|
|
127
|
+
V4.c FAILED: sesiones activas detectadas pero no marcadas con ⚠
|
|
128
|
+
sesiones activas: session061
|
|
129
|
+
acción: marcar con ⚠ en tabla y documentar motivo en columna Resumen
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
## V5 — Header bien formado
|
|
133
|
+
|
|
134
|
+
**Severidad**: warning.
|
|
135
|
+
|
|
136
|
+
**Checks** (líneas 1-5 del `manifest.md`):
|
|
137
|
+
- Línea 1: `# Informe del bundle NNN — <YYYY-MM-DD>` con NNN reemplazado.
|
|
138
|
+
- Línea 3: `- **Rama actual:** \`<nombre-rama>\``
|
|
139
|
+
- Línea 4: `- **Rama destino:** \`certificacion\``
|
|
140
|
+
- Línea 5: `- **Sesiones incluidas:** <N>`
|
|
141
|
+
- Línea 6: `- **Readiness:** 🟢 verde | 🟡 amarillo | 🔴 rojo` (una sola opción seleccionada).
|
|
142
|
+
- Línea 7: `- **Generado por:** agent-workflow · skill \`export-scripts\``
|
|
143
|
+
|
|
144
|
+
**Error report (warning)**:
|
|
145
|
+
```
|
|
146
|
+
V5 WARNING: header incompleto o malformado
|
|
147
|
+
línea 1: OK
|
|
148
|
+
línea 3: "- **Rama actual:** `<nombre-rama>`" → placeholder sin reemplazar
|
|
149
|
+
acción: re-renderizar header con valores reales
|
|
150
|
+
¿continuar de todas formas? (s/n)
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
## V6 — Referencias resolubles
|
|
154
|
+
|
|
155
|
+
**Severidad**: warning.
|
|
156
|
+
|
|
157
|
+
**Checks**: cada link en cualquier sección del manifest apunta a un path existente en filesystem al momento de generar.
|
|
158
|
+
|
|
159
|
+
**Cómo validar**:
|
|
160
|
+
```bash
|
|
161
|
+
grep -Eo '`[^`]+\.(md|sql)`|\[.+?\]\([^)]+\)' manifest.md | \
|
|
162
|
+
sed -E 's/^`(.+)`$/\1/; s/^\[.+?\]\((.+)\)$/\1/' | \
|
|
163
|
+
while read p; do
|
|
164
|
+
if [ ! -e "$p" ] && [ ! -e "<output_dir>/$p" ]; then echo "MISSING: $p"; fi
|
|
165
|
+
done
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
**Excepción**: links a `docs/decisiones/`, `docs/manuales/`, etc. **fuera** del output dir son válidos si existen en el workspace; si no, warning suave (no aborta).
|
|
169
|
+
|
|
170
|
+
**Error report (warning)**:
|
|
171
|
+
```
|
|
172
|
+
V6 WARNING: 2 referencias apuntan a paths inexistentes
|
|
173
|
+
- docs/decisiones/005-tipos-cobranza.md → no existe en workspace
|
|
174
|
+
- por-sesion/session999/01-ddl-tablas/ → no existe en output dir
|
|
175
|
+
acción sugerida: corregir paths o omitir referencias placeholder
|
|
176
|
+
¿continuar de todas formas? (s/n)
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
## Orden de aplicación
|
|
180
|
+
|
|
181
|
+
1. V1 (estructura del bundle) — primero, barato.
|
|
182
|
+
2. V3 (secciones del manifest) — segundo, barato.
|
|
183
|
+
3. V2 (noise vetado) — tercero, requiere lectura del body.
|
|
184
|
+
4. V4 (condicionales) — cuarto, requiere reconstruir contexto de flags + corpus.
|
|
185
|
+
5. V5 (header) — quinto.
|
|
186
|
+
6. V6 (referencias resolubles) — último.
|
|
187
|
+
|
|
188
|
+
Si V1, V3 o V4 fallan → abortar inmediatamente.
|
|
189
|
+
Si V2 falla → abortar (no warning, igual que en export-arq y export-report).
|
|
190
|
+
Si V5 o V6 emiten warning → pedir confirmación al usuario.
|
|
191
|
+
|
|
192
|
+
## Reporte consolidado
|
|
193
|
+
|
|
194
|
+
Al final del flujo, el skill devuelve:
|
|
195
|
+
|
|
196
|
+
```json
|
|
197
|
+
{
|
|
198
|
+
"ok": true,
|
|
199
|
+
"output_dir": "docs/scripts/NNN-export-scripts-YYYY-MM-DD/",
|
|
200
|
+
"files_written": [
|
|
201
|
+
"manifest.md", "README.md", "ORDER.md", "rollback-global.sql",
|
|
202
|
+
"por-sesion/session057-export-func/...",
|
|
203
|
+
"por-sesion/session058-export-arq/...",
|
|
204
|
+
"por-tema/tema-rbac/01-ddl-tablas.sql",
|
|
205
|
+
"..."
|
|
206
|
+
],
|
|
207
|
+
"themes_resolved": ["rbac", "lista-negra-blanca"],
|
|
208
|
+
"sessions_included": ["057", "058", "059", "060"],
|
|
209
|
+
"validations": {
|
|
210
|
+
"V1": { "status": "pass" },
|
|
211
|
+
"V2": { "status": "pass", "noise_hits": 0 },
|
|
212
|
+
"V3": { "status": "pass", "sections_found": 10 },
|
|
213
|
+
"V4": { "status": "pass", "conditionals": { "por_tema": "presente (2 temas)", "code_scan": "ejecutado", "sesiones_abiertas": "0" } },
|
|
214
|
+
"V5": { "status": "pass" },
|
|
215
|
+
"V6": { "status": "warning", "missing_refs": ["docs/decisiones/005-...md"] }
|
|
216
|
+
},
|
|
217
|
+
"summary": "Bundle escrito. 1 warning (V6) aceptado."
|
|
218
|
+
}
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
Si hard-fail:
|
|
222
|
+
|
|
223
|
+
```json
|
|
224
|
+
{
|
|
225
|
+
"ok": false,
|
|
226
|
+
"stage": "validation",
|
|
227
|
+
"failed_at": "V3",
|
|
228
|
+
"details": "secciones obligatorias faltantes: ## 5. Código fuente — hallazgos del escaneo",
|
|
229
|
+
"no_files_written": true
|
|
230
|
+
}
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
## Diferencias con `export-arq/references/validations.md`
|
|
234
|
+
|
|
235
|
+
| Validación | export-arq | export-scripts |
|
|
236
|
+
|---|---|---|
|
|
237
|
+
| V1 | estructura de secciones por `--scope` | estructura del bundle (archivos + sub-dirs) |
|
|
238
|
+
| V2 | noise interno (~25 términos) | noise + placeholders (~45 términos) |
|
|
239
|
+
| V3 | secciones por scope | 10 secciones fijas del manifest |
|
|
240
|
+
| V4 | Modelo de datos + Decisiones condicionales | Vista por tema + code-scan skip + sesiones abiertas |
|
|
241
|
+
| V5 | header con snapshot + fuentes + diagrams engine | header con rama + readiness + counts |
|
|
242
|
+
| V6 | referencias resolubles | referencias resolubles |
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: export-tech-manuals
|
|
3
|
+
description: "Genera y mantiene manuales técnicos del workspace en `docs/manuales/` consolidando sesiones + `docs/` (manuales/, decisiones/, especificaciones/ como referencias técnicas). Dos modos: `complementar` (default, sobrescribe `INDEX.md` apuntando a manuales graduados + detectables del corpus) y `regenerar` (produce dossier `NNN-export-tech-manuals-YYYY-MM-DD/` con 1 manual por tema detectado). Audiencia: operadores / soporte / onboarding. Read-only sobre corpus + `docs/manuales/` existente; sin commits autónomos. Invocado sólo vía `/agent-workflow:export-tech-manuals`. v1.1 (session081): corpus extendido formalmente a `docs/` además de sesiones (DEC-002) — ver `docs/shared-contract/export-corpus-sources.md`."
|
|
4
|
+
version: 1.1.0
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Export Tech Manuals — Manuales técnicos desde corpus + graduados
|
|
8
|
+
|
|
9
|
+
Tercer comando de la familia `/agent-workflow:export-*`. Genera un índice consolidado de manuales (modo default `complementar`) o un dossier completo con manuales sintetizados (modo `regenerar`). **Read-only / reporte** — no commitea, no muta nada del corpus.
|
|
10
|
+
|
|
11
|
+
> Propuesta original: `docs/conclusiones/007-export-commands-family.md` §1.3. Pattern hermano: `agent-workflow/skills/export-arq/`.
|
|
12
|
+
|
|
13
|
+
## Excepción session-aware
|
|
14
|
+
|
|
15
|
+
Este skill requiere conocimiento del lifecycle. **No crea ni modifica sesiones**. Si el workspace no tiene AW-PROJECT con fuentes declaradas → abortar con `ok: false`.
|
|
16
|
+
|
|
17
|
+
**Consumo de CLI `agent-workflow`** (no leer paths hardcodeados):
|
|
18
|
+
- `agent-workflow project-md-upsert --read` — `workspace_mode`, fuentes.
|
|
19
|
+
- `agent-workflow history-data` — sesiones cerradas para detectar temas/manuales no graduados.
|
|
20
|
+
- `agent-workflow session-artifacts --code <NNN>` — OBJECTIVE + CHECKPOINT + (MANUAL.md si existe) por sesión.
|
|
21
|
+
- `agent-workflow next-number docs/manuales` — sólo modo `regenerar`.
|
|
22
|
+
|
|
23
|
+
**Lectura del filesystem**:
|
|
24
|
+
- `docs/manuales/*.md` — manuales ya graduados (`kind=manual`).
|
|
25
|
+
- `docs/manuales/INDEX.md` — sobrescribible (re-generable) en modo `complementar`.
|
|
26
|
+
|
|
27
|
+
## When to use
|
|
28
|
+
|
|
29
|
+
- "Manual operativo", "índice de manuales", "consolidar guías técnicas".
|
|
30
|
+
- Tras agregar manuales nuevos via `agent-workflow graduate --kind manual`, refrescar el índice.
|
|
31
|
+
- Paquete de onboarding técnico para nuevos miembros del equipo.
|
|
32
|
+
- Auditoría de cobertura documental.
|
|
33
|
+
|
|
34
|
+
## Qué hace este skill
|
|
35
|
+
|
|
36
|
+
1. Lee AW-PROJECT (fuentes + mode).
|
|
37
|
+
2. Lee `docs/manuales/*.md` (manuales graduados).
|
|
38
|
+
3. Escanea corpus de sesiones cerradas detectando temas / manuales no graduados.
|
|
39
|
+
4. Resuelve modo (`complementar` o `regenerar`).
|
|
40
|
+
5. Aplica filtros `--since`, `--source`, `--temas` si están presentes.
|
|
41
|
+
6. Carga plantilla (`template-index.md` o `template-manual.md`).
|
|
42
|
+
7. Renderiza output aplicando léxico técnico mínimo.
|
|
43
|
+
8. Valida V1-V6 (`references/validations.md`).
|
|
44
|
+
9. Si pasa:
|
|
45
|
+
- `complementar`: sobrescribe `docs/manuales/INDEX.md`.
|
|
46
|
+
- `regenerar`: escribe `docs/manuales/NNN-export-tech-manuals-YYYY-MM-DD/` con 1 manual por tema.
|
|
47
|
+
|
|
48
|
+
## Qué NO hace
|
|
49
|
+
|
|
50
|
+
- Ejecutar commits, merges, push, SQL ni envío de correos.
|
|
51
|
+
- Mutar manuales ya graduados (sólo los lee).
|
|
52
|
+
- Mutar corpus de sesiones.
|
|
53
|
+
- Sobrescribir un dossier `regenerar` previo (siempre next-number).
|
|
54
|
+
- Renderizar visualmente diagramas (los manuales son texto; Mermaid embebido si aporta, pero no es obligatorio).
|
|
55
|
+
- Inventar manuales: si no hay tema detectable, abortar con error claro en modo `regenerar`; en modo `complementar` produce INDEX vacío con nota inline.
|
|
56
|
+
|
|
57
|
+
## Sandbox read-only
|
|
58
|
+
|
|
59
|
+
`../session/references/sandbox-readonly-rules.md`. En plan mode esta skill describe:
|
|
60
|
+
- Modo resuelto + plantilla a cargar.
|
|
61
|
+
- Manuales graduados detectados (lista).
|
|
62
|
+
- Temas detectables del corpus (lista + confidence).
|
|
63
|
+
- Modo `regenerar`: count de manuales que se generarían.
|
|
64
|
+
- Modo `complementar`: estructura del INDEX que se sobrescribiría.
|
|
65
|
+
|
|
66
|
+
NO ejecuta: `Write` del INDEX o de los manuales, `agent-workflow next-number` con efecto, mutaciones.
|
|
67
|
+
|
|
68
|
+
## Estilo de comunicación
|
|
69
|
+
|
|
70
|
+
`../session/references/communication-style.md`. La audiencia es técnica — sin léxico ejecutivo. `agent-workflow:redaccion-simple` aplica con preset default. Foco en accionabilidad: cada manual debe permitir al operador completar la tarea sin invocar al equipo de desarrollo.
|
|
71
|
+
|
|
72
|
+
## Entrada
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
/agent-workflow:export-tech-manuals [--sessions NNN[,NNN]] [--since sessionNNN] [--source <alias>]
|
|
76
|
+
[--mode complementar|regenerar]
|
|
77
|
+
[--temas slug1,slug2]
|
|
78
|
+
[--dry-run]
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### Defaults
|
|
82
|
+
|
|
83
|
+
- `--mode complementar`.
|
|
84
|
+
- Sin `--sessions` (todo el corpus).
|
|
85
|
+
- Sin `--since` (todo el corpus). Ignorado si `--sessions` presente.
|
|
86
|
+
- Sin `--source` (hub completo).
|
|
87
|
+
- Sin `--temas` (todos los temas detectables).
|
|
88
|
+
|
|
89
|
+
Ejemplo: `/agent-workflow:export-tech-manuals --sessions 055,057,061` consolida sólo esas 3 sesiones.
|
|
90
|
+
|
|
91
|
+
### Resolución de `--mode`
|
|
92
|
+
|
|
93
|
+
| Modo | Output | Cuándo usar |
|
|
94
|
+
|---|---|---|
|
|
95
|
+
| `complementar` (default) | `docs/manuales/INDEX.md` (sobrescribe) | Refresh del índice tras agregar manuales graduados |
|
|
96
|
+
| `regenerar` | `docs/manuales/NNN-export-tech-manuals-YYYY-MM-DD/` (next-number) | Paquete consolidado de manuales (ej. onboarding) |
|
|
97
|
+
|
|
98
|
+
### Detección de temas
|
|
99
|
+
|
|
100
|
+
- **Fuente primaria**: `## Topics` o `## Temas` en OBJECTIVE.md de las sesiones del corpus.
|
|
101
|
+
- **Fuente secundaria**: inferencia por keywords en OBJECTIVE/CHECKPOINT (confidence > 0.6).
|
|
102
|
+
- **Override explícito**: `--temas slug1,slug2` limita a los slugs declarados.
|
|
103
|
+
|
|
104
|
+
## Flujo
|
|
105
|
+
|
|
106
|
+
### Paso 1 — Resolver contexto
|
|
107
|
+
|
|
108
|
+
```
|
|
109
|
+
agent-workflow project-md-upsert --read
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
Extrae `workspace_mode`, `fuentes[]`, `mode`. Determina root del workspace + path destino:
|
|
113
|
+
- `hub` → `<hub>/docs/manuales/`.
|
|
114
|
+
- `project` → `<cwd>/docs/manuales/`.
|
|
115
|
+
|
|
116
|
+
### Paso 2 — Inspeccionar manuales graduados
|
|
117
|
+
|
|
118
|
+
Listar `docs/manuales/*.md` (excluyendo `INDEX.md` y subdirectorios `NNN-export-tech-manuals-*/`).
|
|
119
|
+
|
|
120
|
+
Para cada manual graduado, extraer:
|
|
121
|
+
- Slug (del filename `NNN-<slug>.md`).
|
|
122
|
+
- Título (primer `# ` header).
|
|
123
|
+
- Resumen breve (primer párrafo, ≤200 caracteres).
|
|
124
|
+
- Path canónico.
|
|
125
|
+
|
|
126
|
+
### Paso 3 — Detectar temas/manuales no graduados
|
|
127
|
+
|
|
128
|
+
```
|
|
129
|
+
agent-workflow history-data
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
Para cada sesión cerrada del corpus filtrado por `--since` / `--source`:
|
|
133
|
+
|
|
134
|
+
```
|
|
135
|
+
agent-workflow session-artifacts --code <CODE>
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
Buscar:
|
|
139
|
+
- Sección `## Topics` / `## Temas` en OBJECTIVE.md → slug declarado.
|
|
140
|
+
- Archivo `MANUAL.md` dentro de la sesión (si existe).
|
|
141
|
+
- Keywords operativos en OBJECTIVE/CHECKPOINT que sugieran un manual: "configurar", "instalar", "wizard", "paso a paso", "cómo hacer", etc.
|
|
142
|
+
|
|
143
|
+
Listar temas detectados con (slug, confidence, sesiones de origen).
|
|
144
|
+
|
|
145
|
+
Filtrar por `--temas slug1,slug2` si está presente.
|
|
146
|
+
|
|
147
|
+
### Paso 4 — Resolver modo
|
|
148
|
+
|
|
149
|
+
| Modo | Acción |
|
|
150
|
+
|---|---|
|
|
151
|
+
| `complementar` | Cargar `references/template-index.md` |
|
|
152
|
+
| `regenerar` | Cargar `references/template-manual.md` |
|
|
153
|
+
|
|
154
|
+
### Paso 5 — Renderizar
|
|
155
|
+
|
|
156
|
+
**Modo `complementar`**:
|
|
157
|
+
- Cabecera: título + count de manuales totales (graduados + detectables).
|
|
158
|
+
- Tabla principal con columnas: Tema · Slug · Manual graduado (path o `[no graduado]`) · Sesiones de origen.
|
|
159
|
+
- Sección "Próximos pasos sugeridos" si hay temas con `[no graduado]`.
|
|
160
|
+
|
|
161
|
+
**Modo `regenerar`**:
|
|
162
|
+
- 1 archivo `.md` por tema en el dossier.
|
|
163
|
+
- Cada archivo sigue `template-manual.md`: Propósito · Pre-requisitos · Pasos numerados · Validación post-uso · Troubleshooting · Referencias.
|
|
164
|
+
- `README.md` del dossier con índice de manuales generados.
|
|
165
|
+
|
|
166
|
+
Aplicar `references/lexico-tecnico.md` durante el render (limpieza de noise).
|
|
167
|
+
|
|
168
|
+
### Paso 6 — Validar (V1-V6)
|
|
169
|
+
|
|
170
|
+
`references/validations.md`. Reglas adaptadas a los 2 modos:
|
|
171
|
+
- V1 estructura por modo (INDEX con tabla principal vs dossier con N manuales completos).
|
|
172
|
+
- V2 noise vetado.
|
|
173
|
+
- V3 secciones de `template-manual.md` (sólo modo `regenerar`).
|
|
174
|
+
- V4 condicionales (modo `regenerar` con 0 temas → abort; modo `complementar` con 0 manuales → INDEX con nota).
|
|
175
|
+
- V5 header.
|
|
176
|
+
- V6 referencias resolubles (paths a manuales graduados).
|
|
177
|
+
|
|
178
|
+
Si V1, V3 o V4 fallan → abortar.
|
|
179
|
+
|
|
180
|
+
### Paso 7 — Escribir output
|
|
181
|
+
|
|
182
|
+
Si `--dry-run`: imprimir reporte. No escribir.
|
|
183
|
+
|
|
184
|
+
Si pasa:
|
|
185
|
+
- `complementar`: `Write` sobre `docs/manuales/INDEX.md` (sobrescribe).
|
|
186
|
+
- `regenerar`: `agent-workflow next-number docs/manuales` → crear directorio + N archivos.
|
|
187
|
+
|
|
188
|
+
### Paso 8 — Resumen al usuario
|
|
189
|
+
|
|
190
|
+
- Modo + paths escritos.
|
|
191
|
+
- Counts: manuales graduados detectados, temas no graduados detectables, manuales generados (modo `regenerar`).
|
|
192
|
+
- Warnings: V5/V6 si emitieron.
|
|
193
|
+
- Sugerencia: si hay temas detectables sin graduar, sugerir abrir sesiones dedicadas para producirlos formalmente.
|
|
194
|
+
|
|
195
|
+
## Composición con otras skills
|
|
196
|
+
|
|
197
|
+
- **`agent-workflow:redaccion-simple`** — preset default aplicado durante el render.
|
|
198
|
+
- **`agent-workflow:rules`** — anchors transversales consultables.
|
|
199
|
+
- **`session`** — este skill NO invoca graduación ni cierre. Una sesión activa puede consumirlo durante validation/closure para refrescar INDEX tras graduar un nuevo manual.
|
|
200
|
+
|
|
201
|
+
## Re-ejecución
|
|
202
|
+
|
|
203
|
+
- Modo `complementar`: idempotente — sobrescribe `INDEX.md`; dos invocaciones consecutivas con mismo corpus producen el mismo archivo.
|
|
204
|
+
- Modo `regenerar`: cada invocación toma siguiente NNN. No sobrescribe dossiers previos.
|
|
205
|
+
|
|
206
|
+
## Recursos adicionales
|
|
207
|
+
|
|
208
|
+
- **`references/template-manual.md`** — estructura uniforme por manual (modo `regenerar`).
|
|
209
|
+
- **`references/template-index.md`** — estructura del `INDEX.md` consolidado (modo `complementar`).
|
|
210
|
+
- **`references/lexico-tecnico.md`** — noise mínimo vetado (idéntico patrón que export-arq).
|
|
211
|
+
- **`references/validations.md`** — V1-V6 con reglas por modo.
|
|
212
|
+
- **`docs/conclusiones/007-export-commands-family.md`** — Propuesta original (familia `/agent-workflow:export-*`).
|
|
213
|
+
- **`agent-workflow/skills/export-arq/SKILL.md`** — hermano (arquitectura técnica).
|
|
214
|
+
- **`agent-workflow/skills/export-report/SKILL.md`** — hermano (informe ejecutivo).
|