agentleFS
bobmmaobobmmao/agent-workflow-skills/skills/governance/memory-dream/SKILL.md

memory-dream

Skill0 starsChanged 5 months agoMITView on GitHub

Memory consolidation protocol. Reviews all stored memories, merges duplicates, removes noise and credentials, rewrites unclear entries, and enforces TTL expiration. Use when the user asks to clean up, consolidate, or review their memories. Also triggers automatically after sufficient activity (configurable).

2 other projects use a version of this.

Adopted by

Most recently taken up by

The file

Show its rules and text

We split this skill into the rules it gives an agent

20 rules. About 0 are common, 13 are distinctive, and 7 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈13

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 7

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Follow these four phases in order.

    line 17
  2. Very specific:

    Call memory_list to load all stored memories.

    line 23
  3. Distinctive:

    Do not modify anything in this phase.

    line 28
  4. Very specific:

    Call memory_search with a created_at filter to find memories added since the last consolidation.

    line 35
  5. Very specific:

    If a memory looks like it was updated multiple times or has contradictory content, call memory_history on it to understand how it evolved.

    line 38
  6. Distinctive:

    DELETE: contains credentials, expired by TTL, pure noise, raw tool output, standalone timestamps

    line 41
  7. Very specific:

    Delete immediately using memory_forget:

    line 51
  8. Distinctive:

    When two or more memories express the same fact:

    line 62
  9. Very specific:

    Call memory_update on the best version to incorporate missing details from the others

    line 64
  10. Very specific:

    Call memory_forget on the redundant entries

    line 65
  11. Distinctive:

    When merging, follow these rules:

    line 69
  12. Distinctive:

    Keep the user's original words for opinions and preferences

    line 70
  13. Distinctive:

    Do not exceed 50 words in the merged result

    line 72
  14. Distinctive:

    When a memory needs improvement but is not a duplicate:

    line 77
  15. Very specific:

    Call memory_update with the improved text

    line 78
  16. Distinctive:

    After completing all operations, summarize what you did:

    line 89
  17. Distinctive:

    After consolidation, the memory store should have:

    line 104
  18. Distinctive:

    All project and operational memories have temporal anchors ("As of YYYY-MM-DD")

    line 107
  19. Distinctive:

    All memories use third person voice

    line 108
  20. Distinctive:

    All memories are correctly categorized

    line 109

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Memory Consolidation

You are performing a memory consolidation pass. Your goal is to review all stored memories for this user and improve their overall quality. Think of this as compressing raw observations into clean, durable knowledge.

Follow these four phases in order. Do not skip phases.

Phase 1: Orient

Survey the current memory landscape before making any changes.

  1. Call memory_list to load all stored memories.
  2. Count memories by category. Note the total.
  3. Identify the oldest and newest memories by their timestamps.
  4. Note any obvious problems visible in the list: duplicates, very short entries, entries without temporal anchors.

Do not modify anything in this phase. The goal is to understand what you are working with.

Phase 2: Gather Targets

Identify which memories need action. Use the tools to investigate.

Search for recent additions: Call memory_search with a created_at filter to find memories added since the last consolidation. These are the most likely to need merging or cleanup.

Check edit history on suspicious entries: If a memory looks like it was updated multiple times or has contradictory content, call memory_history on it to understand how it evolved.

Classify each target into one of these actions:

  • DELETE: contains credentials, expired by TTL, pure noise, raw tool output, standalone timestamps
  • MERGE: two or more memories express the same fact in different words, or a series tracks incremental changes to the same entity
  • REWRITE: vague, missing temporal anchor, uses first person instead of third, wrong category, overly verbose

Phase 3: Consolidate

Execute the actions identified in Phase 2. Work in this priority order:

3a. Delete dangerous and expired entries

Delete immediately using memory_forget:

  • Credentials, API keys, tokens, passwords, secrets (patterns: provider keys, GitHub PATs, cloud access keys, bearer tokens, passwords, tokens, and secrets)
  • Pure timestamps with no context
  • Raw tool output stored as memory
  • Heartbeat or cron execution records
  • Generic acknowledgments stored as memory ("ok", "got it")
  • Operational memories older than 7 days
  • Project memories older than 90 days

3b. Merge duplicates

When two or more memories express the same fact:

  1. Pick the most complete version as the base
  2. Call memory_update on the best version to incorporate missing details from the others
  3. Call memory_forget on the redundant entries

memory_update is preferred over forget-then-store because it is atomic and preserves edit history.

When merging, follow these rules:

  • Keep the user's original words for opinions and preferences
  • Preserve temporal anchors from both versions
  • Do not exceed 50 words in the merged result
  • The merged memory must be self-contained (understandable without the deleted ones)

3c. Rewrite unclear entries

When a memory needs improvement but is not a duplicate:

  1. Call memory_update with the improved text

Rewrite when:

  • Memory uses first person ("I prefer") instead of third ("User prefers")
  • Memory lacks a temporal anchor for time-sensitive information
  • Memory is vague ("likes python") and can be made specific ("User prefers Python for backend development")
  • Memory has the wrong category assignment
  • Memory is over 50 words and can be compressed without losing information

Phase 4: Report

After completing all operations, summarize what you did:

Consolidation complete.
- Reviewed: [total count]
- Deleted (credentials/secrets): [count]
- Deleted (expired/stale): [count]
- Merged: [count] groups into [count] memories
- Rewritten: [count]
- Final count: [total remaining]
- Issues found: [any notable problems or observations]

Quality Targets

After consolidation, the memory store should have:

  • Zero memories containing credentials or secrets
  • Zero duplicate memories (same fact in different words)
  • All project and operational memories have temporal anchors ("As of YYYY-MM-DD")
  • All memories use third person voice
  • All memories are correctly categorized
  • Each memory is 15-50 words, self-contained, and atomic (one fact per memory)

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.