/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:
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
bashminutes ingest ~/meetings/2026-04-03-strategy-call.md
All normal meetings (backfill)
bashminutes ingest --all
Preview without writing (recommended first time)
bashminutes 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
log.mdwith a timestamped entry for each ingested meeting - Skips facts that already exist (deduplication) or are below the confidence threshold
- Excludes meetings designated
sensitivity: restrictedfrom automated knowledge-base ingestion
Safety guarantees
engine = "none"(default): Only extracts from parsed YAML frontmatter. No LLM involved, zero hallucination risk.- Confidence thresholds: Facts below
min_confidenceare counted as "skipped" but never written. - 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
--dry-runfirst if the user hasn't used ingest before.
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
action_itemsordecisions. The ingest will correctly extract 0 facts. This is expected, not an error. engine = "agent"requires an AI CLI — If the user wants richer LLM-based extraction from transcript body text, they needclaude,codex,gemini,opencode, orpion PATH.- PARA adapter writes
items.json— If the user's knowledge base uses the PARA format, facts go intoareas/people/{slug}/items.jsonwith atomic fact schema (id, status, supersededBy). - First run should be dry-run — Always suggest
minutes ingest --all --dry-runbefore the first real run so the user can see what would be extracted.

