Skip to content
Development
Skill

/memory-loop

Update project memory after completing a task, making a key decision, discovering a gotcha, or changing active goals. Use this skill at the end of any meaningful unit of work to write structured entries into .claude/memory/MEMORY.md following the project schema. Also use when

From plugin
memory-loop
321 skill1 agent3 commands2 hooks
Install
$ npx -y skills add yucai0302/memory-loop --skill memory-loop --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/memory-loop

Context preview

The summary Claude sees to decide when to auto-load this skill.

Update project memory after completing a task, making a key decision, discovering a gotcha, or changing active goals. Use this skill at the end of any meaningful unit of work to write structured entries into .claude/memory/MEMORY.md following the project schema. Also use when

SKILL.md

memory-loop.SKILL.md
name: memory-loop
description: "Update project memory after completing a task, making a key decision, discovering a gotcha, or changing active goals. Use this skill at the end of any meaningful unit of work to write structured entries into .claude/memory/MEMORY.md following the project schema. Also use when the user asks to save memory, update memory, or record what was done."

memory-loop — Write Protocol

You are writing structured entries into `.claude/memory/MEMORY.md`. This file is the project's persistent memory. It survives between sessions. Write accurately and concisely. Future agents (and you in a future session) will rely on this.

Step 1 — Read the current schema

Read `.claude/memory/schema.yaml` to understand which sections exist, their format strings, and their `max_items` limits.

Step 2 — Read the current MEMORY.md

Read `.claude/memory/MEMORY.md` to see what is already there.

Step 3 — Determine what needs updating

Based on what just happened in this session, identify which sections need new entries:

| Trigger | Section to update | |---|---| | Task finished | **Completed** (add entry) + **Active Goals** (remove the done goal) | | Technical decision made | **Decisions** (add entry) | | Bug / constraint / trap discovered | **Gotchas** (add entry) | | New work started | **Active Goals** (add entry) | | Project overview changed | **Project Context** (rewrite) |

Only update sections that are actually affected. Do not rewrite unchanged sections.

Step 4 — Apply format and max_items rules

  • Use the exact format string from the schema for each section.
  • After adding a new entry, if the section now has more than `max_items` entries, remove the oldest one(s) to stay within the limit.
  • Never delete **Decisions** or **Gotchas** entries during a regular write — those are only pruned during compression.

Step 5 — Write the file

Write the updated MEMORY.md back to disk. Preserve the file header comment block at the top. Do not change sections you did not touch.

Step 6 — Confirm

Report briefly what you wrote: > "Memory updated: added 1 Completed entry, removed Active Goal 'X'."

---

Format reference (defaults — actual values come from schema.yaml)

## Active Goals
- [goal description] | started: YYYY-MM-DD

## Decisions
- YYYY-MM-DD | chose X over Y | reason: Z

## Gotchas
- [module] problem description → workaround / rule

## Completed
- YYYY-MM-DD | task description | outcome
Read more
Ships withmemory-loop

Persistent project-scoped memory for Claude Code. Auto-loads on session start, structured by schema, hot/cold layered.

Get the whole plugin
Stats
32
Stars
3
Forks
Maintained
Maintenance
Shell
Language
3mo ago
Last commit
3mo ago
Created

Repo: yucai0302/memory-loop