Minutes minutes-ingest
Extract facts from meetings and update your knowledge base — person profiles, chronological log, and index. Use when the user asks "ingest my meetings", "update my knowledge base", "extract facts from meetings", "sync meetings to wiki", "backfill knowledge", or wants their PARA/Obsidian/wiki profiles updated from conversation data.
install
source · Clone the upstream repo
git clone https://github.com/silverstein/minutes
manifest:
tooling/skills/sources/minutes-ingest/skill.mdsource content
/minutes-ingest
Process meetings through the knowledge extraction pipeline to update person profiles, append to the knowledge log, and maintain the index.
Prerequisites
The
[knowledge] section must be configured in ~/.config/minutes/config.toml:
[knowledge] enabled = true path = "/path/to/knowledge/base" adapter = "wiki" # or "para", "obsidian" engine = "none" # or "agent" for LLM extraction min_confidence = "strong"
If not configured, explain what's needed and offer to help set it up.
How to run
Single meeting
minutes ingest ~/meetings/2026-04-03-strategy-call.md
All meetings (backfill)
minutes ingest --all
Preview without writing (recommended first time)
minutes ingest --all --dry-run
What it does
- Reads each meeting's YAML frontmatter (decisions, action_items, entities, intents)
- Extracts structured facts with confidence levels and source provenance
- Updates person profiles in the knowledge base (adapter-dependent format)
- Appends to
with a timestamped entry for each ingested meetinglog.md - Skips facts that already exist (deduplication) or are below the confidence threshold
Safety guarantees
(default): Only extracts from parsed YAML frontmatter. No LLM involved, zero hallucination risk.engine = "none"- Confidence thresholds: Facts below
are counted as "skipped" but never written.min_confidence - Provenance: Every fact records which meeting it came from and when.
- Deduplication: Facts whose text already appears in a person's profile are skipped.
- Dry-run: Always suggest
first if the user hasn't used ingest before.--dry-run
Interpreting the output
Ingesting 73 meeting(s) into knowledge base at /path/to/kb 2026-04-03-strategy.md — 4 written, 1 skipped — Mat, Dan 2026-04-05-standup.md — 2 written, 0 skipped — Alice SKIP 2026-03-18-test.md: no frontmatter Done. 6 fact(s) written, 1 skipped, 1 error(s), 3 people updated.
- written: facts that passed confidence threshold and didn't already exist
- skipped: facts below confidence threshold (logged, not written)
- SKIP: files that couldn't be parsed (no frontmatter, invalid YAML, etc.)
Gotchas
- Meetings without summarization have no structured data — If a meeting was recorded before summarization was enabled, its frontmatter won't have
oraction_items
. The ingest will correctly extract 0 facts. This is expected, not an error.decisions
requires an AI CLI — If the user wants richer LLM-based extraction from transcript body text, they needengine = "agent"
,claude
, orcodex
on PATH.gemini- PARA adapter writes
— If the user's knowledge base uses the PARA format, facts go intoitems.json
with atomic fact schema (id, status, supersededBy).areas/people/{slug}/items.json - First run should be dry-run — Always suggest
before the first real run so the user can see what would be extracted.minutes ingest --all --dry-run