Skip to content
Back to skills

Memory Loop

ASecurity

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.

  • 30 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added June 11, 2026
ai-agentsgo

Security analysis

A100/100

Scanned June 11, 2026

npx -y skills add yucai0302/memory-loop --skill memory-loop --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Memory Loop?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Memory Loop
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/yucai0302-memory-loop/badge)](https://www.skillsdirectory.com/skills/yucai0302-memory-loop)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
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
```

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…