smithery/hongbietcode

coder-memory-store

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.

Installation

$ npx skills add smithery/hongbietcode --skill coder-memory-store

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smithery/hongbietcode.

npx skills add smithery/hongbietcode

Browse all from smithery/hongbietcode

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Skill metadata

Parsed from SKILL.md frontmatter.

Declared agents claude-code

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 8,804 B
  • docs SUMMARY.md 282 B

History

  1. First recorded snapshot · 0 installs

SKILL.md

⚠️ 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

# 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
  • batchgetmemories - 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"

  1. Universal: Applies beyond specific project/framework

❌ "Config for our Jenkins pipeline" ✅ "Blue-green deployments reduce downtime risk"

  1. Actionable: Provides concrete guidance

❌ "Performance is important" ✅ "Use debouncing (300ms) for autocomplete inputs to reduce API calls"

  1. Valuable: Would help future similar situations

❌ "Fixed typo in variable name" ✅ "Binary search debugging: disable half the features to isolate bug source"

Role Detection

# 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 searchmemory tool (from memory MCP server) with the full formatted memory text as query and correct memorylevel (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 batchgetmemories tool (from memory MCP server) with relevant docids and correct memorylevel (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 storememory tool (from memory MCP server) with the final document, metadata, and memorylevel="global". Log the result doc_id and action taken.

CRITICAL - Required metadata fields:

{
  "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.