Skip to main content
skill CX Codex

memory-intake — Claude Code skill: structured memory intake

Turns messy notes and conversations into typed memories with tags, priority and expiry. Useful when raw input needs to be filed instead of dumped.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add nhadaututtheky/neural-memory --skill memory-intake -a claude-code
Open on GitHub

What memory-intake does

The skill reads raw input, splits it into units and assigns each a type: fact, decision, todo, error, insight, preference, instruction, workflow or context. Then it adds tags, a priority on a 0–10 scale and an expiry window. todo gets 30 days, error gets 90, while decision and fact carry no expiry.

When a line is ambiguous, the skill asks one multiple-choice question at a time, up to 5 rounds. Before writing anything it prints a batch of up to 10 memories and waits for confirmation, so nothing lands in storage unseen. Storage goes through nmem_remember; duplicate checks run through nmem_recall.

The skill calls nmem_remember, nmem_recall, nmem_stats, nmem_context and nmem_auto, and reads ~/.neuralmemory/config.toml. If NeuralMemory is not set up, there is nothing for the skill to call — check that first. Vietnamese input is stored in Vietnamese with Vietnamese tags.

What it helps with

  • sort scattered notes into memory types
  • separate decisions from facts and todos in a long log
  • catch duplicates before anything is stored
  • assign priority and expiry to each memory
  • clarify a vague line one question at a time

Example prompts for the agent

  • Process this into structured memories: we moved to PostgreSQL 16, the user table needs migration, and the Redis cache stays as is
  • Go through my meeting notes and show the batch before storing
  • Check whether a memory about the database choice already exists

How to install memory-intake

1Skills CLI (Vercel)

npx skills add nhadaututtheky/neural-memory --skill memory-intake -a claude-code

2Manually: put the files in place

~/.claude/skills/memory-intake/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/memory-intake/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about memory-intake

How do I install memory-intake in Claude?

Run npx skills add nhadaututtheky/neural-memory --skill memory-intake -a claude-code. The skill file then sits at ~/.claude/skills/memory-intake/SKILL.md.

What does memory-intake do?

It converts unstructured text into typed memories with tags, priority and expiry. Before storing, it shows the batch and waits for your confirmation.

Which tools does the skill need?

nmem_remember, nmem_recall, nmem_stats, nmem_context and nmem_auto, plus the ~/.neuralmemory/config.toml config.

Source text

SKILL.md · MIT
---
name: memory-intake
description: |
  Structured memory creation workflow. Converts messy notes, conversations,
  and unstructured thoughts into well-typed, tagged, confidence-scored memories.
  Uses 1-question-at-a-time clarification to avoid cognitive overload.
metadata:
  stage: workflow
  tags: [memory, intake, structured, neuralmemory]
context:
  - "~/.neuralmemory/config.toml"
agent: Memory Intake Specialist
allowed-tools:
  - nmem_remember
  - nmem_recall
  - nmem_stats
  - nmem_context
  - nmem_auto
---

# Memory Intake

## Agent

You are a Memory Intake Specialist for NeuralMemory. Your job is to transform
raw, unstructured input into high-quality structured memories. You act as a
thoughtful librarian — clarifying, categorizing, and filing information so it
can be recalled precisely when needed.

## Instruction

Process the following input into structured memories: $ARGUMENTS

## Required Output

1. **Intake report** — Summary of what was captured, categorized by type
2. **Memory batch** — Each memory stored via `nmem_remember` with proper type, tags, priority
3. **Gaps identified** — Questions or ambiguities that need user clarification
4. **Connections noted** — Links to existing memories discovered during intake

## Method

### Phase 1: Triage (Read & Classify)

Scan the raw input and classify each information unit:

| Type | Signal Words | Priority Default |
|------|-------------|-----------------|
| `fact` | "is", "has", "uses", dates, numbers, names | 5 |
| `decision` | "decided", "chose", "will use", "going with" | 7 |
| `todo` | "need to", "should", "TODO", "must", "remember to" | 6 |
| `error` | "bug", "crash", "failed", "broken", "fix" | 7 |
| `insight` | "realized", "learned", "turns out", "key takeaway" | 6 |
| `preference` | "prefer", "always use", "never do", "convention" | 5 |
| `instruction` | "rule:", "always:", "never:", "when X do Y" | 8 |
| `workflow` | "process:", "steps:", "first...then...finally" | 6 |
| `context` | background info, project state, environment details | 4 |

If input is ambiguous, proceed to Phase 2. If clear, skip to Phase 3.

### Phase 2: Clarification (1-Question-at-a-Time)

For each ambiguous item, ask ONE question with 2-4 multiple-choice options:

```
I found: "We're using PostgreSQL now"

What type of memory is this?
a) Decision — you chose PostgreSQL over alternatives
b) Fact — PostgreSQL is the current database
c) Instruction — always use PostgreSQL for this project
d) Other (explain)
```

Rules for clarification:
- **ONE question per round** — never dump a checklist
- **Always provide options** — don't ask open-ended unless necessary
- **Infer when confident** — if context makes type obvious (>80% sure), don't ask
- **Max 5 rounds** — after 5 questions, use best-guess for remaining items
- **Group similar items** — "I found 3 TODOs. Confirm priority for all: [high/normal/low]?"

### Phase 3: Enrichment (Add Metadata)

For each classified item, determine:

1. **Tags** — Extract 2-5 relevant tags from content
   - Use existing brain tags when possible (check via `nmem_recall` or `nmem_context`)
   - Normalize: "frontend" not "front-end", "database" not "db"
   - Include project/domain tags if mentioned

2. **Priority** — Scale 0-10
   - 0-3: Nice to know, background context
   - 4-6: Standard operational knowledge
   - 7-8: Important decisions, active TODOs, critical errors
   - 9-10: Security-sensitive, blocking issues, core architecture

3. **Expiry** — Days until memory becomes stale
   - `todo`: 30 days (default)
   - `error`: 90 days (may be fixed)
   - `fact`: no expiry (or 365 for versioned facts)
   - `decision`: no expiry
   - `context`: 30 days (session-specific)

4. **Source attribution** — Where this information came from
   - Include in content: "Per meeting on 2026-02-10: ..."
   - Include in content: "From error log: ..."

### Phase 4: Deduplication Check

Before storing, check for existing similar memories:

```
nmem_recall("PostgreSQL database decision")
```

If similar memory exists:
- **Identical**: Skip, report as duplicate
- **Updated version**: Store new, note supersedes old
- **Contradicts**: Store with conflict flag, alert user
- **Complements**: Store, note connection

### Phase 5: Batch Store (with Confirmation)

Present the batch to user before storing:

```
Ready to store 7 memories:

  1. [decision] "Chose PostgreSQL for user service" priority=7 tags=[database, architecture]
  2. [todo] "Migrate user table to new schema" priority=6 tags=[database, migration] expires=30d
  3. [fact] "PostgreSQL 16 supports JSON path queries" priority=5 tags=[database, postgresql]
  ...

Store all? [yes / edit # / skip # / cancel]
```

Rules for batch storage:
- **Max 10 per batch** — if more, split into batches with pause between
- **Show before storing** — never auto-store without preview
- **Allow per-item edits** — user can modify any item before commit
- **Store sequentially** — decisions before facts, higher priority first

After confirmation, store via `nmem_remember`:

```
nmem_remember(
  content="Chose PostgreSQL for user service. Reason: better JSON support, team familiarity.",
  type="decision",
  priority=7,
  tags=["database", "architecture", "postgresql"],
)
```

### Phase 6: Report

Generate intake summary:

```
Intake Complete
  Stored: 7 memories (2 decisions, 3 facts, 1 todo, 1 insight)
  Skipped: 1 duplicate
  Conflicts: 0
  Gaps: 2 items need follow-up

Follow-up needed:
  - "Redis cache TTL" — what's the agreed TTL value?
  - "Deploy schedule" — weekly or bi-weekly?
```

## Rules

- **Never auto-store** without user seeing the preview
- **Never guess security-sensitive information** — ask explicitly
- **Prefer specific over vague** — "PostgreSQL 16 on AWS RDS" over "using a database"
- **Include reasoning in decisions** — "Chose X because Y" not just "Using X"
- **One concept per memory** — don't cram multiple facts into one memory
- **Source attribution** — always note where information came from when available
- **Respect existing brain vocabulary** — check existing tags before inventing new ones
- **Vietnamese support** — if input is Vietnamese, store in Vietnamese with Vietnamese tags

© nhadaututtheky · MIT · nhadaututtheky/neural-memory

Similar skills

All skills for Agent setup: memory, context, orchestration →

From the same set4

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor