--- name: memory-capture description: Capture and organize memories, decisions, and learnings to a memories.md file. Use when you want to save context for future sessions. --- # 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: ```markdown ### [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: ```markdown - [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):** ```markdown # My Development Memory ## Preferences [preferences entries] ## Learnings [learning entries] ``` **For Project (.factory/memories.md):** ```markdown # 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: ```markdown ### 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: ```markdown ## 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: ```markdown ### 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: ```markdown ## Known Issues - [ ] Auth refresh token race condition (#234) - Can cause session loss during concurrent requests ``` ## Tips 1. **Keep entries scannable** - Use headers and bullet points 2. **Include dates** - Context matters, decisions may change 3. **Note the "why"** - Future you will want to know 4. **Link to issues/PRs** - For traceability 5. **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](/cli/configuration/hooks-guide) that triggers on phrases like "remember this:". Best for zero-friction capture. See the [Memory Management guide](/guides/power-user/memory-management#automatic-memory-capture) 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](/cli/configuration/custom-slash-commands) for quick, consistent capture. Create `~/.factory/commands/remember.md`: ```markdown --- description: Save a memory to your memories file argument-hint: --- 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 |