From a43e72c30bb3ac01bf6d85d3437557884f4f2e28 Mon Sep 17 00:00:00 2001 From: PEZ Date: Thu, 9 Oct 2025 22:48:59 +0200 Subject: [PATCH] Add prompt for merging memories saved by memory keeper/remember --- prompts/memory-merger.prompt.md | 107 ++++++++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 prompts/memory-merger.prompt.md diff --git a/prompts/memory-merger.prompt.md b/prompts/memory-merger.prompt.md new file mode 100644 index 0000000..c157f2d --- /dev/null +++ b/prompts/memory-merger.prompt.md @@ -0,0 +1,107 @@ +--- +description: 'Merges mature lessons from a domain memory file into its instruction file. Syntax: `/memory-merger >domain [scope]` where scope is `global` (default), `user`, `workspace`, or `ws`.' +--- + +# Memory Merger + +You consolidate mature learnings from a domain's memory file into its instruction file, ensuring knowledge preservation with minimal redundancy. + +**Use the todo list** to track your progress through the process steps and keep the user informed. + +## Scopes + +Memory instructions can be stored in two scopes: + +- **Global** (`global` or `user`) - Stored in `` (`vscode-userdata:/User/prompts/`) and apply to all VS Code projects +- **Workspace** (`workspace` or `ws`) - Stored in `` (`/.github/instructions/`) and apply only to the current project + +Default scope is **global**. + +Throughout this prompt, `` and `` refer to these directories. + +## Syntax + +``` +/memory-merger >domain-name [scope] +``` + +- `>domain-name` - Required. The domain to merge (e.g., `>clojure`, `>git-workflow`, `prompt-engineering`) +- `[scope]` - Optional. One of: `global`, `user` (both mean global), `workspace`, or `ws`. Defaults to `global` + +**Examples:** +- `/memory-merger >prompt-engineering` - merges global prompt engineering memories +- `/memory-merger >clojure workspace` - merges workspace clojure memories +- `/memory-merger >git-workflow ws` - merges workspace git-workflow memories + +## Process + +### 1. Parse Input and Read Files + +- **Extract** domain and scope from user input +- **Determine** file paths: + - Global: `/{domain}-memory.instructions.md` → `/{domain}.instructions.md` + - Workspace: `/{domain}-memory.instructions.md` → `/{domain}.instructions.md` +- 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. +- **Read** both files (memory file must exist; instruction file may not) + +### 2. Analyze and Propose + +Review all memory sections and present them for merger consideration: + +``` +## Proposed Memories for Merger + +### Memory: [Headline] +**Content:** [Key points] +**Location:** [Where it fits in instructions] + +[More memories]... +``` + +Say: "Please review these memories. Approve all with 'go' or specify which to skip." + +**STOP and wait for user input.** + +### 3. Define Quality Bar + +Establish 10/10 criteria for what constitutes awesome merged resulting instructions: +1. **Zero knowledge loss** - Every detail, example, and nuance preserved +2. **Minimal redundancy** - Overlapping guidance consolidated +3. **Maximum scannability** - Clear hierarchy, parallel structure, strategic bold, logical grouping + +### 4. Merge and Iterate + +Develop the final merged instructions **without updating files yet**: + +1. Draft the merged instructions incorporating approved memories +2. Evaluate against quality bar +3. Refine structure, wording, organization +4. Repeat until the merged instructions meet 10/10 criteria + +### 5. Update Files + +Once the final merged instructions meet 10/10 criteria: + +- **Create or update** the instruction file with the final merged content + - Include proper frontmatter if creating new file + - **Merge `applyTo` patterns** from both memory and instruction files if both exist, ensuring comprehensive coverage without duplication +- **Remove** merged sections from the memory file + +## Example + +``` +User: "/memory-merger >clojure" + +Agent: +1. Reads clojure-memory.instructions.md and clojure.instructions.md +2. Proposes 3 memories for merger +3. [STOPS] + +User: "go" + +Agent: +4. Defines quality bar for 10/10 +5. Merges new instructions candidate, iterates to 10/10 +6. Updates clojure.instructions.md +7. Cleans clojure-memory.instructions.md +```