Automatisering & scripts

Laatst bijgewerkt: 2026-07-15

Plainva heeft geen pluginsysteem dat code van derden uitvoert. In plaats daarvan is de vault zelf de uitbreidingsinterface: je notities zijn gewone Markdown, databases zijn gewone YAML (.base), en de OKF-conventies geven elk bestand een voorspelbare structuur. Alles wat bestanden kan lezen en schrijven — een shellscript, een Python-programma, een CLI-tool, een geplande taak of een KI-agent — kan je vault uitbreiden, genereren of herstructureren zonder ook maar één Plainva-specifieke API.

Deze pagina legt uit hoe je dat veilig doet. Het exacte bestandsformaat, tot op byte-niveau, is voor elk bestand apart gedocumenteerd in de Bestandsformaat-referentie; deze pagina is de praktische aanvulling: de regels, de werkwijze, en wat je een KI-assistent moet meegeven.

Waarom bestanden in plaats van een plugin-sandbox

Wil je iets wat Plainva niet standaard doet, dan wacht je niet op een plugin — je schrijft een klein script tegen de bestanden.

Een vault veilig lezen

Alles is UTF-8-tekst:

Lezen vraagt nooit om voorzichtigheid — tekstbestanden kunnen niet “beschadigd” raken door ze te lezen. De regels hieronder gaan allemaal over schrijven.

Een vault veilig schrijven

Volg deze regels en Plainva (en Obsidian) accepteren je wijzigingen probleemloos. Plainva houdt de vaultmap in de gaten: een externe schrijfactie wordt automatisch opgemerkt en opnieuw geïndexeerd, meestal binnen een seconde.

  1. Schrijf UTF-8 zonder BOM, met LF-regeleinden. Windows-tools die standaard UTF-16 of CRLF gebruiken, produceren bestanden die Plainva bij elke sync als gewijzigd beschouwt.
  2. Schrijf atomair. Schrijf naar een tijdelijk bestand in dezelfde map en hernoem dat vervolgens naar de doelnaam. Een half geschreven notitie (bijvoorbeeld na een crash) is erger dan helemaal geen wijziging. Plainva schrijft zelf elke notitie op deze manier.
  3. Bewaar de OKF-frontmatter en onbekende sleutels. Behoud type en okf_version wanneer je een notitie herschrijft, en laat nooit frontmattersleutels vallen die je niet herkent — ze moeten een lees-/schrijfronde ongewijzigd doorstaan. “Ruim” geen sleutels op die je niet begrijpt.
  4. Raak .plainva/ nooit aan. Die map bevat Plainva’s lokale (per-apparaat) index, back-ups, vastzettingen in de graaf en sync-status. Het is geen onderdeel van je inhoud en mag door je scripts nooit worden beschreven, gesynchroniseerd of naar Git gecommit.
  5. Houd je aan de .base-regels. Een .base gebruikt alleen Obsidians vier top-level sleutels (filters, formulas, properties, views); elke weergave heeft een name nodig; filters zijn eenwortelig. Alle Plainva-specifieke data staat onder geneste plainva:-subsleutels. De Bestandsformaat-referentie bevat het volledige contract, inclusief een tweezijdig relatievoorbeeld.
  6. Werk niet tegen de editor in. Is een notitie open en heeft ze niet-opgeslagen wijzigingen in Plainva, herschrijf haar dan liever niet op datzelfde moment vanuit een script. Plainva heeft een conflictoplosser als vangnet, maar de schoonste weg is de app eerst te laten opslaan (of notities te bewerken die op dat moment niet open staan).

Patronen

Een paar veelvoorkomende taken, allemaal gewoon bestandsbewerkingen:

Houd scripts waar mogelijk idempotent: twee keer draaien mag geen inhoud verdubbelen.

De vault overdragen aan een KI-assistent

Een KI-agent met lees-/schrijftoegang tot een vaultmap is precies het scenario waarvoor dit ontwerp is gemaakt. Om hem correct te laten werken:

  1. Geef hem de Bestandsformaat-referentie. Die is geschreven voor een machinale lezer: het OKF-frontmattercontract, de eigenschap→YAML-serialisatie, het volledige .base-schema met de harde Obsidian-regels, het index.md-contract en de veiligheidsregels — alles wat een agent nodig heeft om bestanden te bewerken zonder ze te breken.
  2. Wijs hem naar de vaultmap, niet naar de map .plainva/. Maak duidelijk dat .plainva/ verboden terrein is.
  3. Vraag om atomaire, minimale wijzigingen. Een agent die een hele notitie herschrijft om één eigenschap te wijzigen, moet de rest van de frontmatter en de tekst woordelijk bewaren.

Omdat het contract een document is en geen live API, werken dezelfde instructies met elke assistent, offline of online.

Veiligheidsregels op een rij

Zie ook