Guidance for using Forgetful semantic memory effectively. Applies Zettelkasten atomic memory principles. Use when deciding whether to query or create memories, structuring memory content, or understanding memory importance scoring.
Guides effective usage of the Forgetful semantic memory system for querying, creating, and managing atomic knowledge notes.
/plugin marketplace add rjmurillo/ai-agents/plugin install project-toolkit@ai-agentsThis skill inherits all available tools. When active, it can use any tool Claude has access to.
Forgetful is a semantic memory system using Zettelkasten (atomic note) principles. This skill guides effective memory usage.
Query memory proactively when:
Use execute_forgetful_tool("query_memory", {...}) with:
query: Natural language search termsquery_context: Why you're searching (improves ranking)include_links: true (to see connected knowledge)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:
Create memories for knowledge worth preserving:
Do NOT create memories for:
Each memory must pass the atomicity test:
| Field | Limit | Guidance |
|---|---|---|
| Title | 200 chars | Short, searchable phrase |
| Content | 2000 chars | Single concept (~300-400 words) |
| Context | 500 chars | WHY this matters |
| Keywords | 10 max | For semantic clustering |
| Tags | 10 max | For categorization |
| Score | Use For |
|---|---|
| 9-10 | Personal facts, foundational patterns |
| 8-9 | Critical solutions, major decisions |
| 7-8 | Useful patterns, preferences |
| 6-7 | Milestones, specific solutions |
| 5-6 | Minor context (use sparingly) |
Before creating memories, find the correct project:
Get current repo - Check the git remote:
git remote get-url origin
Extract the repo identifier (e.g., ScottRBK/forgetful-plugin)
Search by repo - Filter projects directly:
execute_forgetful_tool("list_projects", {"repo_name": "owner/repo"})
Use the project_id - Never assume project 1 - always discover first
If no project exists for the current repo:
repo_name set)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:
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]
If content exceeds 2000 chars:
create_document for full contentdocument_idsExample: Architecture overview (document) → separate memories for each layer/decision.
| Trigger Phrase | Operation |
|---|---|
how do I create a memory | Memory creation workflow |
how do I search memories | query_memory with semantic search |
how do I update a memory | update_memory with PATCH semantics |
how do I link memories together | link_memories bidirectional linking |
what importance score should I use | Importance scoring guide |
Use this skill when:
Use curating-memories instead when:
Use exploring-knowledge-graph instead when:
| Avoid | Why | Instead |
|---|---|---|
| Creating without querying first | Produces duplicates | Always query_memory before create_memory |
| Content over 2000 chars | Exceeds field limit, breaks atomicity | Use create_document for long content, extract atomic memories |
| Importance below 6 | Pollutes search results with noise | Only store knowledge worth preserving |
| Assuming project_id is 1 | Projects vary per repository | Always discover via list_projects first |
| Storing transient context | Clutters knowledge base | Only store durable decisions and patterns |
After memory operations:
Common tools you can call directly via execute_forgetful_tool(tool_name, args):
| Tool | Required Params | Description |
|---|---|---|
query_memory | query, query_context | Semantic search |
create_memory | title, content, context, keywords, tags, importance | Store atomic memory |
get_memory | memory_id | Get full memory details |
update_memory | memory_id | PATCH update fields |
link_memories | memory_id, related_ids | Manual bidirectional linking |
mark_memory_obsolete | memory_id, reason | Soft delete with audit |
get_recent_memories | (none) | Recent memories list |
| Tool | Required Params | Description |
|---|---|---|
list_projects | (none) | List all projects |
create_project | name, description, project_type | Create project container |
get_project | project_id | Get project details |
| Tool | Required Params | Description |
|---|---|---|
create_entity | name, entity_type | Create org/person/device |
search_entities | query | Text search by name/aka |
link_entity_to_memory | entity_id, memory_id | Link entity↔memory |
get_entity_memories | entity_id | All memories for entity |
create_entity_relationship | source_entity_id, target_entity_id, relationship_type | Knowledge graph edge |
| Tool | Required Params | Description |
|---|---|---|
create_document | title, description, content | Long-form content |
create_code_artifact | title, description, code, language | Reusable code |
Full schemas: See TOOL_REFERENCE.md for complete parameter details and examples.
Activates when the user asks about AI prompts, needs prompt templates, wants to search for prompts, or mentions prompts.chat. Use for discovering, retrieving, and improving prompts.
Search, retrieve, and install Agent Skills from the prompts.chat registry using MCP tools. Use when the user asks to find skills, browse skill catalogs, install a skill for Claude, or extend Claude's capabilities with reusable AI agent components.
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.