forget

$npx mdskill add obra/muse-skills/forget

Treat forgetting as cleanup across Muse, not as editing one memory note. Information may also live in conversation history, other notes, preferences, goals, scheduled work, created items, search results, or active work that can write it back.

SKILL.md

.github/skills/forgetView on GitHub ↗
---
name: "forget"
description: "Remove a personal fact, preference, relationship detail, topic, or prior event from Muse's active memory and stop existing copies or automations from bringing it back. Use for explicit requests such as 'forget that', 'don't remember this about me', or 'remove that from your memory'. Do not use when 'forget it' merely means cancel the current task."
metadata: { "includeInPrompt": true }
---

# Forget

Treat forgetting as cleanup across Muse, not as editing one memory note.
Information may also live in conversation history, other notes, preferences,
goals, scheduled work, created items, search results, or active work that can
write it back.

Use everyday language with the user and do not expose internal machinery. Say
"memory," "reminders," "created items," "shared items," "logs," or "backups"
instead of file names, database tables, indexes, projections, telemetry
systems, tool names, agent types, or runtime machinery. Keep exact locators and
technical details inside the private work. Get technical only when the user
does or when they explicitly ask how the cleanup works.

## Make a plan

Call `forget.plan` once with `{}`. It starts an ordinary untyped subagent with
the normal tool catalog that derives the subject from the current conversation,
so do not repeat sensitive text in tool arguments. Wait for its handoff instead
of polling or doing a parallel search. Muse pins this child to muse-special, or
to private Avocado on a confidential VM, independently of the active model
selection.

The planner reads
[references/artifact-inventory.md](references/artifact-inventory.md), stays
read-only, and checks:

- original places and copies with the same meaning;
- memory, search results, conversation context, and summaries made from it;
- reminders, scheduled or active work, and outside sources that can recreate
  the information;
- shared or published copies and anything Muse cannot erase.

It returns a concise plan covering what it found, what should change, how it
will verify the cleanup, and known limits. Keep the handoff discreet; refer to
"that information" instead of copying it into a new memory, todo, filename, or
report. Use conversations privately to find downstream copies and future
activity, but do not present the continued visibility or retention of the chat
itself as a cleanup limit.

## Ask, then execute

Show the user the plan's scope, irreversible actions, and important limits,
translated into the everyday categories above, then ask one direct confirmation
question. Silence, ambiguity, partial approval, or a changed scope is not
confirmation.

After a later clear approval, call `forget.confirm` with `{}`. It starts a fresh
ordinary untyped subagent with the same model policy and reads the latest plan
and confirmation from the inherited conversation. There is no planning-agent
id to preserve or pass.

The executor must stop without mutation if it cannot identify one clear recent
plan and its approval. Otherwise it revalidates current state, stops approved
work before removing its outputs, uses the tools that own each item, preserves
unrelated content, refreshes anything derived from what changed, and verifies
from fresh state. For shopping preferences, check `~/memory/shopping/PROFILE.md`
directly, edit or remove matching entries, and verify no staged, queued,
running, or scheduled shopping-profile run can restore them. If the
situation has materially changed or there is no safe way to clean up one
place, make a revised plan instead of broadening the cleanup.

Do not send approved cleanup targets to recoverable trash. For an exact local
file that should disappear entirely, use `rm -- <exact-path>` through `exec`;
never use `rm -r` or another recursive shell deletion. Revalidate the path
immediately before removal, never use a glob or a broad target, and edit
mixed-content files instead of deleting them. Clean up directories through the
product action that owns them; if there is no safe owning action, make a revised
plan. If an owning product action archives a definition in trash as part of its
cleanup, permanently remove an exact matching standalone-file tombstone. The
plan must describe permanent removal as irreversible before the user approves
it.

Before finishing, the executor stages what it removed from memory so the
runtime can retract the matching memory claims and everything derived from
them: it writes `~/workspace/memory/forget/pending.json` as
`{"claims":[...],"citations":[...]}`, listing the claim ids it saw in
`memory_explain` or `memory_search` metadata and the exact `MEMORY.md#L<line>`
or `memory/<date>.md#L<line>` locators it removed or rewrote. Ids and locators
only, never the forgotten text; the file is written even when both lists are
empty.

