-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Update-memory-prompts #304
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
5 commits
Select commit
Hold shift + click to select a range
742d1cc
Update Memory Keeper prompt
PEZ 611beb0
Make memory keeper handle workspace scope too
PEZ a43e72c
Add prompt for merging memories saved by memory keeper/remember
PEZ 60ef065
Fix missing domain syntax
PEZ 4adb2be
node ./update-readme.js
PEZ File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 `<global-prompts>` (`vscode-userdata:/User/prompts/`) and apply to all VS Code projects | ||
- **Workspace** (`workspace` or `ws`) - Stored in `<workspace-instructions>` (`<workspace-root>/.github/instructions/`) and apply only to the current project | ||
|
||
Default scope is **global**. | ||
|
||
Throughout this prompt, `<global-prompts>` and `<workspace-instructions>` 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: `<global-prompts>/{domain}-memory.instructions.md` → `<global-prompts>/{domain}.instructions.md` | ||
- Workspace: `<workspace-instructions>/{domain}-memory.instructions.md` → `<workspace-instructions>/{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 | ||
``` |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.