---
name: swl:exportar-vault
description: Exporta un resumen compacto de la sesión actual del proyecto al vault SWL personal de Saul (F:\Google Drive\Developer\Obsidian\Vault\SWL\00-Inbox\). Úsalo después de /swl:compactar o al cerrar una sesión productiva cuando quieras que el contenido llegue al segundo cerebro sin esperar a una sincronización manual.
allowed_tools: ["Read", "Write", "Bash", "Glob"]
---

# /swl:exportar-vault — Puente SWL-SES → Vault personal

Eres el puente entre el proyecto activo (sigaf, sigm, swl-ses, ecosistema-multi-agente-ia u otro) y el **vault personal de Saul** ubicado en `F:\Google Drive\Developer\Obsidian\Vault\SWL`. Tu trabajo: producir una nota de Inbox del vault con el resumen de la sesión actual, lista para que Saul la procese cuando abra el vault.

Este comando es **complementario a `/swl:compactar`**, no lo reemplaza. Compactar actualiza `.planning/COMPACTACION.md` del proyecto; exportar-vault propaga lo relevante al vault.

## Señales de que debes usarlo

- Acabas de cerrar `/swl:compactar` con decisiones o aprendizajes importantes.
- Vas a terminar la sesión del día y quieres que los puntos clave queden en el segundo cerebro.
- Saul lo pide explícitamente.
- La sesión produjo una decisión arquitectural que afecta a otros proyectos del ecosistema.

## Paso 0 — Validación del destino

Verifica que el vault existe y es accesible:

```bash
test -d "F:\Google Drive\Developer\Obsidian\Vault\SWL\00-Inbox" \
  && echo "[OK] Vault accesible" \
  || echo "[ERROR] Vault no accesible — abortar"
```

Si la ruta no es accesible (por ejemplo, Google Drive no sincronizado o letra de unidad distinta), **abortar con mensaje claro**. No intentes rutas alternativas sin permiso explícito.

## Paso 1 — Identificación del proyecto actual

Detecta qué proyecto eres leyendo:

1. `CLAUDE.md` raíz — primer encabezado H1.
2. `package.json` campo `name` si existe.
3. Si ninguno aclara, usar el nombre de la carpeta raíz del proyecto.

Normaliza el slug del proyecto a kebab-case sin acentos. Ejemplos válidos:

- `sigaf`
- `sigm`
- `swl-software-engineering-system`
- `ecosistema-multi-agente-ia`

## Paso 2 — Recolección del contenido de la sesión

Junta estas fuentes (las que existan):

1. **Última compactación:** `.planning/COMPACTACION.md` o `.planning/COMPACT.md`.
2. **Estado actual:** `.planning/ESTADO.md` o `.planning/STATE.md`.
3. **Últimos aprendizajes del APRENDIZAJES.md** — solo las entradas con fecha del día en curso o las últimas 10.
4. **Git log del día:** `git log --oneline --since="00:00" --until="23:59"`.
5. **Git status actual:** `git status --short`.

## Paso 3 — Síntesis

Produce un resumen de **no más de 500 palabras** con esta estructura:

```markdown
---
type: export-swl
status: pending-review
tags: [export, inbox, swl-{proyecto-slug}]
created: {fecha-hoy YYYY-MM-DD}
source: swl-ses
project: "{nombre-proyecto}"
project_path: "{ruta-absoluta}"
related_vault_project: "[[DEV - {nombre-en-vault}]]"
reviewed: false
---

# Export SWL-SES → Vault ({fecha-hoy}) — {nombre-proyecto}

## Sesión

- **Fecha:** YYYY-MM-DD
- **Horario:** HH:MM a HH:MM
- **Rama git:** {rama}
- **Último commit:** {sha7} — {mensaje}

## Logros de la sesión

- Punto 1
- Punto 2
- Punto 3

## Decisiones tomadas

- **{título decisión}** — razón en 1 línea.
- ...

## Aprendizajes nuevos (candidatos a 04-Resources del vault)

- **{aprendizaje}** — fuente: `{archivo}` o sesión.

## Métricas que cambiaron

| Métrica | Antes | Después |
|---------|-------|---------|
| LOC | | |
| Endpoints | | |
| Tests | | |

## Bloqueantes o deuda detectada

-

## Acción sugerida al leer en el vault

Ejecutar `/sync-projects {proyecto-slug}` en el vault para integrar los cambios formalmente.

---

**Archivos fuente consultados:**
- `.planning/COMPACTACION.md` (última)
- `.planning/APRENDIZAJES.md` (últimas entradas)
- Git log del día

**Notas:**
- Este archivo vive en 00-Inbox/ del vault. Saul lo procesa manualmente o con `/sync-projects`.
- No sobreescribe nada en `02-Projects/`, `04-Resources/` ni `07-Decisions/` del vault.
```

## Paso 4 — Escritura en el vault

Escribe el archivo en:

```
F:\Google Drive\Developer\Obsidian\Vault\SWL\00-Inbox\YYYY-MM-DD_HHMM_export-{proyecto-slug}.md
```

Usar UTF-8 sin BOM. En PowerShell:

```powershell
$encoding = New-Object System.Text.UTF8Encoding($false)
[System.IO.File]::WriteAllText($path, $content, $encoding)
```

En Node.js hook o script:

```javascript
fs.writeFileSync(path, content, { encoding: 'utf8' });
```

## Paso 5 — Confirmación

Reporta al usuario:

- Ruta exacta del archivo creado.
- Conteo de palabras.
- Recordatorio: "Al abrir el vault en tu próxima sesión, ejecuta `/sync-projects {proyecto-slug}` para integrar formalmente estos cambios."

## Restricciones

- **No sobrescribir** archivos existentes con el mismo nombre. Si por azar existe uno con el mismo timestamp (raro), agrega sufijo `_b`.
- **No escribir** en otras carpetas del vault. Solo `00-Inbox/`.
- **No tocar** `.planning/` del proyecto.
- **Abortar silenciosamente** si el vault no existe, reportando al usuario. No asumir rutas alternativas.

## Anti-patrones

- Exportar 5000 palabras cuando la sesión fue pequeña. El resumen debe ser denso.
- Duplicar con el `COMPACTACION.md` del proyecto (copiar pega tal cual). El export es una **síntesis para vault**, no un espejo.
- Intentar escribir directamente en `02-Projects/` del vault. Eso es zona ⚠️ en el vault — solo Saul decide si promoverlo.
- Usar rutas con backslash no escapadas en código generado.

## Relación con otros comandos SWL

- `/swl:compactar` → actualiza `.planning/` del proyecto. Luego `/swl:exportar-vault` propaga al vault. Secuencia natural.
- `/swl:aprender` → captura aprendizajes en el proyecto. Luego `/swl:exportar-vault` los envía al vault como candidatos.
- `/swl:checkpoint` → guarda estado del proyecto. No requiere export al vault (es recuperación interna).

## Ejemplo de invocación

```
/swl:compactar
/swl:exportar-vault
```

Produce:

```
[OK] Export creado: F:\Google Drive\Developer\Obsidian\Vault\SWL\00-Inbox\2026-04-16_2130_export-sigaf.md (487 palabras)

Próximo paso: al abrir el vault, ejecuta:
  /sync-projects sigaf
```
