---
name: memory-record
description: Use when the user learns something worth remembering, makes a decision, discovers a preference, or uncovers a pattern. Auto-triggers to save to .claude/memory/ in the right file.
version: 0.1.0
---

# Memory Record Skill

When the user shares a fact, decision, preference, pattern, or learned lesson, save it to the structured memory system immediately.

## Activation Triggers

Trigger when:

- User says "remember to...", "I prefer...", "learned that...", "note that..."
- User mentions a decision or approach that worked well
- User discovers a pattern, workaround, or gotcha
- Context suggests something non-obvious or hard-won knowledge
- User explicitly asks you to remember something

## File Selection

Route to correct memory file:

1. **memory.md** (index only)
   - Do NOT add content here—this is auto-managed
2. **general.md** — Cross-project facts, preferences, environment
   - User workflow preferences ("I prefer terse responses")
   - Global tool setup ("RTK installed at X")
   - Cross-project patterns ("always verify before destructive ops")
3. **domain/{topic}.md** — Domain-specific knowledge
   - React patterns, database design, testing strategies
   - File path: `domain/{topic}.md` where topic is 1-2 words (kebab-case)
   - Examples: `domain/authentication.md`, `domain/api-design.md`
4. **tools/{tool}.md** — Tool configs, CLI patterns, workarounds
   - Git workflows, CLI tricks, editor config
   - Examples: `tools/git.md`, `tools/bash.md`, `tools/postgres.md`

## Entry Format

Each entry has exactly 3 lines:

```
**[YYYY-MM-DD]** what you learned — why it matters
```

Example:

```
**[2026-05-01]** Always run tests before pushing to main — saved us from catching broken merges in CI
**[2026-05-01]** RTK proxy rewrites git commands transparently — saves 60-90% tokens on dev operations
```

Rules:

- Date in `[YYYY-MM-DD]` format
- "What" is 1 sentence (what you learned/decided/prefer)
- "Why" is optional but encouraged (helps future-you decide if still relevant)
- No markdown formatting except the date brackets
- One entry per line

## Steps

1. **Evaluate**: Is this worth remembering? (It should be non-obvious or hard-won)
2. **Categorize**: Pick the right file (general/domain/tools)
3. **Create if needed**: If file doesn't exist, create it with empty frontmatter and entries
4. **Append entry**: Add new entry to the file with date, fact, and why
5. **Update memory.md**: Add/update one-line index entry for the file
6. **Confirm to user**: Show what was saved and where

## memory.md Index Format

Maintain one-line entries per file:

```markdown
- [general.md](general.md) — cross-project preferences and global setup
- [domain/authentication.md](domain/authentication.md) — user auth patterns, JWT vs session tradeoffs
- [tools/git.md](tools/git.md) — git workflows, cherry-pick patterns, merge strategies
```

Update whenever you modify a memory file. Keep sorted: general first, then domains (alphabetical), then tools (alphabetical).

## Example Workflow

**User says**: "I prefer terse responses with no trailing summaries"

**Skill executes**:

1. Categorize → general.md (cross-project preference)
2. Create/open general.md
3. Append: `**[2026-05-01]** Prefer terse responses, no trailing summaries — saves tokens and respects user flow`
4. Update memory.md index
5. Confirm: "Saved to general.md: terse response preference"

**User says**: "React components re-render when object refs change inline"

**Skill executes**:

1. Categorize → domain/react.md (domain-specific)
2. Create/open domain/react.md if not exist
3. Append: `**[2026-05-01]** Inline object props create new ref each render = re-render — wrap in useMemo or move outside component`
4. Update memory.md index
5. Confirm: "Saved to domain/react.md: inline object re-render gotcha"

