From project-toolkit
Guides curation of memories: update outdated content, mark obsolete entries, link related knowledge, deduplicate duplicates. Use when refining knowledge bases or connecting project info.
npx claudepluginhub rjmurillo/ai-agents --plugin project-toolkitThis skill uses the workspace's default tool permissions.
Active curation keeps the knowledge base accurate and connected. Outdated memories pollute search results and reduce effectiveness.
Generates design tokens/docs from CSS/Tailwind/styled-components codebases, audits visual consistency across 10 dimensions, detects AI slop in UI.
Records polished WebM UI demo videos of web apps using Playwright with cursor overlay, natural pacing, and three-phase scripting. Activates for demo, walkthrough, screen recording, or tutorial requests.
Delivers idiomatic Kotlin patterns for null safety, immutability, sealed classes, coroutines, Flows, extensions, DSL builders, and Gradle DSL. Use when writing, reviewing, refactoring, or designing Kotlin code.
Active curation keeps the knowledge base accurate and connected. Outdated memories pollute search results and reduce effectiveness.
| Trigger Phrase | Operation |
|---|---|
how do I update a memory | update_memory with PATCH semantics |
how do I mark a memory obsolete | mark_memory_obsolete with reason |
how do I link related memories | link_memories bidirectional linking |
how do I deduplicate memories | Curation workflow: query, analyze, merge |
how do I clean up stale memories | Identify and mark obsolete outdated content |
Use update_memory when:
execute_forgetful_tool("update_memory", {
"memory_id": <id>,
"content": "Updated content...",
"importance": 8
})
Only specified fields are changed (PATCH semantics).
Use mark_memory_obsolete when:
execute_forgetful_tool("mark_memory_obsolete", {
"memory_id": <id>,
"reason": "Superseded by new architecture decision",
"superseded_by": <new_memory_id> // optional
})
Obsolete memories are soft-deleted (preserved for audit, hidden from queries).
Use link_memories when:
execute_forgetful_tool("link_memories", {
"memory_id": <source_id>,
"related_ids": [<target_id_1>, <target_id_2>]
})
Links are bidirectional (A↔B created automatically).
When creating new memories, check impact on existing knowledge:
execute_forgetful_tool("query_memory", {
"query": "<topic of new memory>",
"query_context": "Checking for memories that may need curation",
"k": 5
})
For each existing memory, determine action:
| Situation | Action |
|---|---|
| Existing memory is still accurate | Link to it |
| Existing memory has minor gaps | Update it |
| Existing memory is now wrong | Mark obsolete, create new |
| Existing memory is partially valid | Create new, link both |
Present plan to user before executing:
Curation plan:
- Create: "New authentication approach" (importance: 8)
- Mark obsolete: #42 "Old auth pattern" (superseded)
- Link: New memory ↔ #38 "Security requirements"
Proceed? (y/n)
After user confirms:
Watch for these indicators:
Forgetful auto-links semantically similar memories (similarity >= 0.7) during creation. Manual linking is for:
Check similar_memories in create response to see what was auto-linked.
Use this skill when:
Use using-forgetful-memory instead when:
Use exploring-knowledge-graph instead when:
query_memory| Avoid | Why | Instead |
|---|---|---|
| Deleting memories instead of marking obsolete | Loses audit trail | Use mark_memory_obsolete with reason |
| Creating duplicates of existing memories | Pollutes search results | Query first, update existing if found |
| Linking everything to everything | Dilutes relationship signal | Link only semantically meaningful connections |
| Skipping user confirmation on curation plans | May obsolete valuable content | Present plan and wait for approval |
| Ignoring low-importance memory accumulation | Degrades search quality over time | Periodically review and cull sub-6 importance |
After curation operations: