Store universal coding patterns into vector database. Auto-invokes after difficult tasks with broadly-applicable lessons. Trigger with "--store" or when user expresses frustration (strong learning signals). Uses true two-stage retrieval with MCP server v2.
Scanned 6/4/2026
Install via CLI
openskills install majiayu000/claude-skill-registry---
name: coder-memory-store
description: Store universal coding patterns into vector database. Auto-invokes after difficult tasks with broadly-applicable lessons. Trigger with "--store" or when user expresses frustration (strong learning signals). Uses true two-stage retrieval with MCP server v2.
---
## ⚠️ MANDATORY: Use Task Tool (Sub-Agent)
**NEVER call memory MCP tools directly!** Use Task tool with `subagent_type: "general-purpose"` to keep main context clean.
---
## CRITICAL: When NOT to Store Memory
**Skip storing obvious tasks** - simple commands, basic operations, well-documented patterns, routine fixes.
**Only store hard lessons** - non-obvious bugs, surprising patterns, failures, universal insights, significant struggles.
**Rule**: If it's in docs or Google-able in 30 seconds, skip. Memory is for hard-won lessons.
---
# Embedded Role Configuration
```yaml
# Embedded configuration - no external files needed
role_collections:
global:
universal:
name: "universal-patterns"
description: "Search here for cross-domain patterns"
query_hints: ["general", "architecture", "debugging", "performance"]
backend:
name: "backend-patterns"
description: "Backend engineering patterns"
query_hints: ["api", "database", "auth", "server", "microservices"]
frontend:
name: "frontend-patterns"
description: "Frontend engineering patterns"
query_hints: ["react", "vue", "component", "ui", "state"]
quant:
name: "quant-patterns"
description: "Quantitative finance patterns"
query_hints: ["trading", "backtest", "risk", "portfolio"]
devops:
name: "devops-patterns"
description: "DevOps and infrastructure patterns"
query_hints: ["docker", "kubernetes", "ci-cd", "terraform"]
ai:
name: "ai-patterns"
description: "AI and machine learning patterns"
query_hints: ["model", "training", "neural", "llm", "embedding"]
security:
name: "security-patterns"
description: "Security engineering patterns"
query_hints: ["vulnerability", "encryption", "auth", "pentest"]
mobile:
name: "mobile-patterns"
description: "Mobile development patterns"
query_hints: ["ios", "android", "react-native", "flutter"]
pm:
name: "pm-patterns"
description: "Project management and coordination patterns"
query_hints: ["coordination", "delegation", "team", "sprint", "planning", "reporting"]
# Role detection from task context
role_detection:
patterns:
backend: "api|endpoint|database|server|auth|rest|graphql"
frontend: "react|vue|component|ui|dom|css|state"
quant: "trading|backtest|portfolio|risk|market"
devops: "deploy|docker|kubernetes|ci|cd"
ai: "model|training|neural|embedding|llm"
security: "vulnerability|encryption|pentest|jwt"
mobile: "ios|android|native|flutter|swift"
pm: "project|coordination|delegation|team|sprint|phase|reporting|stakeholder"
multi_role_strategy: "search_all" # When multiple roles detected
default_role: "universal" # When no clear role
```
You can create new role if you think it worth it. But be EXTREMELY CONSERVATIVE when creating new roles - when you create a new one, add it in this very doc (~/.claude/skills/coder-memory-recall/SKILL.md and ~/.claude/skills/coder-memory-store/SKILL.md).
## MCP Server Tools
**CRITICAL**: Use tools from the **memory MCP server**:
- `search_memory` - Search and get previews
- `get_memory` - Get full content by ID
- `batch_get_memories` - Get multiple full contents
- `store_memory` - Store new memory
- `update_memory` - Update existing memory
- `delete_memory` - Delete memory
- `list_collections` - List all collections
## PHASE 1: Extract Insights
Analyze conversation for **0-3 insights** (usually 0-1). Be selective.
### Classification
**Episodic**: Concrete debugging/implementation story
Example: "React useEffect dependency array bug caused stale closure"
**Procedural**: Repeatable workflow or process
Example: "Zero-downtime database migration: 1) Create script, 2) Test staging, 3) Run in transaction, 4) Monitor"
**Semantic**: Abstract principle or pattern
Example: "Distributed systems need randomness to avoid synchronization disasters"
### Criteria (ALL must be true)
1. **Non-obvious**: Not well-documented standard practice
❌ "Use try-catch for error handling"
✅ "useCallback without deps array causes stale closures"
2. **Universal**: Applies beyond specific project/framework
❌ "Config for our Jenkins pipeline"
✅ "Blue-green deployments reduce downtime risk"
3. **Actionable**: Provides concrete guidance
❌ "Performance is important"
✅ "Use debouncing (300ms) for autocomplete inputs to reduce API calls"
4. **Valuable**: Would help future similar situations
❌ "Fixed typo in variable name"
✅ "Binary search debugging: disable half the features to isolate bug source"
### Role Detection
```python
# Scan task context for keywords
context = "Built REST API with JWT authentication and rate limiting"
# Detected keywords: api, rest, authentication, jwt, rate
# → Role: "backend"
# If multiple roles or unclear → "universal"
```
## PHASE 2: Search for Similar (Two-Stage)
### Format Memory First
```
**Title:** API Rate Limiting with Exponential Backoff
**Description:** Exponential backoff with jitter prevents thundering herd.
**Content:** When implementing rate limiting for API calls, simple retry logic caused thundering herd problem. Tried fixed delays but all clients retry simultaneously. Solution: exponential backoff (2^n seconds) with random jitter (±0-30%). This spreads retry attempts preventing server overload. Key lesson: distributed systems need randomness to avoid synchronization.
**Tags:** #backend #api #rate-limiting #success
```
### Stage 1: Search Previews
Use `search_memory` tool (from memory MCP server) with the full formatted memory text as query and correct memory_level (global, project, etc.), default: `memory_level="global"`. Use the full text (not just title) for better semantic matching.
**Why full text as query?** Better semantic matching captures full context.
### Stage 2: Intelligent Preview Analysis
Review previews to decide consolidation action:
**High similarity** → Likely duplicate
→ Retrieve full content for MERGE decision
**Medium similarity** → Possibly related
→ Retrieve full content for UPDATE decision
**Multiple episodic** → Pattern emerges
→ Retrieve all for GENERALIZE decision
**Low similarity** → Different topic
→ CREATE new memory (no retrieval needed)
Use `batch_get_memories` tool (from memory MCP server) with relevant doc_ids and correct memory_level (global, project, etc.), default: `memory_level="global"` to retrieve full content for consolidation candidates.
## PHASE 3: Intelligent Consolidation
### Decision Framework (No Rigid Thresholds)
| Analysis | Signal | Action |
|----------|--------|--------|
| **Near-identical** | Same problem, same solution, same title | **MERGE** - Combine best parts, delete duplicate |
| **Related topic** | Complementary info, overlapping tags | **UPDATE** - Enhance existing with new insights |
| **Pattern emerges** | 2+ episodic show common pattern | **GENERALIZE** - Extract semantic pattern |
| **Different** | Orthogonal concept | **CREATE** - New memory |
## PHASE 4: Store Memory
### Final Storage
Use `store_memory` tool (from memory MCP server) with the final document, metadata, and `memory_level="global"`. Log the result doc_id and action taken.
**CRITICAL - Required metadata fields:**
```json
{
"memory_type": "episodic|procedural|semantic",
"role": "backend|frontend|ai|devops|...",
"title": "Short descriptive title",
"description": "One-line summary for search previews - REQUIRED!",
"tags": ["#tag1", "#tag2"],
"confidence": "high|medium|low",
"frequency": 1
}
```
**Why `description` is critical:** The `search_memory` tool returns previews with title + description. If description is missing, search results show "No description" making it impossible to identify relevant memories.
### Trigger Words for Strong Learning Signals
When user expresses frustration (trigger words), this is a **critical learning moment**:
**Profanity**: fuck, shit, damn, wtf, ffs
**Frustration**: moron, idiot, stupid, garbage, useless, terrible
**Emotional**: hate, angry, frustrated, "this is ridiculous", "you're not listening"
**When detected**:
1. Recognize as high-value learning signal
2. Store as episodic memory with full context of failure
3. Tag with #failure and #strong-signal
4. Prioritize over routine successes
---
## Tool Usage
See top of this document - **MUST use Task tool (sub-agent)** to avoid context pollution.
No comments yet. Be the first to comment!