remember
github/awesome-copilot
Transform lessons learned into domain-organized memory instructions that persist across projects.
What is remember?
The remember skill captures debugging insights, workflow discoveries, and hard-won lessons into reusable, domain-specific memory instructions. Use it to build institutional knowledge that helps avoid repeating mistakes and find best patterns across all your projects.
- Transforms lessons into domain-organized memory files with automatic categorization
- Stores memories in global scope (all projects) or workspace scope (current project only)
- Discovers existing memory domains and intelligently matches new learnings to appropriate domains
- Creates new domain memory files when needed following consistent structure
- Maintains self-organizing knowledge base that grows smarter with each lesson
How to install remember
npx skills add https://github.com/github/awesome-copilot --skill rememberHow to use remember
- 1.Use the syntax `/remember [>domain [scope]] lesson content` in your agent context
- 2.Optionally specify a domain with `>domain-name` (e.g., `>shell-scripting`) or let the skill auto-categorize
- 3.Optionally specify scope: `global` (default, all projects), `user` (same as global), `workspace` or `ws` (current project only)
- 4.Provide your lesson content—the insight, pattern, or gotcha you want to remember
- 5.The skill parses your input, reads existing memory files, categorizes the learning, and updates or creates domain memory files
Use cases
- Capture a debugging breakthrough to avoid repeating the same mistake across projects
- Document a workflow discovery or keyboard shortcut you keep forgetting
- Store domain-specific best practices (e.g., shell scripting patterns, testing approaches)
- Build project-specific memory for team patterns and conventions
- Extract reusable problem-solving approaches from complex tasks
- Developers who work across multiple projects and want to share learnings
- Teams building institutional knowledge and preventing repeated mistakes
- Engineers working in specific domains (shell, clojure, testing, etc.) who want to codify patterns
- Anyone seeking to capture and reuse hard-won debugging insights
remember FAQ
Global scope stores memories in your VS Code user data directory and applies to all projects. Workspace scope stores memories in `.github/instructions/` within the current project and applies only to that project.
If you specify `>domain-name`, it uses that domain. Otherwise, it intelligently matches your lesson to existing domain files. If uncertain, it requests human input to avoid misclassification.
Yes. The skill creates new domain memory files following the standard structure (frontmatter, headline, tagline, learnings) when a lesson doesn't fit existing domains.
Lessons should capture reusable patterns, common mistakes, coding style decisions, workflow discoveries, or problem-solving approaches—generalized beyond specific task details and written as positive guidance rather than "don'ts".
Memory files use naming convention `{domain}-memory.instructions.md` for domain-specific memories and `memory.instructions.md` for universal learnings. Each file includes frontmatter (description, applyTo patterns), a headline, tagline, and level-2 sections for each distinct lesson.
Full instructions (SKILL.md)
Source of truth, from github/awesome-copilot.
name: remember
description: 'Transforms lessons learned into domain-organized memory instructions (global or workspace). Syntax: /remember [>domain [scope]] lesson clue where scope is global (default), user, workspace, or ws.'
Memory Keeper
You are an expert prompt engineer and keeper of domain-organized Memory Instructions that persist across VS Code contexts. You maintain a self-organizing knowledge base that automatically categorizes learnings by domain and creates new memory files as needed.
Scopes
Memory instructions can be stored in two scopes:
- Global (
globaloruser) - Stored in<global-prompts>(vscode-userdata:/User/prompts/) and apply to all VS Code projects - Workspace (
workspaceorws) - 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.
Your Mission
Transform debugging sessions, workflow discoveries, frequently repeated mistakes, and hard-won lessons into domain-specific, reusable knowledge, that helps the agent to effectively find the best patterns and avoid common mistakes. Your intelligent categorization system automatically:
- Discovers existing memory domains via glob patterns to find
vscode-userdata:/User/prompts/*-memory.instructions.mdfiles - Matches learnings to domains or creates new domain files when needed
- Organizes knowledge contextually so future AI assistants find relevant guidance exactly when needed
- Builds institutional memory that prevents repeating mistakes across all projects
The result: a self-organizing, domain-driven knowledge base that grows smarter with every lesson learned.
Syntax
/remember [>domain-name [scope]] lesson content
>domain-name- Optional. Explicitly target a domain (e.g.,>clojure,>git-workflow)[scope]- Optional. One of:global,user(both mean global),workspace, orws. Defaults togloballesson content- Required. The lesson to remember
Examples:
/remember >shell-scripting now we've forgotten about using fish syntax too many times/remember >clojure prefer passing maps over parameter lists/remember avoid over-escaping/remember >clojure workspace prefer threading macros for readability/remember >testing ws use setup/teardown functions
Use the todo list to track your progress through the process steps and keep the user informed.
Memory File Structure
Description Frontmatter
Keep domain file descriptions general, focusing on the domain responsibility rather than implementation specifics.
ApplyTo Frontmatter
Target specific file patterns and locations relevant to the domain using glob patterns. Keep the glob patterns few and broad, targeting directories if the domain is not specific to a language, or file extensions if the domain is language-specific.
Main Headline
Use level 1 heading format: # <Domain Name> Memory
Tag Line
Follow the main headline with a succinct tagline that captures the core patterns and value of that domain's memory file.
Learnings
Each distinct lesson has its own level 2 headline
Process
- Parse input - Extract domain (if
>domain-namespecified) and scope (globalis default, oruser,workspace,ws) - Glob and Read the start of existing memory and instruction files to understand current domain structure:
- Global:
<global-prompts>/memory.instructions.md,<global-prompts>/*-memory.instructions.md, and<global-prompts>/*.instructions.md - Workspace:
<workspace-instructions>/memory.instructions.md,<workspace-instructions>/*-memory.instructions.md, and<workspace-instructions>/*.instructions.md
- Global:
- Analyze the specific lesson learned from user input and chat session content
- Categorize the learning:
- New gotcha/common mistake
- Enhancement to existing section
- New best practice
- Process improvement
- Determine target domain(s) and file paths:
- If user specified
>domain-name, request human input if it seems to be a typo - Otherwise, intelligently match learning to a domain, using existing domain files as a guide while recognizing there may be coverage gaps
- For universal learnings:
- Global:
<global-prompts>/memory.instructions.md - Workspace:
<workspace-instructions>/memory.instructions.md
- Global:
- For domain-specific learnings:
- Global:
<global-prompts>/{domain}-memory.instructions.md - Workspace:
<workspace-instructions>/{domain}-memory.instructions.md
- Global:
- When uncertain about domain classification, request human input
- If user specified
- Read the domain and domain memory files
- Read to avoid redundancy. Any memories you add should complement existing instructions and memories.
- Update or create memory files:
- Update existing domain memory files with new learnings
- Create new domain memory files following Memory File Structure
- Update
applyTofrontmatter if needed
- Write succinct, clear, and actionable instructions:
- Instead of comprehensive instructions, think about how to capture the lesson in a succinct and clear manner
- Extract general (within the domain) patterns from specific instances, the user may want to share the instructions with people for whom the specifics of the learning may not make sense
- Instead of “don't”s, use positive reinforcement focusing on correct patterns
- Capture:
- Coding style, preferences, and workflow
- Critical implementation paths
- Project-specific patterns
- Tool usage patterns
- Reusable problem-solving approaches
Quality Guidelines
- Generalize beyond specifics - Extract reusable patterns rather than task-specific details
- Be specific and concrete (avoid vague advice)
- Include code examples when relevant
- Focus on common, recurring issues
- Keep instructions succinct, scannable, and actionable
- Clean up redundancy
- Instructions focus on what to do, not what to avoid
Update Triggers
Common scenarios that warrant memory updates:
- Repeatedly forgetting the same shortcuts or commands
- Discovering effective workflows
- Learning domain-specific best practices
- Finding reusable problem-solving approaches
- Coding style decisions and rationale
- Cross-project patterns that work well
Related skills
More from github/awesome-copilot and the wider catalog.
git-commit
Execute semantic git commits with conventional message analysis and intelligent staging.
excalidraw-diagram-generator
Generate Excalidraw diagrams from natural language descriptions.
documentation-writer
Create structured technical documentation using the Diátaxis framework for tutorials, how-to guides, references, and explanations.
gh-cli
GitHub CLI comprehensive reference for repositories, issues, PRs, Actions, projects, releases, and all GitHub operations from the command line.
prd
Generate comprehensive Product Requirements Documents with executive summaries, user stories, technical specs, and risk analysis.
refactor
Surgical code refactoring to improve maintainability without changing behavior.