Use when Codex needs local-first recall, durable project decisions, same-host multi-agent coordination, privacy-safe memory capture, evidence records, audit, consolidation, or explicit forgetting through Tree Ring Memory v0.13+.
SkillScore82Maintained
Automatic
◆AI Engineer packmemoryagentsrecall
Last verified 9/1/2026
What it changes
Passed 15 of 18 test cases with the skill, and 8 of 18 without it.
Without skill45%
With skill82%
Checks it passed that the model alone missed
Executes brew install tree-ring
Executes brew tap TerminallyLazy/tree-ring
Uses tree-ring forget with the redact mode flag
and 9 more in the full report
9 fixed9 passed either way3 still failing1 broke
Pass-rate lift
+36 pp
Tokens
+97%
Agent turns
0%
Response time
-38%
Model gemini-3.6-flashMeasured 9/1/2026v118 of 22 cases passed with skill · 18 comparable
Tokens, turns and time describe resource use, not a dollar price.
See it in action
One of 7 test cases the skill fixed. Same model, same prompt, with and without the skill.
1 of 7
Prompt
A project memory entry contains a sensitive user email address, but the structural architectural lesson in the memory remains valuable and needs to stay visible. Should we delete the entire entry or redact it, and what flag option specifies this?
What was checked, without and with the skill
Checked
Without skill
With skill
Uses tree-ring forget with the redact mode flag
Missed
Passed
case-13 · gemini-3.6-flash · 9/1/2026 · answers are capped and redacted
What's inside
The instructions your model reads when the skill loads.
SKILL.md290 linessingle file
Tree Ring Memory
Use Tree Ring Memory as a lifecycle-aware memory layer, not as a transcript
dump.
Tree Ring Memory preserves meaningful agent learning:
fresh work stays detailed
older learning compresses into stable rings
important warnings remain visible as scars
durable truths become heartwood
speculative future work stays as seeds
sensitive data is blocked, redacted, or kept out by default
First Check
If the current project contains Tree Ring files, read them before using global
assumptions: