Memory Capture
Help users capture important decisions, preferences, and learnings to their memories file for future reference.
When to Use
Invoke this skill when the user wants to:
- •Record a decision they made
- •Save a preference for future sessions
- •Document something they learned
- •Create a note about the project or codebase
Memory Locations
- •Personal memories:
~/.factory/memories.md- preferences that apply across all projects - •Project memories:
.factory/memories.md- decisions specific to the current project
Capture Process
Step 1: Understand What to Remember
Ask the user to clarify:
- •What specifically should be remembered?
- •Is this a personal preference or project-specific?
- •What's the context (why is this worth remembering)?
Step 2: Categorize the Memory
Common categories:
For Personal Memories:
- •Code style preferences
- •Tool preferences
- •Communication style
- •Workflow patterns
For Project Memories:
- •Architecture decisions
- •Design choices
- •Domain knowledge
- •Known issues
- •Team conventions
Step 3: Format the Entry
Use this format:
### [Date]: [Short Title] **Category**: [Decision/Preference/Learning/Context] **Summary**: [One sentence description] **Details**: [Full explanation if needed] **Reasoning**: [Why this matters - optional]
For simpler entries:
- [Date] [Category]: [Description]
Step 4: Append to Memories File
Add the formatted entry to the appropriate memories file.
If the file doesn't exist, create it with proper structure:
For Personal (~/.factory/memories.md):
# My Development Memory ## Preferences [preferences entries] ## Learnings [learning entries]
For Project (.factory/memories.md):
# Project Memory ## Decisions [decision entries] ## Context [context entries] ## Known Issues [issue entries]
Example Captures
Architecture Decision
User says: "Remember that we chose PostgreSQL over MongoDB for this project"
Capture as:
### 2024-02-15: Database Selection **Category**: Architecture Decision **Summary**: Chose PostgreSQL over MongoDB for the primary database **Reasoning**: - Strong relational data model fits our domain - ACID compliance needed for financial transactions - Team has more PostgreSQL experience - Better tooling for complex queries and reporting
Personal Preference
User says: "I prefer early returns over nested conditionals"
Capture as:
## Code Style Preferences - [2024-02-15] I prefer early returns over nested conditionals for better readability
Domain Knowledge
User says: "Note that free tier users are limited to 3 team members"
Capture as:
### Business Rules - Free tier: Limited to 3 team members - Pro tier: Up to 20 team members - Enterprise: Unlimited team members
Technical Context
User says: "The auth service has a known issue with refresh tokens (#234)"
Capture as:
## Known Issues - [ ] Auth refresh token race condition (#234) - Can cause session loss during concurrent requests
Tips
- •Keep entries scannable - Use headers and bullet points
- •Include dates - Context matters, decisions may change
- •Note the "why" - Future you will want to know
- •Link to issues/PRs - For traceability
- •Review periodically - Archive outdated memories
Alternative Implementations
This skill is one of three ways to capture memories. Choose based on your workflow:
Option 1: This Skill (Interactive)
Droid invokes this skill when you ask to remember something. Best when you want help categorizing and formatting memories.
Usage: "Remember that we chose PostgreSQL for ACID compliance"
Option 2: Hook (Automatic)
A UserPromptSubmit hook that triggers on phrases like "remember this:". Best for zero-friction capture.
See the Memory Management guide for the hook implementation.
Usage: "Remember this: we use the repository pattern for data access"
Option 3: Custom Slash Command (Manual)
A custom slash command for quick, consistent capture.
Create ~/.factory/commands/remember.md:
--- description: Save a memory to your memories file argument-hint: <what to remember> --- Add this to my memories file (~/.factory/memories.md): $ARGUMENTS Format it appropriately based on whether it's a preference, decision, or learning. Include today's date.
Usage: /remember we chose PostgreSQL for ACID compliance
Comparison
| Approach | Trigger | Best For |
|---|---|---|
| Skill | Droid decides | Interactive categorization |
| Hook | Automatic on keywords | Zero-friction capture |
| Slash Command | You type /remember | Quick manual capture |