---
id: 0033e
title: Skill `/compile` orquesta freeze + vendor + go builds
status: pending
priority: medium
created: 2026-05-02
depends_on: [0033, 0033b, 0033d]
---

## Objetivo

Tras compilar el `.exe` Windows de un app, el skill `/compile` debe
preparar todo lo necesario para que el zip distribuible sea
self-contained.

## Pasos del skill (post-build)

```
1. Compilar .exe Windows (ya lo hace).
2. Si app.python_runtime == 1:
     a. tools/freeze_python_runtime.sh <app_dir> windows
     b. para cada enricher con lang: python:
          tools/vendor_enricher_python.sh <enricher_dir> $(pwd)
3. Para cada enricher con lang: go:
     bash <enricher_dir>/build.sh    (cross-compile linux+windows)
4. Copiar arbol final a /mnt/c/Users/lucas/Desktop/apps/<app>/
   incluyendo: <app>.exe, runtime/, enrichers/ con run.exe + _vendored/.
5. Verificar layout: smoke check que <app>.exe + runtime/python/python.exe
   + enrichers/*/run.exe existen.
```

## Cambios

Editar el skill `~/.claude/plugins/<plugin>/compile/skill.md` (o
donde viva el `/compile`) para anadir los pasos 2-5. Si el skill ya
copia archivos, extender la lista; si no, anadir el bloque entero.

## Test manual

Tras un `/compile` limpio:

```bash
ls /mnt/c/Users/lucas/Desktop/apps/graph_explorer/
# Esperado:
# graph_explorer.exe
# runtime/python/python.exe
# enrichers/extract_domain/run.exe         (Go)
# enrichers/web_search/run.py + _vendored/ (Python custom, ej.)
# ...
```

Y desde Windows (no WSL): doble click en `graph_explorer.exe`,
arrancar Echo, ejecutar `web_search` sobre un nodo text. Debe
funcionar sin que WSL este corriendo.

## Definicion de hecho

- `/compile` (o equivalente) ejecuta los 5 pasos sin intervencion
  manual.
- Un PC Windows limpio (sin WSL) corre la app desde el zip
  copiado a Desktop.
