Marketplace

using-forgetful-memory

PROACTIVELY query Forgetful MCP (mcp__forgetful__* tools) when starting work on any project, when user references past decisions or patterns, when implementing features that may have been solved before, or when needing context about preferences. Save important decisions, patterns, and architectural insights to memory.

$ 安裝

git clone https://github.com/ScottRBK/context-hub-plugin /tmp/context-hub-plugin && cp -r /tmp/context-hub-plugin/skills/using-forgetful-memory ~/.claude/skills/context-hub-plugin

// tip: Run this command in your terminal to install the skill


name: using-forgetful-memory description: PROACTIVELY query Forgetful MCP (mcp__forgetful__* tools) when starting work on any project, when user references past decisions or patterns, when implementing features that may have been solved before, or when needing context about preferences. Save important decisions, patterns, and architectural insights to memory.

Using Forgetful Memory

Forgetful is a semantic memory system using Zettelkasten (atomic note) principles. This skill guides effective memory usage.

When to Query Memory

Query memory proactively when:

  • Starting work on a project (check for existing context)
  • User references past work, decisions, or discussions
  • Encountering a problem that may have been solved before
  • Implementing patterns that may already be documented
  • Needing context about preferences or approaches

Use execute_forgetful_tool("query_memory", {...}) with:

  • query: Natural language search terms
  • query_context: Why you're searching (improves ranking)
  • include_links: true (to see connected knowledge)

Getting Recent Memories for a Project

To see what's been recorded recently for a specific project:

execute_forgetful_tool("get_recent_memories", {
  "limit": 10,
  "project_ids": [PROJECT_ID]
})

This is useful when:

  • Starting a session on a project you haven't worked on recently
  • Reviewing what was captured in previous conversations
  • Getting a quick overview of project knowledge

When to Create Memory

Create memories for knowledge worth preserving:

  • Important decisions with rationale (importance 8-9)
  • Technical patterns or approaches (importance 7-8)
  • Architectural choices (importance 9-10)
  • Preferences and workflows (importance 8-9)
  • Project milestones (importance 6-7)
  • Solutions to non-trivial problems (importance 7-8)

Do NOT create memories for:

  • Temporary context (current file paths, transient issues)
  • Common knowledge available elsewhere
  • Trivial or throwaway information
  • Content that changes frequently

Atomic Memory Principles

Each memory must pass the atomicity test:

  1. Can you understand it at first glance?
  2. Can you title it in 5-50 words?
  3. Does it represent ONE concept/fact/decision?

Constraints

FieldLimitGuidance
Title200 charsShort, searchable phrase
Content2000 charsSingle concept (~300-400 words)
Context500 charsWHY this matters
Keywords10 maxFor semantic clustering
Tags10 maxFor categorization

Importance Scoring

ScoreUse For
9-10Personal facts, foundational patterns
8-9Critical solutions, major decisions
7-8Useful patterns, preferences
6-7Milestones, specific solutions
5-6Minor context (use sparingly)

Project Discovery

Before creating memories, find the correct project:

  1. Get current repo - Check the git remote:

    git remote get-url origin
    

    Extract the repo identifier (e.g., ScottRBK/forgetful-plugin)

  2. Search by repo - Filter projects directly:

    execute_forgetful_tool("list_projects", {"repo_name": "owner/repo"})
    
  3. Use the project_id - Never assume project 1 - always discover first

If no project exists for the current repo:

  • Ask user if they want to create one (with repo_name set)
  • Or scope the memory without a project_id (global memory)

Query Before Create

Always check for existing memories before creating:

execute_forgetful_tool("query_memory", {
  "query": "<topic of potential new memory>",
  "query_context": "Checking for existing memories before creating",
  "k": 5
})

If similar memory exists:

  • Update it instead of creating duplicate
  • Or mark it obsolete if superseded
  • Or link new memory to existing one

Announcing Memory Operations

When creating a memory (importance >= 7), announce:

💾 Saved to memory: "[title]"
   Tags: [tags]
   Related: [auto-linked memory titles]

When querying, summarize:

Found X memories about [topic]:
- [Memory 1]: [brief insight]
- [Memory 2]: [brief insight]

Content That's Too Long

If content exceeds 2000 chars:

  1. Use create_document for full content
  2. Extract 3-5 atomic memories as entry points
  3. Link memories to document via document_ids

Example: Architecture overview (document) → separate memories for each layer/decision.


Tool Quick Reference

Common tools you can call directly via execute_forgetful_tool(tool_name, args):

Memory Tools

ToolRequired ParamsDescription
query_memoryquery, query_contextSemantic search
create_memorytitle, content, context, keywords, tags, importanceStore atomic memory
get_memorymemory_idGet full memory details
update_memorymemory_idPATCH update fields
link_memoriesmemory_id, related_idsManual bidirectional linking
mark_memory_obsoletememory_id, reasonSoft delete with audit
get_recent_memories(none)Recent memories list

Project Tools

ToolRequired ParamsDescription
list_projects(none)List all projects
create_projectname, description, project_typeCreate project container
get_projectproject_idGet project details

Entity Tools

ToolRequired ParamsDescription
create_entityname, entity_typeCreate org/person/device
search_entitiesqueryText search by name/aka
link_entity_to_memoryentity_id, memory_idLink entity↔memory
get_entity_memoriesentity_idAll memories for entity
create_entity_relationshipsource_entity_id, target_entity_id, relationship_typeKnowledge graph edge

Document & Code Artifact Tools

ToolRequired ParamsDescription
create_documenttitle, description, contentLong-form content
create_code_artifacttitle, description, code, languageReusable code

Full schemas: See TOOL_REFERENCE.md for complete parameter details and examples.