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.

Flow diagram: recordings pull from the recorder cloud through a seen-before gate backed by a state file, then route three ways: capture-style bundles to the archive intake, genuine to-dos to the task app, and a daily digest.

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 rendered notes.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.