# Extract Entities

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

- Skill: `carlheath/extract-entities` (Agent Skill)
- Install (CLI): `npx skillmds@latest add carlheath/extract-entities`
- Raw SKILL.md: https://api.skillmd.com/api/skills/carlheath/extract-entities/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: carlheath (https://skillmd.com/u/carlheath)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/carlheath/extract-entities

---


# 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

```yaml
---
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]

