| name | memory-augmented-dev |
| description | Development with persistent memory checks and automatic logging |
Memory-Augmented Development
Purpose
Ensures every development task leverages past learnings and contributes to organizational memory. Search before implementing, document after completing.
When This Activates
- User asks to implement a feature
- User requests bug fixes or refactoring
- Any coding task that could benefit from past patterns
- Keywords: "implement", "build", "fix", "refactor", "add feature"
Instructions
Phase 1: Research (Before Implementation)
-
Semantic Search for Patterns
Use search-enhanced to find relevant past work:
search-enhanced(
query: "<feature area> implementation patterns",
filters: {type: "code"}
)
-
Review Past Decisions
list-memories-by-tag(["<feature-area>", "architecture", "decisions"])
-
Check Recent Context
get-recent-context(project: "<current-project>")
-
Analyze Retrieved Memories
- What patterns were successful?
- What mistakes were made?
- What decisions inform this work?
Phase 2: Implementation
-
Apply Patterns Found
- Use established code patterns
- Follow past architectural decisions
- Avoid documented mistakes
-
Note Deviations
- If deviating from patterns, document why
- Prepare justification for memory storage
Phase 3: Documentation (After Implementation)
-
Store Memory with Rich Metadata
store-dev-memory({
type: "code",
content: "Detailed description of implementation",
project: "<project-name>",
tags: ["<feature>", "<technology>", "<pattern-used>"],
metadata: {
implementation_status: "complete",
key_decisions: ["Decision 1", "Decision 2"],
files_created: ["file1.py", "file2.py"],
files_modified: ["existing.py"],
code_changes: "Summary of major changes",
dependencies_added: ["package1", "package2"],
testing_notes: "How to test this"
},
relationships: [
{
memory_id: "<related-memory-hash>",
type: "builds_on"
}
]
})
-
Store Decisions Separately
store-dev-memory({
type: "decision",
content: "Why we chose approach X over Y",
project: "<project-name>",
tags: ["decision", "<topic>"],
metadata: {
alternatives_considered: ["Approach Y", "Approach Z"],
decision_rationale: "Explanation",
decision_date: "<date>",
who_decided: "<name>"
}
})
Tool Reference
search-enhanced
- Purpose: Semantic search across all memories
- Parameters:
query (string): Search terms
filters (object): Optional filters
type: "code" | "decision" | "conversation" | "reference"
tags: Array of tags to match
project: Project name
date_from, date_to: Date range
limit (int): Max results (default: 10)
- Returns: Array of memories with similarity scores
- Example:
search-enhanced("authentication JWT patterns", filters={type: "code"})
list-memories-by-tag
- Purpose: Get all memories with specific tags
- Parameters:
tags (array): Tags to search for
project (string): Optional project filter
- Returns: Array of memories
- Example:
list-memories-by-tag(["authentication", "security"])
get-recent-context
- Purpose: Get recent memories for session continuity
- Parameters:
project (string): Project name
limit (int): Number of recent items (default: 10)
- Returns: Array of recent memories, ordered by date
- Example:
get-recent-context(project: "hrdag-api")
store-dev-memory
- Purpose: Store new memory with full metadata
- Parameters: See Phase 3 examples above
- Returns: Memory ID (hash)
- Example: See detailed examples below
get-dev-memory
- Purpose: Retrieve specific memory by ID
- Parameters:
memory_id (string): Memory hash ID
- Returns: Full memory object
- Example:
get-dev-memory(memory_id: "abc123def456")
Examples
Example 1: Implementing Authentication
User says: "Add JWT authentication to the API"
You do:
-
Research
search-enhanced("authentication JWT patterns", filters={type: "code"})
list-memories-by-tag(["authentication", "security"])
Result: Found memory showing JWT implementation from 3 months ago
-
Implement
Apply the JWT pattern found, using similar code structure
-
Document
store-dev-memory({
type: "code",
content: "Implemented JWT authentication with refresh tokens for API v2",
project: "hrdag-api",
tags: ["authentication", "jwt", "security", "api-v2"],
metadata: {
implementation_status: "complete",
key_decisions: [
"Used JWT over session-based auth for stateless API",
"Refresh token rotation every 7 days"
],
files_created: ["auth/jwt_manager.py", "auth/middleware.py"],
files_modified: ["api/routes.py", "config/settings.py"],
dependencies_added: ["PyJWT==2.8.0"],
testing_notes: "Test with curl scripts in tests/auth/"
},
relationships: [{
memory_id: "<hash-of-3-month-old-auth-memory>",
type: "builds_on"
}]
})
Example 2: Fixing Data Recovery Bug
User says: "The zip disk recovery keeps failing on bad sectors"
You do:
-
Research
search-enhanced("zip disk recovery errors", filters={type: "code"})
list-memories-by-tag(["data-recovery", "bugs", "zip-disk"])
Result: Found memory about ddrescue parameters and common failures
-
Implement
Applied lessons about proper ddrescue flags and error handling
-
Document
store-dev-memory({
type: "code",
content: "Fixed zip disk recovery by adjusting ddrescue retry parameters",
project: "vintage-data-recovery",
tags: ["data-recovery", "zip-disk", "bugfix", "ddrescue"],
metadata: {
implementation_status: "complete",
key_decisions: [
"Increased retry count from 3 to 10 for bad sectors",
"Added sector size specification for old media"
],
files_modified: ["recovery_scripts/zip_disk_reader.sh"],
testing_notes: "Tested on 5 failing disks, 3 now readable"
},
relationships: [{
memory_id: "<hash-of-ddrescue-lessons>",
type: "applies"
}]
})
Rules
- ✅ Always search memory before implementing - Check for patterns first
- ✅ Store learnings after every task - Every task generates knowledge
- ✅ Be specific in descriptions - Detail what was actually done
- ✅ Link related memories - Create relationships to related work
- ✅ Include key decisions - Future you needs to know why
- ✅ Tag appropriately - Use consistent, searchable tags
- ❌ Don't skip research phase - No matter how simple the task seems
- ❌ Don't forget to store - Even small fixes generate learnings
- ❌ Don't store generic descriptions - "Fixed bug" isn't useful
- ❌ Don't skip relationships - Context comes from connections
- ❌ Don't omit metadata - Files, decisions, tests matter
Success Metrics
- Every feature implementation references at least 1 past memory
- Every completed task stores at least 1 new memory
- Memory retrieval takes <500ms
- 90% of new implementations find relevant patterns in memory