# Pack Backup: copias ZIP con fecha, restauración y rotación

> Backup Manager comprime tu proyecto en ZIP con fecha, lista, restaura y rota los archivos con cuatro comandos slash. Instalación, cinco ejemplos, ubicaciones, exclusiones y lo que no cubre.

Canonical: https://bmad-plus.rochetta.fr/es/docs/packs/backup/
Language: es
BMAD+ version: 0.23.1
Documentation reviewed: 2026-10-19
Author: Laurent Rochetta
License: MIT

Documentación de BMAD+ › [Packs](https://bmad-plus.rochetta.fr/es/docs/packs/) › Pack Backup: copias ZIP con fecha, restauración y rotación

El pack Backup instala Backup Manager, un agente que hace una copia ZIP de tu proyecto con un comando, la nombra con fecha y hora, lista las copias, restaura una cuando se lo pides y poda las antiguas. Sirve justo antes de un cambio arriesgado, una gran refactorización o una migración, cuando quieres una vuelta atrás rápida que no dependa del control de versiones. Es deliberadamente simple: usa las herramientas de compresión de tu sistema y guarda los archivos en una carpeta `backups/` dentro del proyecto.

<a id="when-to-use"></a>
## Cuándo usarlo

- Antes de una gran refactorización, una actualización de dependencias, una migración de datos o una ejecución de autopilot.
- Para proyectos que no están bajo control de versiones o cuyo estado sin confirmar importa.
- No sustituye a copias de seguridad reales: consulta los límites más abajo.

<a id="installed"></a>
## Qué se instala

Un pack empaquetado en `.agents/skills/pack-backup/`: el archivo del agente `backup-agent.md` y una plantilla de workflow `templates/backup-workflow.md`. No se incluye ninguna habilidad, archivo de datos ni script: el agente escribe él mismo los comandos, en PowerShell en Windows o en Bash en Linux y macOS, y sustituye el marcador `%PROJECT_ROOT%` por la ruta real de tu proyecto.

**Menú de Backup Manager**

| Comando | Qué hace |
| --- | --- |
| `/backup` | Copia completa: un ZIP con fecha y hora del proyecto entero, con las exclusiones de abajo |
| `/backup-list` | Lista los ZIP de `backups/`, del más reciente al más antiguo, con tamaño y fecha |
| `/backup-restore` | Extrae un ZIP elegido en una carpeta nueva `restore_<timestamp>/` en la raíz del proyecto |
| `/backup-clean` | Rotación: conserva los últimos N archivos (5 salvo que indiques otra cosa) y borra el resto, tras preguntarte |

<a id="quick-start"></a>
## Inicio rápido

1. **Instalar el pack** Core se añade automáticamente. Solo hace falta Node.js 20 para el instalador.

   ```sh
   npx bmad-plus install --packs backup
   ```
2. **Hacer una primera copia** El agente encuentra la raíz del proyecto, detecta tu sistema operativo, crea `backups/` si hace falta, construye el archivo e indica su nombre y tamaño.

   ```sh
   /backup
   ```
3. **Ignorar la carpeta en el control de versiones** Los archivos son simples datos del proyecto: mantenlos fuera de los commits (línea para añadir a `.gitignore`).

   ```sh
   backups/
   ```

<a id="examples"></a>
## Ejemplos para copiar

<a id="example-backup-create"></a>
### Hacer una copia con fecha y hora

Ejecútalo antes de cualquier cosa que puedas querer deshacer.

**En tu asistente de IA**

```text
/backup y luego enumera lo que dejaste fuera del archivo para que compruebe que no falta nada que necesite.
```

**Lo que deberías obtener** Se crea el archivo `backups/<project>_backup_<yyyyMMdd_HHmmss>.zip` y el agente indica su nombre y su tamaño en megabytes. En la raíz del proyecto excluye `node_modules`, `.git`, `vendor`, `backups/`, `__pycache__` y los archivos que coinciden con `*.backup_*`, que es la lista que el agente puede leerte.

<a id="example-backup-before-refactor"></a>
### Hacer una copia en lenguaje natural antes de un cambio arriesgado

Puedes llamar al agente por su nombre y pedirlo en lenguaje natural en lugar de escribir el comando slash.

**En tu asistente de IA**

```text
Backup Manager, haz una copia de este proyecto antes de que renombre los módulos de src/ e indícame el tamaño del archivo.
```

**Lo que deberías obtener** El mismo archivo que `/backup`, con el tamaño a la vista. Mostrar el tamaño es una de las reglas del agente; en Linux y macOS el comando de referencia solo imprime el nombre del archivo, así que el agente tiene que añadir él mismo el tamaño.

<a id="example-backup-list"></a>
### Listar las copias que tienes

Úsalo para elegir qué archivo restaurar o podar.

**En tu asistente de IA**

```text
/backup-list
```

**Lo que deberías obtener** Una tabla de los archivos `*.zip` de `backups/`, ordenados por fecha de última escritura (el más reciente primero), con nombre, tamaño en megabytes y fecha.

<a id="example-backup-restore"></a>
### Restaurar sin sobrescribir tu trabajo

La restauración va a una carpeta aparte, así que puedes comparar antes de copiar nada de vuelta.

**En tu asistente de IA**

```text
/backup-restore el archivo más reciente
```

**Lo que deberías obtener** El ZIP se extrae en `restore_<yyyyMMdd_HHmmss>/` en la raíz del proyecto y el agente muestra esa ruta. Tus archivos actuales no se tocan; copia de vuelta lo que necesites.

<a id="example-backup-clean"></a>
### Conservar solo las últimas copias

La rotación borra archivos, así que el agente siempre pide confirmación antes.

**En tu asistente de IA**

```text
/backup-clean conserva las 3 últimas.
```

**Lo que deberías obtener** Tras tu confirmación, los archivos más antiguos que los tres más recientes se borran de `backups/` y el agente indica cuántos se conservaron. Sin número, el valor por defecto es 5.

<a id="outputs"></a>
## Qué escribe y dónde

**Archivos y carpetas creados por el pack**

| Ruta | Lo crea | Contenido |
| --- | --- | --- |
| `backups/` | `/backup` | Los archivos, con nombre `<project>_backup_<yyyyMMdd_HHmmss>.zip` |
| `restore_<yyyyMMdd_HHmmss>/` | `/backup-restore` | La copia extraída de un archivo |

<a id="data-and-prerequisites"></a>
## Flujos de datos y requisitos

- Windows: PowerShell con `Compress-Archive` y `Expand-Archive`. Linux y macOS: Bash y el programa `zip`, que debe estar instalado.
- Tu herramienta anfitriona debe permitir al agente ejecutar comandos de shell. Nada sale de tu máquina: ni subida, ni llamada de red, ni clave.

<a id="limits"></a>
## Límites y trampas

> **Advertencia · No es una copia de recuperación ante desastres** Los archivos están dentro del proyecto, en el mismo disco. Un disco perdido pierde ambos. El pack no programa copias, no las cifra ni las copia a otro sitio. Copia tú mismo los archivos importantes a otra ubicación.

> **Advertencia · El historial de Git no está en el archivo** `.git` está excluido, así que una restauración devuelve archivos, no commits ni ramas. Las dependencias de `node_modules` y `vendor` también se excluyen: reinstálalas tras restaurar.

> **Nota · Las exclusiones nombran carpetas de primer nivel** El comando de PowerShell filtra solo las entradas de la raíz del proyecto, y los patrones de Bash están escritos para carpetas de la raíz: las exclusiones se aplican solo en la raíz del proyecto. Un `node_modules` anidado (por ejemplo en `packages/app/`) puede acabar en el archivo. Vigila el tamaño que indica el agente y pídele que excluya más si hace falta.

> **Nota · Nombres de comando que usar** El menú es `/backup`, `/backup-list`, `/backup-restore` y `/backup-clean`. No hay un subcomando `create`: `/backup` a secas crea el archivo.

> **Nota · Procedencia** El pack Universal Backup lo escribió Laurent Rochetta en Oveanet, su empresa, y se integró en BMAD+.

**Véase también**

- [Los diez packs lado a lado](https://bmad-plus.rochetta.fr/es/docs/packs/packs-overview/)
- [Instalar, actualizar, desinstalar](https://bmad-plus.rochetta.fr/es/docs/guides/install-lifecycle/)
- [Comando update (sus propios recibos y restauración)](https://bmad-plus.rochetta.fr/es/docs/reference/cli-update/)

[Documentación de BMAD+](https://bmad-plus.rochetta.fr/es/docs/) · [Packs](https://bmad-plus.rochetta.fr/es/docs/packs/)

[Código en GitHub](https://github.com/lrochetta/BMAD-PLUS)
