From self-improving-agent
Saves key project knowledge explicitly to MEMORY.md via /si:remember for reliable recall. Checks duplicates, warns on size, suggests CLAUDE.md promotion.
npx claudepluginhub arogyareddy/alirezarezvani-claude-skills --plugin self-improving-agentThis skill uses the workspace's default tool permissions.
Writes an explicit entry to auto-memory when something is important enough that you don't want to rely on Claude noticing it automatically.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Migrates code, prompts, and API calls from Claude Sonnet 4.0/4.5 or Opus 4.1 to Opus 4.5, updating model strings on Anthropic, AWS, GCP, Azure platforms.
Performs token-optimized structural code search using tree-sitter AST parsing to discover symbols, outline files, and unfold code without reading full files.
Writes an explicit entry to auto-memory when something is important enough that you don't want to rely on Claude noticing it automatically.
/si:remember <what to remember>
/si:remember "This project's CI requires Node 20 LTS — v22 breaks the build"
/si:remember "The /api/auth endpoint uses a custom JWT library, not passport"
/si:remember "Reza prefers explicit error handling over try-catch-all patterns"
| Situation | Example |
|---|---|
| Hard-won debugging insight | "CORS errors on /api/upload are caused by the CDN, not the backend" |
| Project convention not in CLAUDE.md | "We use barrel exports in src/components/" |
| Tool-specific gotcha | "Jest needs --forceExit flag or it hangs on DB tests" |
| Architecture decision | "We chose Drizzle over Prisma for type-safe SQL" |
| Preference you want Claude to learn | "Don't add comments explaining obvious code" |
Extract from the user's input:
MEMORY_DIR="$HOME/.claude/projects/$(pwd | sed 's|/|%2F|g; s|%2F|/|; s|^/||')/memory"
grep -ni "<keywords>" "$MEMORY_DIR/MEMORY.md" 2>/dev/null
If a similar entry exists:
Append to the end of MEMORY.md:
- {{concise fact or pattern}}
Keep entries concise — one line when possible. Auto-memory entries don't need timestamps, IDs, or metadata. They're notes, not database records.
If MEMORY.md is over 180 lines, warn the user:
⚠️ MEMORY.md is at {{n}}/200 lines. Consider running /si:review to free space.
If the knowledge sounds like a rule (imperative, always/never, convention):
💡 This sounds like it could be a CLAUDE.md rule rather than a memory entry.
Rules are enforced with higher priority. Want to /si:promote it instead?
✅ Saved to auto-memory
"{{entry}}"
MEMORY.md: {{n}}/200 lines
Claude will see this at the start of every session in this project.
/si:promote to write directly to CLAUDE.md~/.claude/CLAUDE.md for global rulespnpm build, tests with pnpm test:e2e"