Extract Entities
Role: entity extractor that mines text for candidates to the KNOWLEDGE area.
Seven entity types
| Type |
Examples |
| People |
Named individuals (with role/affiliation if mentioned) |
| Organizations |
Companies, agencies, NGOs, think tanks |
| Places |
Cities, countries, regions, sites |
| Events |
Specific events with date/location |
| Concepts |
Theories, frameworks, technical terms |
| Sources |
Books, articles, papers, reports cited |
| Research |
Studies, methods, findings referenced |
Workflow
1. Read target
Default: most recent text artefact (chronicle, memo, report, transcript).
Or: explicit file specified by user.
2. Extract candidates per type
Scan for proper nouns, defined terms, citations. Classify each into one of the seven types.
3. Filter
- Remove trivial mentions (one-time, no context)
- Remove already-known entities (search KNOWLEDGE area)
- Keep entities with at least one specific attribute (role, affiliation, date)
4. Present
List candidates per type:
## Extract Entities — for "{filename}"
### People (N)
- {Name} — {role/affiliation}, mentioned in §X
### Organizations (N)
- {Name} — {type}, role in text
### Places (N)
- {Name} — {context}
### Events (N)
- {Name} — {date/location}
### Concepts (N)
- {Term} — {brief def from text}
### Sources (N)
- {Author, year, title} — cited as evidence
### Research (N)
- {Study/method} — referenced
5. Per-row decision
For each candidate the user picks:
- Create KNOWLEDGE node — generates
~/.claude/memory/KNOWLEDGE/{type}/{slug}.md
- Archive to vault — uses the archive-to-vault skill directly
- Skip — not worth saving
- Save in _inbox — temporary save, decide later
6. KNOWLEDGE node format
---
type: {People|Organizations|Places|Events|Concepts|Sources|Research}
slug: {kebab-case}
canonical_name: {Display name}
created: {YYYY-MM-DD}
source: {file path of target}
vault_link:
status: new
---
# {Display name}
## Thesis
{One-sentence claim or definition}
## Background
{Context from the source text}
## Key facts
- {Fact 1}
- {Fact 2}
## Evidence
- {Direct quote or paraphrase from source}
## Notes
{Open notes, hypotheses, follow-ups}
Integration
- archive-to-vault — when the user wants the entity in their Obsidian vault
- atomize-zettel — when the entity is a concept worth a Card in the vault
- person-osint / financial-osint — when a Person/Organization needs deeper investigation
Anti-patterns
- Extracting every name (overload)
- Creating KNOWLEDGE nodes without specific attributes
- Duplicating entities already in KNOWLEDGE
- Skipping the user choice step (always interactive)
🎯 COMPLETED: [SKILL:extract-entities] [entities extracted from X]
🗣️ CUSTOM COMPLETED: [SKILL:extract-entities] [Entities extracted]
1---2name: extract-entities3description: Umbrella skill for reading a text artefact (chronicle, memo, report, transcript) and extracting candidates to the Ogmios KNOWLEDGE area in one operation. Classifies into 7 entity types: People, Organizations, Places, Events, Concepts, Sources, Research. The user chooses per candidate: create KNOWLEDGE node / archive to vault / skip / save in _inbox. [WHAT] Complement to atomize-zettel (Cards/Zettelkasten in vault). Atomize works against vault Cards/, extract-entities works against the Ogmios KNOWLEDGE area. [WHEN] Use when: extract entities, identify people/organizations/places, who is mentioned in this text, mining from text to KNOWLEDGE. [LANGUAGE] Configurable. [EXPERTISE] Entity extraction, NER classification, KNOWLEDGE-area routing.4---56# Extract Entities78**Role:** entity extractor that mines text for candidates to the KNOWLEDGE area.910## Seven entity types1112| Type | Examples |13|------|----------|14| **People** | Named individuals (with role/affiliation if mentioned) |15| **Organizations** | Companies, agencies, NGOs, think tanks |16| **Places** | Cities, countries, regions, sites |17| **Events** | Specific events with date/location |18| **Concepts** | Theories, frameworks, technical terms |19| **Sources** | Books, articles, papers, reports cited |20| **Research** | Studies, methods, findings referenced |2122## Workflow2324### 1. Read target25Default: most recent text artefact (chronicle, memo, report, transcript).26Or: explicit file specified by user.2728### 2. Extract candidates per type29Scan for proper nouns, defined terms, citations. Classify each into one of the seven types.3031### 3. Filter32- Remove trivial mentions (one-time, no context)33- Remove already-known entities (search KNOWLEDGE area)34- Keep entities with at least one specific attribute (role, affiliation, date)3536### 4. Present37List candidates per type:3839```40## Extract Entities — for "{filename}"4142### People (N)43- {Name} — {role/affiliation}, mentioned in §X4445### Organizations (N)46- {Name} — {type}, role in text4748### Places (N)49- {Name} — {context}5051### Events (N)52- {Name} — {date/location}5354### Concepts (N)55- {Term} — {brief def from text}5657### Sources (N)58- {Author, year, title} — cited as evidence5960### Research (N)61- {Study/method} — referenced62```6364### 5. Per-row decision65For each candidate the user picks:66- **Create KNOWLEDGE node** — generates `~/.claude/memory/KNOWLEDGE/{type}/{slug}.md`67- **Archive to vault** — uses the archive-to-vault skill directly68- **Skip** — not worth saving69- **Save in _inbox** — temporary save, decide later7071### 6. KNOWLEDGE node format7273```yaml74---75type: {People|Organizations|Places|Events|Concepts|Sources|Research}76slug: {kebab-case}77canonical_name: {Display name}78created: {YYYY-MM-DD}79source: {file path of target}80vault_link:81status: new82---8384# {Display name}8586## Thesis87{One-sentence claim or definition}8889## Background90{Context from the source text}9192## Key facts93- {Fact 1}94- {Fact 2}9596## Evidence97- {Direct quote or paraphrase from source}9899## Notes100{Open notes, hypotheses, follow-ups}101```102103## Integration104105- **archive-to-vault** — when the user wants the entity in their Obsidian vault106- **atomize-zettel** — when the entity is a concept worth a Card in the vault107- **person-osint / financial-osint** — when a Person/Organization needs deeper investigation108109## Anti-patterns110111- Extracting every name (overload)112- Creating KNOWLEDGE nodes without specific attributes113- Duplicating entities already in KNOWLEDGE114- Skipping the user choice step (always interactive)115116---117118🎯 COMPLETED: [SKILL:extract-entities] [entities extracted from X]119🗣️ CUSTOM COMPLETED: [SKILL:extract-entities] [Entities extracted]