Automatización y scripts

Última actualización: 2026-07-15

Plainva no tiene ningún sistema de plugins que ejecute código de terceros. En su lugar, el propio vault es la interfaz de extensión: tus notas son Markdown puro, las bases de datos son YAML puro (.base), y las convenciones OKF dan a cada archivo una estructura predecible. Cualquier cosa que pueda leer y escribir archivos — un script de shell, un programa Python, una herramienta CLI, una tarea programada o un agente de IA — puede ampliar, generar o reorganizar tu vault sin una sola API específica de Plainva.

Esta página explica cómo hacerlo de forma segura. El formato exacto a nivel de bytes de cada archivo está documentado por separado en la Referencia del formato de archivo; esta página es el complemento práctico: las reglas, el flujo de trabajo y qué entregarle a un asistente de IA.

Por qué archivos en vez de un sandbox de plugins

Si quieres algo que Plainva no hace de fábrica, no esperas a un plugin — escribes un pequeño script contra los archivos.

Leer un vault de forma segura

Todo es texto UTF-8:

Leer nunca requiere cuidado especial — los archivos de texto no se pueden “corromper” con solo leerlos. Las reglas de abajo son todas sobre escribir.

Escribir en un vault de forma segura

Sigue estas reglas y Plainva (y Obsidian) aceptarán tus cambios sin problemas. Plainva vigila la carpeta del vault: una escritura externa se detecta y se reindexa automáticamente, normalmente en menos de un segundo.

  1. Escribe UTF-8 sin BOM, con finales de línea LF. Las herramientas de Windows que usan UTF-16 o CRLF por defecto producen archivos que Plainva trata como modificados en cada sincronización.
  2. Escribe de forma atómica. Escribe en un archivo temporal en la misma carpeta y luego renómbralo sobre el archivo de destino. Una nota escrita a medias (por ejemplo, tras un fallo) es peor que ningún cambio. El propio Plainva escribe cada nota así.
  3. Conserva el frontmatter OKF y las claves desconocidas. Mantén type y okf_version al reescribir una nota, y nunca elimines claves de frontmatter que no reconozcas — arrástralas sin cambios. No “limpies” claves que no entiendas.
  4. Nunca toques .plainva/. Esa carpeta contiene el índice local del dispositivo de Plainva, las copias de seguridad, los pines del grafo y el estado de sincronización. No forma parte de tu contenido y tus scripts nunca deben escribirla, sincronizarla ni subirla a Git.
  5. Respeta las reglas de .base. Una .base usa solo las cuatro claves de nivel superior de Obsidian (filters, formulas, properties, views); cada vista necesita un name; los filtros tienen una única raíz. Todos los datos específicos de Plainva van bajo subclaves anidadas plainva:. La Referencia del formato de archivo tiene el contrato completo, incluido un ejemplo de relaciones en ambos sentidos.
  6. No pelees con el editor. Si una nota está abierta y tiene cambios sin guardar en Plainva, mejor evita reescribirla desde un script en ese mismo momento. Plainva tiene un resolutor de conflictos como red de seguridad, pero el camino más limpio es dejar que la aplicación guarde primero (o editar notas que no están abiertas en ese momento).

Patrones

Algunas tareas habituales, todas simples operaciones de archivo:

Mantén los scripts idempotentes cuando puedas: ejecutarlos dos veces no debería duplicar contenido.

Entregar el vault a un asistente de IA

Un agente de IA con acceso de lectura/escritura a una carpeta de vault es exactamente el caso para el que está pensado este diseño. Para que funcione correctamente:

  1. Dale la Referencia del formato de archivo. Está escrita para un lector automático: el contrato del frontmatter OKF, la serialización propiedad→YAML, el esquema completo de .base con sus reglas estrictas de Obsidian, el contrato de index.md y las reglas de seguridad — todo lo que un agente necesita para editar archivos sin romperlos.
  2. Apúntalo a la carpeta del vault, no a la carpeta .plainva/. Deja claro que .plainva/ está fuera de los límites.
  3. Pide ediciones atómicas y mínimas. Un agente que reescribe una nota entera para cambiar una sola propiedad debería conservar el resto del frontmatter y el cuerpo tal cual.

Como el contrato es un documento, no una API en vivo, las mismas instrucciones funcionan con cualquier asistente, sin conexión o en línea.

Resumen de seguridad

Ver también