{"id":"2014ce61-cf21-49d4-8800-4b8dc5b428c0","shortId":"872bB7","kind":"skill","title":"Memory Merger","tagline":"Awesome Copilot skill by Github","description":"# Memory Merger\n\nYou consolidate mature learnings from a domain's memory file into its instruction file, ensuring knowledge preservation with minimal redundancy.\n\n**Use the todo list** to track your progress through the process steps and keep the user informed.\n\n## Scopes\n\nMemory instructions can be stored in two scopes:\n\n- **Global** (`global` or `user`) - Stored in `<global-prompts>` (`vscode-userdata:/User/prompts/`) and apply to all VS Code projects\n- **Workspace** (`workspace` or `ws`) - Stored in `<workspace-instructions>` (`<workspace-root>/.github/instructions/`) and apply only to the current project\n\nDefault scope is **global**.\n\nThroughout this prompt, `<global-prompts>` and `<workspace-instructions>` refer to these directories.\n\n## Syntax\n\n```\n/memory-merger >domain-name [scope]\n```\n\n- `>domain-name` - Required. The domain to merge (e.g., `>clojure`, `>git-workflow`, `>prompt-engineering`)\n- `[scope]` - Optional. One of: `global`, `user` (both mean global), `workspace`, or `ws`. Defaults to `global`\n\n**Examples:**\n- `/memory-merger >prompt-engineering` - merges global prompt engineering memories\n- `/memory-merger >clojure workspace` - merges workspace clojure memories\n- `/memory-merger >git-workflow ws` - merges workspace git-workflow memories\n\n## Process\n\n### 1. Parse Input and Read Files\n\n- **Extract** domain and scope from user input\n- **Determine** file paths:\n  - Global: `<global-prompts>/{domain}-memory.instructions.md` → `<global-prompts>/{domain}.instructions.md`\n  - Workspace: `<workspace-instructions>/{domain}-memory.instructions.md` → `<workspace-instructions>/{domain}.instructions.md`\n- The user can have mistyped the domain, if you don't find the memory file, glob the directory and determine if there may be a match there. Ask the user for input if in doubt.\n- **Read** both files (memory file must exist; instruction file may not)\n\n### 2. Analyze and Propose\n\nReview all memory sections and present them for merger consideration:\n\n```\n## Proposed Memories for Merger\n\n### Memory: [Headline]\n**Content:** [Key points]\n**Location:** [Where it fits in instructions]\n\n[More memories]...\n```\n\nSay: \"Please review these memories. Approve all with 'go' or specify which to skip.\"\n\n**STOP and wait for user input.**\n\n### 3. Define Quality Bar\n\nEstablish 10/10 criteria for what constitutes awesome merged resulting instructions:\n1. **Zero knowledge loss** - Every detail, example, and nuance preserved\n2. **Minimal redundancy** - Overlapping guidance consolidated\n3. **Maximum scannability** - Clear hierarchy, parallel structure, strategic bold, logical grouping\n\n### 4. Merge and Iterate\n\nDevelop the final merged instructions **without updating files yet**:\n\n1. Draft the merged instructions incorporating approved memories\n2. Evaluate against quality bar\n3. Refine structure, wording, organization\n4. Repeat until the merged instructions meet 10/10 criteria\n\n### 5. Update Files\n\nOnce the final merged instructions meet 10/10 criteria:\n\n- **Create or update** the instruction file with the final merged content\n  - Include proper frontmatter if creating new file\n  - **Merge `applyTo` patterns** from both memory and instruction files if both exist, ensuring comprehensive coverage without duplication\n- **Remove** merged sections from the memory file\n\n## Example\n\n```\nUser: \"/memory-merger >clojure\"\n\nAgent:\n1. Reads clojure-memory.instructions.md and clojure.instructions.md\n2. Proposes 3 memories for merger\n3. [STOPS]\n\nUser: \"go\"\n\nAgent:\n4. Defines quality bar for 10/10\n5. Merges new instructions candidate, iterates to 10/10\n6. Updates clojure.instructions.md\n7. Cleans clojure-memory.instructions.md\n```","tags":["memory","merger","awesome","copilot","github"],"capabilities":["skill","source-github","category-awesome-copilot"],"categories":["awesome-copilot"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/github/awesome-copilot/memory-merger","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"install_from":"skills.sh"}},"qualityScore":"0.300","qualityRationale":"deterministic score 0.30 from registry signals: · indexed on skills.sh · published under github/awesome-copilot","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T19:40:25.121Z","embedding":null,"createdAt":"2026-04-18T20:24:49.452Z","updatedAt":"2026-04-22T19:40:25.121Z","lastSeenAt":"2026-04-22T19:40:25.121Z","tsv":"'/.github/instructions':79 '/memory-merger':100,137,146,153,424 '/user/prompts':65 '1':165,302,342,427 '10/10':293,367,378,448,456 '2':237,312,350,432 '3':288,318,355,434,438 '4':329,360,443 '5':369,449 '6':457 '7':460 'agent':426,442 'analyz':238 'appli':67,81 'applyto':399 'approv':273,348 'ask':218 'awesom':3,298 'bar':291,354,446 'bold':326 'candid':453 'category-awesome-copilot' 'clean':461 'clear':321 'clojur':114,147,151,425 'clojure-memory.instructions.md':429,462 'clojure.instructions.md':431,459 'code':71 'comprehens':411 'consider':250 'consolid':11,317 'constitut':297 'content':257,390 'copilot':4 'coverag':412 'creat':380,395 'criteria':294,368,379 'current':85 'default':87,133 'defin':289,444 'detail':307 'determin':178,210 'develop':333 'directori':98,208 'domain':16,102,106,110,172,182,184,187,189,197 'domain-nam':101,105 'doubt':225 'draft':343 'duplic':414 'e.g':113 'engin':120,140,144 'ensur':24,410 'establish':292 'evalu':351 'everi':306 'exampl':136,308,422 'exist':232,409 'extract':171 'file':19,23,170,179,205,228,230,234,340,371,385,397,406,421 'final':335,374,388 'find':202 'fit':263 'frontmatt':393 'git':116,155,161 'git-workflow':115,154,160 'github':7 'glob':206 'global':56,57,90,125,129,135,142,181 'go':276,441 'group':328 'guidanc':316 'headlin':256 'hierarchi':322 'includ':391 'incorpor':347 'inform':46 'input':167,177,222,287 'instruct':22,49,233,265,301,337,346,365,376,384,405,452 'instructions.md':185,190 'iter':332,454 'keep':43 'key':258 'knowledg':25,304 'learn':13 'list':33 'locat':260 'logic':327 'loss':305 'match':216 'matur':12 'maximum':319 'may':213,235 'mean':128 'meet':366,377 'memori':1,8,18,48,145,152,163,204,229,243,252,255,267,272,349,403,420,435 'memory.instructions.md':183,188 'merg':112,141,149,158,299,330,336,345,364,375,389,398,416,450 'merger':2,9,249,254,437 'minim':28,313 'mistyp':195 'must':231 'name':103,107 'new':396,451 'nuanc':310 'one':123 'option':122 'organ':359 'overlap':315 'parallel':323 'pars':166 'path':180 'pattern':400 'pleas':269 'point':259 'present':246 'preserv':26,311 'process':40,164 'progress':37 'project':72,86 'prompt':93,119,139,143 'prompt-engin':118,138 'proper':392 'propos':240,251,433 'qualiti':290,353,445 'read':169,226,428 'redund':29,314 'refer':95 'refin':356 'remov':415 'repeat':361 'requir':108 'result':300 'review':241,270 'say':268 'scannabl':320 'scope':47,55,88,104,121,174 'section':244,417 'skill':5 'skip':281 'source-github' 'specifi':278 'step':41 'stop':282,439 'store':52,60,77 'strateg':325 'structur':324,357 'syntax':99 'throughout':91 'todo':32 'track':35 'two':54 'updat':339,370,382,458 'use':30 'user':45,59,126,176,192,220,286,423,440 'userdata':64 'vs':70 'vscode':63 'vscode-userdata':62 'wait':284 'without':338,413 'word':358 'workflow':117,156,162 'workspac':73,74,130,148,150,159,186 'ws':76,132,157 'yet':341 'zero':303","prices":[{"id":"ee925321-b350-42d8-a117-cdcab84823a2","listingId":"2014ce61-cf21-49d4-8800-4b8dc5b428c0","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"github","category":"awesome-copilot","install_from":"skills.sh"},"createdAt":"2026-04-18T20:24:49.452Z"}],"sources":[{"listingId":"2014ce61-cf21-49d4-8800-4b8dc5b428c0","source":"github","sourceId":"github/awesome-copilot/memory-merger","sourceUrl":"https://github.com/github/awesome-copilot/tree/main/skills/memory-merger","isPrimary":false,"firstSeenAt":"2026-04-18T21:50:10.689Z","lastSeenAt":"2026-04-22T18:52:59.358Z"},{"listingId":"2014ce61-cf21-49d4-8800-4b8dc5b428c0","source":"skills_sh","sourceId":"github/awesome-copilot/memory-merger","sourceUrl":"https://skills.sh/github/awesome-copilot/memory-merger","isPrimary":true,"firstSeenAt":"2026-04-18T20:24:49.452Z","lastSeenAt":"2026-04-22T19:40:25.121Z"}],"details":{"listingId":"2014ce61-cf21-49d4-8800-4b8dc5b428c0","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"github","slug":"memory-merger","source":"skills_sh","category":"awesome-copilot","skills_sh_url":"https://skills.sh/github/awesome-copilot/memory-merger"},"updatedAt":"2026-04-22T19:40:25.121Z"}}