The After Action Review Skill: Make Claude Learn From Each Session
TL;DR
An After Action Review asks four questions at the end of a job: what was supposed to happen, what actually happened, why there was a difference, and what to do next time. The free aar-loop skill runs that review on your Claude Code session, writes concrete lessons to LESSONS.md, and proposes fixes to your CLAUDE.md or skills that it only applies when you approve. Import LESSONS.md in your CLAUDE.md and Claude loads it at the start of every session. It doesn't retrain the model. It's a written habit, and it only works when the lessons are specific.
Claude starts every session fresh. If it broke the build the same way last Tuesday, it has no idea. The fix isn't a smarter model, it's a written debrief: at the end of a session, review what happened, write down the lesson, and make sure the next session reads it first.
The four questions
These come from the US Army's After Action Review, a short, no-blame debrief run after training and operations.
- 1What was supposed to happen?
- 2What actually happened?
- 3Why was there a difference?
- 4What do we do the same or differently next time?
The skill from the video: aar-loop
By Cooper Simson. A small, new repo: 83 stars on October 3, 2026, MIT licensed, last updated July 26, 2026. It's one SKILL.md plus a short Python script (standard library only) that appends dated lessons to LESSONS.md. We read both files before recommending it.
Run /aar-loop at the end of a session, or say "run an aar." It does three things:
- 1Answers the four questions about the session that just happened.
- 2Writes 1 to 3 lessons that each name a specific tool, file, command, number or condition. Its own rules reject vague lessons like "be more careful."
- 3Proposes a fix plan: the exact file (CLAUDE.md, AGENTS.md or a SKILL.md) and the exact line to add. It waits for your approval before editing, unless you said "apply" or "fix it" when you ran it. Every lesson also goes into LESSONS.md.
promptInstall this skill globally: https://github.com/coopersimson96/aar-loopThat line is the install method from the repo's README: paste it into Claude Code. Prefer to do it yourself? Run this in a terminal:
bashgit clone https://github.com/coopersimson96/aar-loop.git ~/.claude/skills/aar-loopIf Claude can't find the lesson script when it runs, tell it the script is at ~/.claude/skills/aar-loop/scripts/append_lesson.py.
Make Claude read the lessons first next time
Writing lessons only helps if the next session reads them. Add this line to your project's CLAUDE.md. Claude Code's docs say imported files are expanded and loaded into context at launch alongside the CLAUDE.md that imports them.
markdown# Lessons from past sessions
@LESSONS.mdKeep the file short. Anthropic recommends keeping each CLAUDE.md under 200 lines, and imported files load at launch too, so a bloated LESSONS.md costs context every session. Once a month, merge duplicates, delete lessons that no longer apply, and move the ones that matter most into CLAUDE.md as rules.
Prefer your own version? Copy this skill
Same four questions, no install from GitHub. Save it as ~/.claude/skills/debrief/SKILL.md, then type /debrief at the end of a session.
markdown---
name: debrief
description: Runs a 4-question After Action Review on the session that just happened and saves concrete lessons to LESSONS.md. Use when I say "debrief", "after action review", "run an aar", or "what did we learn".
---
# Debrief (After Action Review)
Review the work done in this session. Be honest and specific. No blame, no filler.
## 1. Answer the four questions
Answer each in 1 to 3 sentences, using what actually happened in this conversation:
1. What was supposed to happen?
2. What actually happened? Include errors, retries, workarounds, and anything I had to correct.
3. Why was there a difference? Name the cause (a command, a file, a wrong assumption), not a mood.
4. What do we do the same or differently next time?
## 2. Turn the answers into lessons
- Write 1 to 3 lessons. Zero is fine if nothing specific came out of it.
- Every lesson names a tool, file, command, number or condition. "Be more careful" is not a lesson.
- If something worked well, write that down too so it gets repeated.
## 3. Save them
- Read LESSONS.md in the project root first (create it if missing) and skip anything already recorded.
- Append each new lesson like this:
## YYYY-MM-DD: the lesson in one line
- Expected: ...
- Actual: ...
- Why: ...
- If a lesson should change a rule in CLAUDE.md or a step in a skill, show me the exact edit and wait for my yes before you touch that file.
- If LESSONS.md has more than 40 lessons, suggest which ones to merge or delete.
## 4. Report
Show the four answers, the lessons you wrote, and any edits you are proposing.bash# 1. Create the skill folder, then save the file above as SKILL.md inside it
mkdir -p ~/.claude/skills/debrief
# 2. In your project folder, create the lessons file
touch LESSONS.md
# 3. Add the import line to your project's CLAUDE.md (shown above)Or just paste this prompt
No skill at all. Paste this as the last message of a session:
promptBefore we stop, run an After Action Review on this session.
1. What was supposed to happen?
2. What actually happened? Include errors, retries and anything I had to correct.
3. Why was there a difference? Name the specific cause, not a mood.
4. What do we do the same or differently next time?
Then write 1 to 3 lessons that each name a specific tool, file, command, number or condition, and append them to LESSONS.md with today's date. Check the file first so you don't repeat a lesson. Don't edit any other file without asking me.Now you just work, and Claude repeats fewer of the same mistakes. Inside the Claude Code Club we share the skills, prompts and workflows we actually run every day, and help each other set them up. It's nine dollars a month at https://www.skool.com/claudecodeclub/about. Everything on this page works without it.
Common questions
What is an After Action Review?
A short, no-blame debrief from the US Army, built on four questions: what was supposed to happen, what actually happened, why there was a difference, and what to do the same or differently next time.
Does this make Claude learn permanently?
Not in the sense of training. Nothing changes the model. It writes lessons to a file and suggests rule changes, and Claude reads them at the start of the next session if you import the file in CLAUDE.md.
How do I make Claude read LESSONS.md automatically?
Add the line @LESSONS.md to your project's CLAUDE.md. Claude Code expands imported files and loads them into context at launch, along with the CLAUDE.md that imports them.
Is aar-loop safe to install?
We read the whole repo on October 3, 2026: one SKILL.md and one short Python script that only reads and appends to a LESSONS.md file. It asks before editing CLAUDE.md or skills. As with any skill, read the files yourself before you install it, since a repo can change after we check it.
How often should I run it?
At the end of any session that had friction: a failed build, a wrong assumption, something you had to correct twice. Running it after sessions that went well also helps, because it locks in what worked.
Keep going
Want Claude to stop repeating the same mistakes?
Get the other 4 in the memory stack, plus 8,000+ members - $9/mo, cancel anytime.
Join the Club