{"slug":"consolidate-memory","title":"consolidate-memory","summary":"Reflective pass over your memory — merge duplicates, fix stale facts, prune what no longer matters. Use when the user asks to clean up or review what you remember, or when memory has grown cluttered or contradictory.","platform":"Claude","tags":[],"authorName":"LLM Mart","authorSlug":"llm-mart","score":0,"source":"github","price":null,"verified":false,"createdAt":"2026-10-17T09:13:09.099662Z","repo":{"url":"https://github.com/invergent-ai/surogates","stars":28,"forks":1,"license":"AGPL-3.0","updatedAt":"2026-10-16T18:37:14Z"},"bodyHtml":"<hr>\n<p>name: consolidate-memory\ndescription: \"Reflective pass over your memory — merge duplicates, fix stale facts, prune what no longer matters. Use when the user asks to clean up or review what you remember, or when memory has grown cluttered or contradictory.\"\nrequires_tools:</p>\n<ul>\n<li>memory</li>\n</ul>\n<hr>\n<h1>Memory Consolidation</h1>\n<p>You're doing a reflective pass over what you've learned about this user and their work. The goal: a future session should be able to orient quickly — who they work with, what they're focused on, how they like things done — without re-asking.</p>\n<p>Memory is two lists of entries, edited with the <code>memory</code> tool: <code>user</code> (who the user is, their preferences) and <code>memory</code> (your notes on their projects, conventions and workflows). Both are injected into every turn of every future session, so every entry costs context forever.</p>\n<h2>Phase 1 — Take stock</h2>\n<ul>\n<li>Read both lists as your system prompt shows them. That is the state when this session started; account for anything you wrote since.</li>\n<li>Note which entries overlap, which look stale, which are thin, and which sit in the wrong target.</li>\n</ul>\n<h2>Phase 2 — Consolidate</h2>\n<p><strong>Separate the durable from the dated.</strong> Preferences, working style, key relationships, and recurring workflows are durable — keep and sharpen them. Specific projects, deadlines, and one-off tasks are dated — if the date has passed or the work is done, remove the entry or fold the lasting takeaway (e.g. \"user prefers X format for launch docs\") into a durable one.</p>\n<p><strong>Merge overlaps.</strong> If two entries describe the same person, project, or preference, <code>replace</code> the richer one with the merged text and <code>remove</code> the other.</p>\n<p><strong>Fix time references.</strong> Convert \"next week\", \"this quarter\", \"by Friday\" to absolute dates so they stay readable later.</p>\n<p><strong>Drop what's easy to re-find.</strong> Task progress, session outcomes, and completed-work logs don't belong in memory — <code>session_search</code> recalls those from past transcripts. Cut entries that restate something you could pull from the user's files or connected tools on demand. Keep what's hard to re-derive: stated preferences, context behind a decision, who to go to for what.</p>\n<p><strong>Keep the user's word.</strong> Never drop or soften a preference the user stated unless a newer statement of theirs contradicts it; when two contradict, keep the newer and say so in the summary.</p>\n<p><strong>One fact per entry, written compactly.</strong> <code>replace</code> identifies an entry by a short unique substring (<code>old_text</code>) — pick one that appears in that entry only.</p>\n<p>Finish with a short summary: how many entries you merged, rewrote, and removed, and what changed.</p>\n","files":[{"path":"SKILL.md","sizeBytes":2607,"isText":true}],"reviewScore":null,"reviewSummary":null,"trust":{"provenance":"trusted-source-unreviewed","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow.","bodySource":null},"bodyLocked":false,"purchaseUrl":null,"sourceUrl":null,"report":{"provenance":"trusted-source-unreviewed","screen":{"ran":true,"outcome":"clean","suspicious":0,"notes":0,"hiddenCharacters":false},"virusScan":{"engine":"clamav","status":"clean","scannedAt":"2026-10-17T09:13:31.344267Z","sha256":"AA7943EB9EE26D89DBEC8BE26D6CBA7FFF96722F3830A1595EB5E47FADDB762F","sizeBytes":1413},"review":null,"source":{"repositoryUrl":"https://github.com/invergent-ai/surogates","path":"skills/productivity/consolidate-memory","license":"AGPL-3.0","commit":"f423b85eed3b230f0085ed007adc86e8aa639d02","subtreeSha":"5290FF194252C83957568C0AA0D90BD22A132C4B5EC5D516A58B0D5D4C0B6A77","lastSyncedAt":"2026-10-17T09:13:07.689271Z"},"reviewedAt":"2026-10-17T09:18:03.35963Z","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow."},"install":[{"target":"skills-cli","command":"npx skills add https://github.com/invergent-ai/surogates/tree/master/skills/productivity/consolidate-memory"},{"target":"claude-code","command":"claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install invergent-ai-surogates@llmmart"},{"target":"git","command":"git clone https://github.com/invergent-ai/surogates.git"}]}