Pins or unpins a memory to protect it from pruning during dream consolidation. Use when a memory is critical and must never be removed, such as architecture decisions, security constraints, or immutable team conventions.
76
93%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
High
Do not use without reviewing
Pin a memory to mark it as high-priority and protect from pruning.
The user provides either a search query or memory ID.
If memory ID:
get_memory with the ID.If search query:
search_memories with the query, filters={"AND": [{"user_id": "<id>"}, {"app_id": "<pid>"}]}, top_k=5.Call get_memory with the selected memory ID. Store:
original_text — the memory's text contentoriginal_metadata — the existing metadata dictThe update_memory tool updates a memory by id. To pin durably, append a pin
marker to the text so it travels with the memory:
pinned_text = "[PINNED] " + original_text if not original_text.startswith("[PINNED]") else original_text
update_memory(id=<selected_id>, text=pinned_text)For new memories (user wants to pin text that isn't stored yet):
add_memory with:
text="[PINNED] <the user's text>"user_id=<active_user_id>app_id=<active_project_id>metadata={"pinned": true, "type": "decision", "confidence": 1.0}infer=Falseevent_id. Call get_event_status(event_id=<event_id>) once to retrieve the memory ID, then confirm.Pinned: "<memory content, first 80 chars>"
Memory ID: <id>Append ... only if content exceeds 80 characters.
If the user says "unpin":
get_memory to read current content.unpinned_text = original_text.removeprefix("[PINNED] ")
update_memory(memory_id=<id>, text=unpinned_text)Unpinned: "<content>..."IMPORTANT: Do NOT use markdown in your output. OpenCode TUI renders text verbatim — markdown like bold, ## headers, and | table | syntax appears as raw characters. Use plain text with indentation for structure. Use dashes for lists. Use spaces to align columns instead of markdown tables.
b357a5a
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.