memory-ingest

SKILL.md

Memory Ingest

Turn raw, unstructured input into structured Basic Memory entities. Meeting transcripts, conversation logs, pasted documents, email threads — anything with information worth preserving gets parsed, cross-referenced against existing knowledge, and written as proper notes.

When to Use

  • User pastes a meeting transcript or conversation log
  • User says "process these notes" or "add this to Basic Memory"
  • User pastes a document, article, or email for knowledge extraction
  • Any time raw external text needs to become structured knowledge

Workflow Overview

1. Parse raw input           → identify structure, extract key info
2. Extract entities          → people, orgs, topics, action items
3. Search existing entities  → multi-variation queries
4. Research new entities     → optional web research (see memory-research)
5. Present entity proposal   → get approval before creating
6. Create source note        → verbatim content + observations + relations
7. Create approved entities  → structured notes for each new entity
8. Extract action items      → follow-ups and commitments

Step 1: Parse Raw Input

Read the pasted content and identify its structure:

  • Format: Meeting transcript, email thread, conversation log, article, freeform notes
  • Date: When this happened (extract from content or ask)
  • Participants: Who was involved (names, roles, organizations)
  • Sections: Any existing structure (headings, speaker labels, timestamps)

Don't rewrite or summarize the source content. Preserve it verbatim in the note — you'll add structured observations alongside it.

Step 2: Extract Entities

Scan the content for entities worth tracking in the knowledge graph:

Entity Type Signals
Person Names with roles, titles, or affiliations mentioned
Organization Company names, agencies, institutions
Topic/Concept Technical domains, methodologies, standards discussed substantively
Action Item Commitments, deadlines, "I'll do X by Y" statements

Infer type from context. If someone is introduced as "CTO of Acme Corp", that's both a Person and an Organization entity. If a technology is discussed in depth, it might warrant a Concept entity.

Exclude noise. Not every name mentioned is worth an entity. Filter for:

  • People with substantive roles or interactions (not passing mentions)
  • Organizations discussed in business/technical context
  • Topics with enough detail to warrant their own note

Step 3: Search Existing Entities

For each extracted entity, search Basic Memory with multiple query variations:

# Person — try full name, last name
search_notes(query="Sarah Chen")
search_notes(query="Chen")

# Organization — try full name, abbreviation, acronym
search_notes(query="National Renewable Energy Laboratory")
search_notes(query="NREL")

# Topic — try the full term and keywords
search_notes(query="edge computing")
search_notes(query="edge inference")

Classify each entity as:

  • Existing — found in Basic Memory. Will link to it with [[wiki-link]].
  • Proposed — not found. Will propose creation pending approval.

Step 4: Research New Entities (Optional)

For proposed entities where more context would be valuable, do a brief web search (2-3 queries max per entity):

  • Organizations: What they do, size, public/private, key products
  • People: Current role, background, expertise
  • Topics: Brief definition, relevance

Use hedging language ("appears to be", "estimated", "based on public information"). Never fabricate details.

This step is optional — skip it if the source material provides enough context, or if the user is in a hurry. See the memory-research skill for deeper research workflows.

Step 5: Present Entity Proposal

Before creating anything, present what you found and what you'd like to create:

Entities found in Basic Memory:
  - [[Sarah Chen]] (Person — existing)
  - [[Acme Corp]] (Organization — existing)

Proposed new entities:
  - Jordan Rivera (Person — VP Engineering at NovaTech, mentioned as project lead)
  - NovaTech (Organization — SaaS platform, Series B, discussed as integration partner)
  - Federated Learning (Concept — core technical topic of the discussion)

Approve all / select individually / skip entity creation?

Include enough context with each proposed entity for the user to make a quick decision.

Step 6: Create the Source Note

Create the primary note for the ingested content. This is the "record of what happened" — it preserves the raw material and adds structured metadata.

Meeting / Conversation Note

write_note(
  title="NovaTech Meeting - Jordan Rivera - Feb 22, 2026",
  directory="meetings/2026",
  note_type="meeting",
  tags=["meeting", "novatech", "federated-learning"],
  metadata={"date": "2026-02-22"},
  content="""
# NovaTech Meeting - Jordan Rivera - Feb 22, 2026

Brief one-sentence summary of what this meeting was about.

## Transcript
[Preserve all source content verbatim — do not summarize or rewrite]

## Observations
- [opportunity] NovaTech interested in integration partnership
- [insight] Their platform handles 10K concurrent sessions, relevant to our scale needs
- [next_step] Send technical spec document by Friday
- [sentiment] Strong enthusiasm from their engineering team
- [decision] Agreed to start with a proof-of-concept integration

## Relations
- attended [[Jordan Rivera]]
- with [[NovaTech]]
- discussed [[Federated Learning]]
- follow_up [[Send NovaTech Technical Spec]]
"""
)

Document / Article Note

write_note(
  title="Edge Computing Architecture Whitepaper",
  directory="references",
  note_type="reference",
  tags=["edge-computing", "architecture", "reference"],
  metadata={"source": "https://example.com/whitepaper.pdf", "date_ingested": "2026-02-22"},
  content="""
# Edge Computing Architecture Whitepaper

## Source Content
[Preserve relevant content — for long documents, include key sections rather than the entire text]

## Observations
- [key_finding] Latency drops 40% with edge inference vs cloud-only
- [technique] Model sharding across heterogeneous edge nodes
- [limitation] Requires minimum 8GB RAM per edge node

## Relations
- relates_to [[Edge Computing]]
- relates_to [[Model Optimization]]
"""
)

Observation Categories

Use categories that capture the nature of the information. Common categories for ingested content:

Category Use For
opportunity Business or collaboration opportunities identified
decision Decisions made or agreed upon
insight Non-obvious understanding gained
next_step Concrete action items or follow-ups
sentiment Enthusiasm, concerns, hesitations expressed
risk Risks or concerns identified
requirement Requirements or constraints discovered
key_finding Important facts from reference material
technique Methods, approaches, or patterns described
context Background information that may be useful later

Invent categories as needed — these are suggestions, not a fixed list.

Step 7: Create Approved Entities

For each entity the user approved, create a structured note. Match the entity type to an appropriate template.

Person

write_note(
  title="Jordan Rivera",
  directory="people",
  note_type="person",
  tags=["person", "novatech", "engineering"],
  content="""
# Jordan Rivera

## Overview
VP of Engineering at NovaTech. Met during integration partnership discussion.

## Background
[Role, expertise, context from meeting + any web research]

## Observations
- [role] VP Engineering at NovaTech
- [expertise] Distributed systems, federated learning
- [met] 2026-02-22 during integration discussion

## Relations
- works_at [[NovaTech]]
- discussed_in [[NovaTech Meeting - Jordan Rivera - Feb 22, 2026]]
"""
)

Organization

write_note(
  title="NovaTech",
  directory="organizations",
  note_type="organization",
  tags=["organization", "saas", "integration-partner"],
  content="""
# NovaTech

## Overview
SaaS platform company. Series B stage.
[Additional context from meeting + web research]

## Products & Services
[What they offer, if discussed or researched]

## Observations
- [stage] Series B, ~200 employees
- [relevance] Potential integration partner for our platform
- [first_contact] 2026-02-22

## Relations
- employs [[Jordan Rivera]]
- discussed_in [[NovaTech Meeting - Jordan Rivera - Feb 22, 2026]]
"""
)

Concept / Topic

write_note(
  title="Federated Learning",
  directory="concepts",
  note_type="concept",
  tags=["concept", "machine-learning", "distributed-systems"],
  content="""
# Federated Learning

## Overview
[Brief description of the concept from the discussion context]

## Observations
- [definition] Machine learning approach where models train across decentralized data sources
- [relevance] Core technique discussed in NovaTech integration

## Relations
- discussed_in [[NovaTech Meeting - Jordan Rivera - Feb 22, 2026]]
"""
)

Adapt templates to your domain. The key elements are: type and tags as parameters, an overview section, observations with categories, and relations linking back to the source.

Step 8: Extract Action Items

Review the source content for commitments and follow-ups:

Action Items:
  - Send NovaTech technical spec document by Friday (your commitment)
  - Jordan will share their API documentation by next week (their commitment)

Follow-Up Reminders:
  - 1 week: Check if Jordan sent API docs
  - 2 weeks: Schedule follow-up call to discuss POC scope

If using the memory-tasks skill, create Task notes for your action items. Otherwise, capture them as observations in the source note.

Guidelines

  • Preserve source content verbatim. The original text is the ground truth. Structure and observations are your interpretation layered on top.
  • Search before creating. Always check if entities already exist (see memory-notes search-before-create pattern). Update existing entities with new information rather than creating duplicates.
  • Get approval for new entities. Present proposed entities and let the user decide which to create. Don't silently populate the knowledge graph.
  • Infer, don't interrogate. Extract entity types and relationships from context. Only ask the user when genuinely ambiguous.
  • Be selective about entities. Not every name mentioned deserves its own note. Focus on entities the user will want to reference again.
  • Use hedging for researched info. Web research supplements — don't present it as fact. "Appears to be", "estimated", "based on public information".
  • Link everything back. Every created entity should relate back to the source note. The source note should link to all entities discussed.
  • Prose and observations together. Notes work best with both narrative context and structured observations. Prose gives meaning and tells the story; observations make individual facts searchable. Use the body for context, then distill key facts into categorized observations.
Weekly Installs
47
GitHub Stars
8
First Seen
Feb 23, 2026
Installed on
codex42
cursor41
kimi-cli40
gemini-cli40
github-copilot40
opencode40