Skip to content
Back to skills

Memory Curator

ASecurity

Automated memory curation: monitors Obsidian notes/, triggers moves/promotions, handles archiving. Works with Mnemosyne (hot layer), Icarus (operational), and llm-wiki (curated). One component of a five-layer memory stack (Mnemosyne, Fabric, LLM-Wiki, Obsidian, Skills).

  • 36 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 10, 2026
ai-agentsgobash

Works with

  • cli

Security analysis

A100/100

Pro scans all 3 files and shows the line behind each finding

Scanned September 10, 2026

npx -y skills add theheavenlyd3mon/hermes-profiles --skill memory-curator --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Memory Curator?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Memory Curator
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/theheavenlyd3mon-memory-curator/badge)](https://www.skillsdirectory.com/skills/theheavenlyd3mon-memory-curator)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: memory-curator
description: "Automated memory curation: monitors Obsidian notes/, triggers moves/promotions, handles archiving. Works with Mnemosyne (hot layer), Icarus (operational), and llm-wiki (curated). One component of a five-layer memory stack (Mnemosyne, Fabric, LLM-Wiki, Obsidian, Skills)."
version: 1.0.0
author: Senna
platforms: [linux, macos, windows]
metadata:
  hermes:
    tags: [memory, curation, obsidian, automation]
    category: productivity
    related_skills: [llm-wiki, obsidian]
triggers:
  - notes review
  - memory cleanup
  - archive stale
  - promote to wiki
---

IDENTITY: Curator.MemoryHygiene. NotesCheck→PromoteCandidates→ArchiveStale→DeleteUserOnly.
Law: NeverAutoDelete.NeverAutoPromote.AlwaysGetApproval.
WHENUSE: User says curate/cleanup/archive/notes review|Notes≥10 items|Stale≥3 days. ESPECIALLY:PromoteToWiki|ArchiveOld|NotesOverflow. NoSkip:WikilinksBeforeMove|ArchiveFirstDeleteLater|CuratorFatigueTune.
REDFLAGS: AutoDelete->ArchiveFirstApprovalGated|AutoPromote->WikiQualityNeedsReview|BrokenWikilinks->CheckBeforeMove.
RATIONALIZATIONS: FastCleanup->30DayArchiveGrace|PromoteEverything->Only3+WikiLinksOrConceptTag.
QUICKREF: NotesCheck(count+age)➔PromoteCandidates(wikilinks+tags)➔ArchiveCandidates(90+days)➔UserApproval(execute).

# Memory Curator

Automates the memory hygiene workflow: monitors Inbox, triggers promotions to llm-wiki, handles archiving.

## When This Skill Activates

- You ask to review, clean, or audit your memory
- You mention "notes", "archive", "promote", or "curate"
- Session ends and notes/ has 10+ items or 3+ day-old items
- Manual trigger: `curate`, `cleanup`, `archive`

## Configuration

**Obsidian Vault Path:**
```
OBSIDIAN_VAULT_PATH=~/Hermes Vault/Hermes
```

Defaults to your configured vault or prompts if unset.

**Curator Rules:**
| Trigger | Threshold |
|---------|-----------|
| Notes alert | 10+ items |
| Stale alert | 3+ days since modified |
| Archive alert | 90+ days since modified |
| Promote to llm-wiki | Item has 3+ wikilinks OR is tagged `concept` |

## Workflow

```
Session ends / you invoke curator
         ↓
Check notes/ for promotion candidates
         ↓
┌─────────────────────────────────────────┐
│  IF item has 3+ wikilinks              │
│     OR tag: concept                     │
│     OR stable across 2+ sessions        │
│  → Report: "Promote candidates: [...]" │
│  → Ask: "Promote to llm-wiki?"          │
└─────────────────────────────────────────┘
         ↓
Check Fabric for high-value entries
         ↓
┌─────────────────────────────────────────┐
│  IF entry has training_value: high      │
│     AND status: completed               │
│     AND not yet promoted                │
│  → Report: "Fabric candidates: [...]"  │
│  → Ask: "Promote to llm-wiki?"          │
└─────────────────────────────────────────┘
         ↓
Check for archive candidates
         ↓
┌─────────────────────────────────────────┐
│  IF item modified 90+ days ago          │
│  → Report: "Archive candidates: [...]" │
│  → Ask: "Archive these?"                │
│  → YOU decide what gets deleted         │
└─────────────────────────────────────────┘
```

**Note:** The old PARA Inbox (`0-Inbox/`) was removed during the May 2026 consolidation. The vault is now flat: `llm-wiki/`, `icarus/`, `notes/`, `4-Archive/`. Curator scans `notes/` for promotion candidates instead of Inbox.

## Core Operations

### 1. Inbox Check (now notes/ check)

```bash
# Count items in notes/
ls -1 "$OBSIDIAN_VAULT_PATH/notes/" | wc -l

# Find stale items (3+ days old)
find "$OBSIDIAN_VAULT_PATH/notes/" -mtime +3 -type f

# Find archive candidates (90+ days old)
find "$OBSIDIAN_VAULT_PATH/" -path "*/4-Archive/*" -mtime +90 -type f
```

### 2. Promote to llm-wiki

When you approve promotion:
1. Read the source note from Inbox
2. Extract entity/concept from frontmatter
3. Determine if entity page or concept page
4. Create/update the llm-wiki page:
   - Move to `entities/` or `concepts/`
   - Add frontmatter (type, tags, sources)
   - Ensure 2+ wikilinks to existing pages
5. Add to `index.md` under correct section
6. Append to `log.md`
7. Remove from Inbox

### 3. Archive

When you approve archive:
1. Move note to `4-Archive/` with subfolder by year-month
2. Update any pages linking to it → replace `[[wikilink]]` with plain text + "(archived)"
3. Do NOT delete — you decide what's deleted

### 4. Delete (Your Approval Only)

Archive → delete path:
1. Note sits in `4-Archive/` for 30 days
2. After 30 days, you can request "permanent delete"
3. You review each file, confirm deletion
4. Only then does it leave the vault entirely

## Commands

| Command | Action |
|---------|--------|
| `curate inbox` | Check notes/, report stats |
| `curate promote` | Find and propose promote candidates |
| `curate archive` | Find and propose archive candidates |
| `curate full` | Run full curator cycle (inbox + promote + archive) |
| `curate approve <action>` | Approve pending action (move/promote/archive) |

**Division of Labor (Full Stack)**

| Layer | Task | Who Does What |
|-------|------|---------------|
| **Mnemosyne** | Always-injected preferences & env facts | Agent auto-writes; never trained or curated |
| **Fabric (Icarus)** | Session capture, operational logging | All agents + cron write; curator promotes from |
| **LLM-Wiki** | Curated knowledge (curator target) | Agent writes on curation approval |
| **Obsidian** | Second brain (vault) | Agent stores wiki, notes, Fabric entries; human browses/curates |

**Curator-specific:**

| Task | Who Does What |
|------|---------------|
| **Inbox → Wiki** | Curator scans Inbox, proposes candidates |
| **Fabric → Wiki** | fabric-promote-review cron scans fabric (5am), proposes candidates |
| **Review** | Curator presents options, you approve |
| **Archive** | Curator moves, you review for deletion |
| **Delete** | You explicitly approve |

**Note:** A complementary cron job `fabric-promote-review` (daily at 5am) scans fabric entries with `status: completed` and `training_value: high` for wiki promotion candidates. This handles the fabric → wiki pipeline, while the memory curator handles the Inbox → wiki pipeline. Both propose to the user — neither auto-creates pages. The morning briefing aggregates candidates from both sources.

## Pitfalls

- **Obsidian is the second brain, not just a human notebook.** The agent stores the LLM-Wiki, operational notes, and Fabric entries in the vault. Mnemosyne handles hot auto-injected facts; Obsidian holds everything else. Don't treat it as "the user's space that the agent occasionally peeks at" — it's the central knowledge store.
- **LCM ≠ Mnemosyne.** LCM (hermes-lcm plugin) compresses session context within a single conversation. Mnemosyne (`hermes mnemosyne` CLI) consolidates memories across sessions. They are separate systems — don't look for mnemosyne functionality inside LCM tools or vice versa.
- **Don't auto-delete** — archive first, delete only on your explicit command
- **Don't auto-promote** — llm-wiki quality matters; get your approval first
- **Check wikilinks before move** — broken links break the graph
- **Curator fatigue** — if alerts are too frequent, tune thresholds
- **`sleep` timeout on large DBs** — background it with `notify_on_complete` in cron; see [references/mnemosyne-cli.md](references/mnemosyne-cli.md) for pattern

## Related Skills

- [llm-wiki](/skills/llm-wiki) — Karpathy-style compounding knowledge base (lives inside the vault)
- [obsidian](/skills/obsidian) — vault operations (the second brain)
- [fabric-promote-review](/skills/fabric-promote-review) — Full fabric→wiki promotion workflow (scan, cross-check, create, index, log, Notion)
- [references/mnemosyne-cli.md](references/mnemosyne-cli.md) — `hermes mnemosyne` CLI commands, output formats, cron integration

Files in this skill

  • SKILL.md8.3 KB
  • references/memory-stack-architecture.md8 KB
  • references/mnemosyne-cli.md4.8 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.