Foundations

Teach It Once

Skills, memory, and the end of repeating yourself.

The problem

You correct Claude. It uses the wrong format, forgets your preference, takes the wrong approach. You fix it. Next session? Same mistake. The loop never ends because every conversation starts from zero.

There are three ways to break this loop, and they work together.

Skills: teach Claude your workflows

Skills are instruction files that teach Claude how to do specific tasks. Instead of explaining your process every time, you write it once and invoke it with a slash command.

Think of them like recipes. “When I say /weekly-review, here’s exactly what I want you to do.”

Two kinds of skills

Encoded preferences automate a workflow you already have. The weekly review below is one - you know exactly what you want, you’re just tired of explaining it every time.

Capability uplift teaches Claude something it doesn’t know yet. A skill that knows your company’s API conventions, or one that enforces a specific code review checklist. These add knowledge Claude wouldn’t have on its own.

The distinction matters because capability uplift skills can go stale. Models improve. Something you had to teach Claude six months ago might now be built in. Worth checking occasionally whether a skill is still earning its keep or just adding noise.

A simple example

# Weekly Review

Help me review my week and plan the next one.

## Instructions

1. Ask what went well this week
2. Ask what didn't go as planned
3. Ask what's most important for next week
4. Summarize into a simple plan with 3 priorities
5. Save to my Notes folder as "Week of [date].md"

## Notes

- Keep the tone encouraging, not critical
- Focus on what I can control

Save this as ~/.claude/skills/weekly-review/SKILL.md and /weekly-review just works. Skills show up in the slash menu, but they can also trigger automatically - if the skill’s description matches what you’re asking, Claude picks it up without you typing the command.

Where skills live

  • ~/.claude/skills/<name>/SKILL.md - Personal skills, available everywhere
  • .claude/skills/<name>/SKILL.md - Project-specific skills

From simple to sophisticated

Skills scale. The weekly review above is a starting point. A more involved example - this one launches parallel research agents:

# Deep Research

Multi-perspective research on any topic.

## Instructions

1. Launch three research agents in parallel:

   - **Technical**: Implementation details, how it works, architecture
   - **Strategic**: Market context, adoption, business implications
   - **Critical**: Limitations, risks, failure modes, counterarguments

2. Wait for all three to complete

3. Synthesize findings into a coherent report:
   - Key findings from each perspective
   - Areas of agreement and disagreement
   - Recommendations based on the full picture

## When to trigger

- User says "research [topic]" or "deep dive on [topic]"
- User asks for "due diligence" or "evaluate [thing]"

And here’s a meta-skill - one that creates other skills:

# Skill Learner

Research a topic and create a skill from the findings.

## Instructions

1. Take the topic the user provides
2. Research it thoroughly:

   - Core concepts and terminology
   - Best practices and common patterns
   - Common mistakes and pitfalls
   - Quick reference information

3. Generate a complete skill file with:

   - Clear instructions Claude can follow
   - Examples of good and bad approaches
   - Quick reference section for common tasks

4. Save to ~/.claude/skills/[topic-name]/SKILL.md

## Example usage

User: /skill-learner "Tailwind CSS v4"

Result: A complete skill that knows Tailwind v4 patterns,
the new CSS-first configuration, and common gotchas.

Goes from dead simple to genuinely complex.

Skill frontmatter

Skills support YAML frontmatter that controls how they behave:

---
name: my-skill
description: What this does (shown in / menu and used for auto-triggering)
allowed-tools: Read, Grep, Glob, WebSearch
model: claude-sonnet-4-6
context: fork
---

The interesting ones:

  • allowed-tools - Restrict what the skill can do. A research skill doesn’t need file editing.
  • model - Use a cheaper model for simple tasks, the best model for complex ones.
  • context: fork - Run as a sub-agent, keeping the main conversation clean. Essential for skills that produce a lot of output.

Built-in skills

Claude Code now ships with a few built-in skills:

  • /simplify - Reviews your code changes for quality and efficiency
  • /batch - Apply the same instruction across many files in parallel

You don’t need to install these - they’re just there.

Skills vs CLAUDE.md

CLAUDE.md is passive context - things Claude should always know. Skills are active - things Claude should do when asked.

Auto-memory

In early 2026, Claude Code added built-in memory. It automatically saves things it learns during sessions - your preferences, patterns, decisions - to a file it reads next time.

You’ll see “Writing memory” or “Recalled memory” in the UI when it happens. The storage is at ~/.claude/projects/.../memory/MEMORY.md.

You don’t need to configure anything. It just works.

What it’s good at

  • Remembering preferences you’ve stated (“always use bun”, “I prefer shorter emails”)
  • Accumulating project knowledge across sessions
  • Reducing the “day one” feeling in ongoing projects

What it’s not

  • Not perfect - It sometimes saves things that are wrong or too specific
  • Not a substitute for CLAUDE.md - Auto-memory is machine-written and limited to 200 lines loaded at startup. CLAUDE.md is human-written and fully loaded.
  • Not searchable - It’s a flat file, not a database

Auto-memory is machine-written notes. CLAUDE.md is the source of truth you maintain yourself.

Curating it

Check what Claude has remembered with /memory. Delete things that are wrong. Add things it missed. Treat it like a garden, not a database.

The reflect pattern

Auto-memory is passive - Claude decides what to save. You can also make it active. I have a custom skill called /reflect that does this - after a session where I made corrections, it analyzes the conversation and proposes updates:

Signals detected:
- HIGH: User said "always keep emails under 150 words" → Add to Email preferences
- MEDIUM: The bullet-point format worked well → Note in formatting section
- LOW: User seemed to prefer morning meetings → Queue for review

Proposed update to email-writing.md:
+ - User prefers shorter emails (under 150 words)

Apply these changes? [y/n]

High-confidence corrections get saved to skill files or CLAUDE.md. Low-confidence ones get queued for review.

Important caveats:

  • Review before saving - Auto-learned patterns can be wrong
  • Context matters - A preference in one situation may not apply everywhere
  • False positives - Not every correction is a permanent preference
  • Keep it pruned - Periodically review and clean up learned preferences

You could build something similar - a skill that reads the conversation, extracts corrections, and proposes updates to your CLAUDE.md or skill files. Manual review before saving is safer than trusting fully automatic updates.

Conversation search: finding what you discussed

Auto-memory handles preferences and patterns. But sometimes you need to find a specific past conversation - “how did we handle that edge case?” or “what approach did we decide on?”

Claude Memory is a tool I built for this. It indexes your past conversations and lets you search them semantically.

claude-memory search "how we handled authentication"

Returns relevant conversation snippets with context. It’s useful for ongoing projects where decisions accumulate over time.

Memory search in CLAUDE.md

Add it to your CLAUDE.md so Claude uses it automatically:

## Claude Memory

Search past conversations: `claude-memory search "query"`

Use when:
- I ask "what did we discuss about X?"
- Before making decisions that might have prior context
- When I reference past work

Now Claude checks your history when it might help, without you asking.

The layers

These three mechanisms stack:

LayerWhat it doesHow it works
CLAUDE.mdPermanent contextYou write it, Claude reads it every session
Auto-MemoryLearned patternsClaude writes it, loads automatically
SkillsActive workflowsYou write them, Claude runs them on command
Conversation searchPast discussionsYou search (or Claude searches) when needed

Start with CLAUDE.md. Add skills when you find yourself repeating instructions. Let auto-memory do its thing in the background. Add conversation search if you do ongoing work where past decisions matter.

You get the idea.


Official Documentation

  • Skills - Creating custom slash commands and reusable workflows
  • Memory - How Claude Code handles persistent memory