Los registros de conversaciones sin procesar se vuelven ilegibles a gran escala. Después de unos meses de uso intensivo, te encuentras con cientos de miles de líneas de intercambios. Buscarlos es lento; leerlos es imposible. Una bóveda de Obsidian, por el contrario, te ofrece una memoria estructurada a largo plazo: enlaces bidireccionales, etiquetas y una vista de gráfico que resalta las conexiones. La brecha entre ambos es obvia. Cerrarla requiere automatización.
Construí un pequeño pipeline que cierra esa brecha cada noche. Ejecuta tres pasos en secuencia, sin intervención manual. Primero, recolecta las últimas exportaciones de conversaciones y las actualiza a su estado actual. Segundo, destila las últimas 28 horas de diálogo sin procesar a través de Claude, anexando resúmenes estructurados directamente en la bóveda de Obsidian. Esa ventana de 28 horas es deliberada; cubre el día completo anterior más un pequeño margen para retrasos. Tercero, realiza una copia de seguridad de todo haciendo commit y push de los cambios a un repositorio privado, que actúa tanto como almacenamiento offline como seguro contra eliminaciones accidentales. Toda la cadena tiene que ser aburrida y fiable. La automatización aburrida es el objetivo.
Cuando macOS mata tu script silenciosamente
El mayor enemigo de una tarea nocturna no es un fallo dramático. Es el silencio.
En macOS, la carpeta Documentos vive bajo la protección de TCC, el subsistema de privacidad que controla el acceso a ubicaciones sensibles. Si programas tu script a través de launchd, el sistema puede simplemente bloquear el proceso sin lanzar un error que notes. Tu archivo de registro se queda vacío. Tu bóveda nunca se actualiza. La tarea falló, pero solo descubres el vacío días después, cuando te das cuenta de que tus notas están desactualizadas.
Manejo esto con una estricta rutina de comprobación previa. Antes de que comience el trabajo principal, el script intenta una operación de escritura inofensiva dentro del directorio de destino. Si macOS la deniega, el fallo se detecta inmediatamente y se dispara una notificación de escritorio llamativa. No hay salidas silenciosas. A continuación, el propio intérprete de shell necesita que se le conceda Acceso total al disco en los Ajustes del Sistema. Ese permiso es tosco, por lo que minimizo la exposición manteniendo todos los scripts de automatización completamente fuera del árbol de la carpeta Documentos protegida. Viven en un directorio dedicado en otro lugar, y la ruta de la bóveda se referencia explícitamente. Esa combinación de detección temprana, alertas ruidosas y una ubicación cuidadosa de las carpetas soluciona el escenario de muerte silenciosa.
Diseñando para el reposo, los tiempos de espera y las tareas congeladas
Las laptops entran en reposo. Las redes tienen fallos momentáneos. Las llamadas a la API se quedan colgadas. Una sola tarea congelada no debería detener todo el sistema indefinidamente.
Uso cuatro mecanismos prácticos para mantener estable el pipeline.
Múltiples franjas horarias. En lugar de apostarlo todo a una única ejecución temprano por la mañana, el programador lo intenta de nuevo en diferentes momentos del día. Si la máquina estaba cerrada al amanecer, la ventana de la tarde aún la captura.
Marcadores de finalización. Cuando una ejecución tiene éxito, deja un rastro claro. El siguiente intento programado comprueba primero ese marcador. Si el trabajo ya está completo, finaliza limpiamente en cuestión de segundos. Esto evita llamadas innecesarias a la API y procesamientos redundantes.
Bloqueos de archivos mediante mkdir. Para evitar ejecuciones superpuestas, utilizo un bloqueo basado en directorios. La creación de un directorio es atómica en los sistemas de archivos locales, por lo que dos tareas simultáneas no pueden reclamar la misma ruta de bloqueo. Si el directorio ya existe, la segunda instancia se aborta inmediatamente. Cuando la primera termina, elimina el directorio. Esto es más ligero que los archivos PID y más difícil
