agentleFS
jmylchreestjmylchreest/aide/skills/forget/SKILL.md

forget

Skill19 starsChanged 3 months agoMITView on GitHub

Soft-delete memories by adding/removing the forget tag, or hard-delete outdated memories

9 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use generate_podcast, muse_db and 6 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • jacobwellSkill

    generate_podcast

    Compose and deliver audio content: a podcast episode, briefing, or narrated summary, with one or more voices, as an MP3. For reading supplied text aloud verbatim, use tts.

    Also in 3 projects that use this

  • jacobwellSkill

    muse_db

    Inspect database-backed Muse records for diagnosis and cross-table tracing when purpose-built product tools do not expose the needed state.

    Also in 3 projects that use this

  • ansvisorSkill

    shopping

    Checks product pages and feed for ChatGPT Shopping (US) and Google Shopping (EU).

    Also in 4 projects that use this

  • SentrySkill

    tts

    Generates spoken narration with Gemini TTS through Vercel AI Gateway. Use for text-to-speech, audio samples, voiceovers, or speaking as Junior with the reusable Junior voice. Do not use for transcription, voice cloning, music generation, or rendering a video without a narration request.

    Also in 4 projects that use this

  • QuixiAISkill

    spotify

    Search Spotify, inspect current playback and devices, and control playback with explicit approval

    Also in 3 projects that use this

  • refly-aiSkill

    gmail

    Integrate with Gmail for email management and automation. Use when you need to: (1) send and compose emails with attachments, (2) read and search emails by criteria, (3) manage drafts and email labels, or (4) reply to email threads and conversations.

    Also in 3 projects that use this

  • +1 more from jacobwell

The file

We split this skill into the rules it gives an agent

11 rules. 0 are common, 7 are distinctive, and 4 are very specific to this project.

  • 0

    Common

    Most of the 9 edited versions we read keep these.

  • 7

    Distinctive

    This author's own choices. Worth a look.

  • 4

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Remove the forget tag to restore a soft-deleted memory.

    line 49
  2. Distinctive:

    When the user wants to forget, correct, or supersede a memory:

    line 57
  3. Distinctive:

    Search for the memory to identify its ID:

    line 61
  4. Distinctive:

    Before deleting or forgetting, show the user what was found and confirm which memories to act on.

    line 73
  5. Very specific:

    If the memory is being superseded (not just deleted), add a new corrected memory without the forget tag:

    line 89
  6. Very specific:

    Always search first to find the exact memory ID.

    line 137
  7. Distinctive:

    Always show the user what will be affected and get confirmation before acting, especially for hard deletes.

    line 141
  8. Distinctive:

    Panic/crash: - If the tag command panics, fall back to delete + re-add:

    line 205
  9. Distinctive:

    When adding replacement memories (Step 4 above), always:

    line 216
  10. Very specific:

    Verify codebase claims: before storing — If a replacement memory references a file, function, or path, confirm it exists first.

    line 220
  11. Distinctive:

    After forgetting a memory, verify:

    line 225

“Common” is measured: kept by at least 6 in 10 of the 9 edited versions of this file we could read. “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

Forget

Recommended model tier: balanced (sonnet) - this skill performs straightforward operations

Manage outdated, incorrect, or obsolete memories by soft-deleting (tagging with forget) or hard-deleting them.

Key Concepts

Soft Delete (Preferred)

Memories tagged with forget are excluded by default from search, list, and context injection. They remain in the database and can be recovered.

./.aide/bin/aide memory tag <MEMORY_ID> --add=forget

Hard Delete (Permanent)

Permanently removes a memory from the database. Use when the memory is clearly wrong or contains sensitive data.

./.aide/bin/aide memory delete <MEMORY_ID>

Unforget (Recover)

Remove the forget tag to restore a soft-deleted memory.

./.aide/bin/aide memory tag <MEMORY_ID> --remove=forget

Workflow

When the user wants to forget, correct, or supersede a memory:

Step 1: Find the Memory

Search for the memory to identify its ID:

# Search by content keywords
./.aide/bin/aide memory search "<keywords>" --full --limit=10

# If the memory might already be forgotten, include all
./.aide/bin/aide memory list --all

Step 2: Confirm with User

Before deleting or forgetting, show the user what was found and confirm which memories to act on. Display the memory ID, content, and tags.

Step 3: Apply the Appropriate Action

Choose based on the situation:

SituationActionCommand
Memory is outdated but was once trueSoft delete (forget)aide memory tag <ID> --add=forget
Memory is factually wrongHard deleteaide memory delete <ID>
Memory is resolved (issue fixed)Soft delete + optionally add resolutionSee "Superseding" below
Memory contains sensitive dataHard deleteaide memory delete <ID>
Memory was accidentally forgottenUnforgetaide memory tag <ID> --remove=forget

Step 4: Optionally Add a Replacement

If the memory is being superseded (not just deleted), add a new corrected memory without the forget tag:

# 1. Forget the old memory
./.aide/bin/aide memory tag <OLD_ID> --add=forget

# 2. Add the corrected memory (NO forget tag) — include scope + provenance tags
./.aide/bin/aide memory add --category=<category> --tags=<relevant,tags>,project:<name>,session:${AIDE_SESSION_ID},source:discovered "<corrected content>"

Step 5: Verify

Confirm the memory is no longer visible in normal searches:

# Should NOT appear in normal search
./.aide/bin/aide memory search "<keywords>"

# Should appear with --all flag
./.aide/bin/aide memory list --all

Anti-Patterns (AVOID)

DO NOT add a new memory with the forget tag to "supersede" an old one

This is the most common mistake. Adding a new memory tagged forget does nothing useful:

  • The new "superseding" memory is immediately hidden (because it has the forget tag)
  • The original incorrect memory remains visible and active

Wrong:

# BAD - creates a hidden memory, leaves the original untouched
aide memory add --tags="forget,some-topic" "RESOLVED: the old issue is fixed"

Correct:

# GOOD - forget the original, add a visible replacement
aide memory tag <ORIGINAL_ID> --add=forget
aide memory add --tags="some-topic" "RESOLVED: the old issue is fixed"

DO NOT guess memory IDs

Always search first to find the exact memory ID. Memory IDs are ULIDs (e.g., 01KJ3X7GMQET613WMPT7JT8GYD).

DO NOT forget memories without user confirmation

Always show the user what will be affected and get confirmation before acting, especially for hard deletes.

Batch Operations

To forget multiple related memories:

# Search for all related memories
./.aide/bin/aide memory search "<topic>" --full --limit=50

# Forget each one (after user confirmation)
./.aide/bin/aide memory tag <ID1> --add=forget
./.aide/bin/aide memory tag <ID2> --add=forget

To clear ALL memories (destructive, requires explicit user request):

./.aide/bin/aide memory clear

Examples

User says "that thing about ESM imports is wrong"

# 1. Find the memory
./.aide/bin/aide memory search "ESM imports" --full

# 2. Show user and confirm
# "Found memory 01KJ... about ESM imports requiring .js extensions. Delete this?"

# 3. Soft delete
./.aide/bin/aide memory tag 01KJ3XVFXBFTKKH1M500N6R5 --add=forget

User says "we changed from JWT to sessions, update the memory"

# 1. Find the old memory
./.aide/bin/aide memory search "JWT auth" --full

# 2. Forget the old one
./.aide/bin/aide memory tag <OLD_ID> --add=forget

# 3. Add the corrected one
./.aide/bin/aide memory add --category=decision --tags=auth,sessions,project:myapp,session:${AIDE_SESSION_ID},source:discovered "Auth strategy changed from JWT to server-side sessions with Redis store"

User says "recover that forgotten memory about testing"

# 1. Find forgotten memories
./.aide/bin/aide memory list --all

# 2. Unforget it
./.aide/bin/aide memory tag <ID> --remove=forget

Failure Handling

If aide memory tag fails:

  1. "memory not found" - The ID may be wrong. Re-search with --all flag to include forgotten memories.
  2. Panic/crash - If the tag command panics, fall back to delete + re-add:
    # Workaround: get memory content, delete, re-add with forget tag
    ./.aide/bin/aide memory list --all  # Find the memory content
    ./.aide/bin/aide memory delete <ID>
    ./.aide/bin/aide memory add --category=<cat> --tags=<existing-tags>,forget "<content>"
  3. Database locked - Another process may hold the lock. Wait and retry, or ensure the aide daemon is running (CLI routes through gRPC when daemon is active).

Memory Hygiene

When adding replacement memories (Step 4 above), always:

  1. Include source: tag — Use source:discovered for corrected facts, source:user if the user provided the correction
  2. Include scope tags — Add project:<name>,session:<id> (get project name from git remote or directory; session ID from $AIDE_SESSION_ID or $CLAUDE_SESSION_ID)
  3. Verify codebase claims before storing — If a replacement memory references a file, function, or path, confirm it exists first. See the memorise skill for the full verification workflow.
  4. Never use scope:global unless storing a user preference

Verification

After forgetting a memory, verify:

# Memory should NOT appear here
./.aide/bin/aide memory search "<term>"

# Memory SHOULD appear here (with forget tag)
./.aide/bin/aide memory list --all

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.