After the executor finishes successfully, Muse retracts the staged claims and
refreshes memory search, and waits for both before relaying the result. If the refresh fails, report
the cleanup as incomplete instead of claiming the information is no longer
searchable. Perform the cleanup directly in this executor rather than
delegating it to another subagent. If delegated work is still settling when the
executor finishes, Muse reports the cleanup as incomplete so later changes
cannot outrun the refresh. The executor should still verify the other affected
places; it does not need to refresh memory search a second time.

If either tool fails, do not fall back to unplanned manual deletion or claim
success. Explain the failure and make a new plan if the user still wants to
continue.

## Report honestly

Tell the user which categories were cleaned up, which reminders or other future
activity were stopped, and what remains. Do not repeat the forgotten
information.

Say "forgotten" only when fresh verification finds no active memory, derived
copy, or future activity that can bring the information back. Outside services,
shared or published items, logs, backups, or other retained copies may remain;
name the everyday category and whether Muse can keep it out of active use.

Do not tell the user that their original messages may remain visible in the
chat, and do not frame that as something Muse failed to erase. Visible
conversation text is not a cleanup target or a completion blocker. Inspect it
privately only to find and clean up memory, derived material, or future activity
that used it.

The request does not authorize deleting outside email, calendar data, device
records, shared publications, or another person's copy. Those actions need
their own user approval.

More from obra/muse-skills

SkillDescription
apple_healthkitThe user's synced Apple Health (HealthKit) data: daily metrics (steps, distance, calories, heart rate, HRV, VO2max), sleep sessions (stages, quality, efficiency), and workouts.
artifact_documentCreate, read, edit, or manipulate Word documents (.docx) and Word templates (.dotx). Use whenever a build task's artifact kind is document with the default docx output, or the task mentions a Word doc, .docx, or .dotx, extracts or reorganizes content from one, inserts or replaces images, does find-and-replace in one, or works with tracked changes (redlines) or comments. Covers python-docx generation, raw OOXML editing of existing files, document structure and formatting, and render verification. Not for PDFs, spreadsheets, or Google Docs.
artifact_markdownBuild or revise a plain markdown file (md) deliverable such as notes, a README, meeting minutes, documentation, or text the user will edit or paste elsewhere. Use whenever a build task's artifact kind is markdown. Covers markdown formatting conventions and read-back verification.
artifact_pdfBuild, revise, or manipulate a fixed-layout PDF (report, guide, one-pager, printable document). Use whenever a build task's artifact kind is pdf, a document build's output format is pdf, or the task reads, merges, splits, crops, or fills an existing PDF, including fillable AcroForms. Covers authoring the print-CSS HTML source, rendering, the geometry and validation gates, existing-PDF manipulation and form filling, and delivery under workspace/your_files.
artifact_presentationBuild or revise a slide deck (pptx by default; pdf or html on request). Use whenever a build task's artifact kind is presentation, or the user asks for a deck, slides, or a presentation. Covers per-slide HTML authoring, the StylePlan theme system, font embedding, deck assembly, render gates, and the PPTX export.
artifact_spreadsheetCreate, read, edit, fix, or clean spreadsheet files (.xlsx, .xlsm, .csv, .tsv). Use whenever a build task's artifact kind is spreadsheet, or the task names a spreadsheet file and wants something done to it or produced from it, including restructuring messy tabular data into a proper workbook. Covers openpyxl generation, formulas and recalculation, editing existing workbooks, and the validation gates. Not for tasks whose deliverable is a document, report, or web page that merely contains a table.
artifact_testingVerify an artifact before delivering it - file deliverables (pdf, pptx, docx, xlsx, csv) and web artifacts alike. Use whenever a build is about to return a link, or a build task asks for validation, QA, or a visual check. Covers the per-kind gate scripts, render-and-look verification, and leftover-placeholder scanning.
asana>-
bookingPrimary entry point for direct flight, hotel, restaurant, or event-ticket transactions and for bounded live availability checks delegated by Travel Planning. Always use before provider-specific skills or browser work when the user asks to find live availability or prices, compare bookable options, book, or continue an active booking. Do not use for trip planning itself, broad inspiration, opening hours, schedules, flight status, or other factual questions without transaction intent.
boxSearch, read, upload, download, move, rename, delete, restore, and share Box content; manage comments and metadata.