Skill
Plaud Ingest
Pulls new voice-note summaries into a staging intake, pushes genuine to-dos to a task app, and writes a dated digest — idempotently.
A voice recorder captures a thought at the moment it happens — in a car, between meetings, walking — but the recording then dies in the device. Every note becomes a manual transcribe-and-file chore, and the action items buried inside them never reach a task list. This skill closes that gap: it pulls the AI summaries of recordings it has not seen before, writes one filing-ready bundle per recording, turns genuine to-dos into tasks, and synthesizes the batch into a dated digest.
It is built to be run on a schedule and trusted. A JSON state file records every recording it has touched, so a re-run never double-writes a bundle or double-posts a task. And it stops at the staging intake — it never files, classifies, or moves anything. That stays with the downstream filer.
How it works
State is the spine. The state file holds three id-keyed lists: recordings already ingested, recordings seen but with no summary yet, and junk that is never reconsidered. An id in any list is “known.”
- Find net-new. It pages the recorder newest-first and stops once a whole page is already known. Dedup is by id, never by date — recorders upload in batches, so a days-old note can surface at the top today, and only id-dedup guarantees nothing is missed.
- Skip the junk. Accidental taps (very short, no summary) and the recorder’s seeded onboarding items route to the skip list. A short recording with a real summary is kept.
- Write the bundle. For each candidate it fetches the note. No summary yet means the id parks in the pending list and is rechecked next run. Otherwise it writes a two-file bundle — a structured
summary.md(verbatim summary, plus a classification-friendly opening) and a faithfully renderednotes.txt. - To-dos, sparingly. Only genuine personal actions become tasks, each in a best-fit project, skipped if an equivalent already exists. The bar is “when in doubt, leave it out” — a missed task is recoverable, a noisy task list is not.
- Persist after every recording. The whole state file is rewritten once per recording, so an interrupted backfill re-ingests nothing.
The digest closes each run: a per-recording entry plus a real cross-cutting synthesis tied to your own work themes, or a plain statement that there is nothing cross-cutting.
Why the split matters
Two disciplines hold the whole thing together. Idempotency makes re-running always safe, which is what lets it sit on a schedule. Separation of concerns keeps ingestion a pure, bounded write: it produces filing-ready bundles but refuses to file them, leaving classification authority where it belongs. Recording content is treated as data, never as instructions — a model-generated summary can contain directive-sounding phrasing, and the skill never acts on it.