diff
Referencia de la CLI para el comando apothem diff.
Previsualiza los cambios de configuración pendientes de un único entorno.
Sinopsis
apothem diff --harness NAME [--profile PATH] [--project PATH]
[--quiet|-q] [--verbose|-v]
[--format plain|json] [--json] [--no-color]diff es un comando de inspección de solo lectura. Ejecuta la misma
materialización que ejecutaría el comando install, pero en modo de simulación:
no se escribe nada en disco. Para cada destino pendiente renderiza una acción en
lenguaje sencillo (por ejemplo Write file, Merge directory, Install skills
o Prune stale files), la ruta de destino, un estado de previsualización
(would create, would update, would remove o no change) y, para las anclas
propiedad del operador que se fusionarían, el diff unificado del cambio. El
estado se calcula comparando el origen con el destino actual en disco, de modo
que un destino que ya coincide se muestra como no change y se oculta en la
vista predeterminada. Es la respuesta a «¿qué haría apothem install con este
entorno ahora mismo?» sin realizar el cambio.
El plan abarca cada ruta que escribe la instalación: las entradas del
manifiesto, el propio archivo de configuración del entorno (por ejemplo
opencode.json o config.yaml), el ancla de instrucciones o el documento de
perfil en el que se proyecta el perfil compartido (como CLAUDE.md) y los
almacenes de datos compartidos bajo .apothem/. Justo después de una
instalación, diff no informa ningún cambio pendiente; una reinstalación
posterior no escribe nada y no toma una nueva copia de seguridad.
install --dry-run muestra el mismo plan.
Para los adaptadores que escriben skills en tu directorio personal, el plan lista
esas carpetas con sus rutas del directorio personal, antes de los archivos del
proyecto, y una carpeta de skill que Apothem no escribió aparece como una
advertencia skill_conflict.
Para los destinos propiedad del operador —archivos que llevan tanto tu propio contenido como un bloque gestionado por Apothem— el diff muestra las líneas exactas que cambiarían. Para los demás destinos, se resumen la acción planificada y el estado de previsualización.
La vista predeterminada lista solo los cambios pendientes. Pasa --verbose para
ver el plan completo, incluidos los destinos sin cambios, anotado con el tipo de
operación interna sin procesar y el resultado. La capa de presentación no afecta
al sobre --json: siempre lleva los campos operation y outcome sin procesar
para los consumidores automáticos.
diff opera sobre un único entorno. A diferencia de install o verify, no
acepta all; pasa un nombre de entorno.
Opciones
| Opción | Descripción |
|---|---|
--harness NAME | Adaptador de entorno que se previsualiza (obligatorio; un único entorno, no all). |
--profile PATH | Ruta al YAML del perfil compartido. Por defecto, ~/.config/apothem/profile.yaml. |
--project PATH | Raíz del proyecto para los entornos con alcance de proyecto. Obligatoria cuando el entorno seleccionado tiene alcance de proyecto. |
--quiet, -q | Suprime la salida informativa; solo se emiten errores. |
--verbose, -v | Muestra el plan completo, incluidos los destinos sin cambios, anotado con el tipo de operación sin procesar y el resultado. |
--format plain|json | Formato de salida (por defecto: plain). |
--json | Abreviatura de --format json. |
--no-color | Desactiva los códigos de color ANSI en la salida. |
-h, --help | Muestra la ayuda y sale. |
Salida JSON
El sobre --json refleja el sobre de la instalación en modo de simulación.
status es dry_run, files_written siempre está vacío, y el bloque
materialization junto con la lista results llevan todo el detalle de los
destinos planificados. El campo detail.diff de cada fila de resultado
propiedad del operador lleva la cadena del diff unificado.
{
"schema_version": 1,
"status": "dry_run",
"command": "diff",
"action": "dry_run",
"harness": "claude-code",
"files_written": [],
"results": [
{
"harness": "claude-code",
"outcome": "updated",
"operation": "sentinel_merge",
"path": "C:\\Users\\Example\\.claude\\CLAUDE.md",
"message": "dry run: no filesystem changes made",
"detail": {
"ownership_class": "operator-owned",
"diff": "--- a/CLAUDE.md\n+++ b/CLAUDE.md\n@@ ..."
}
}
],
"warnings": [],
"error": null,
"materialization": { "...": "..." }
}Ejemplos
apothem diff --harness claude-code
apothem diff --harness cursor --project .
apothem diff --harness claude-code --jsonCódigos de salida
| Código | Significado |
|---|---|
| 0 | Diff informado (los cambios pendientes se informan, no son un error) |
| 1 | Error esperado de validación, de perfil, de entorno o de proyecto |
| 64 | Error de uso: una opción o un comando desconocidos, o un valor de opción ausente o no válido. Con --json, el error es un sobre JSON con el código cli.usage. |
Véase también
- apothem status — informa la instalación, la verificación y la desviación de cada entorno
- apothem verify — verifica la instalación de un adaptador de entorno
- apothem install — aplica los cambios previsualizados