core
Skill23 starsChanged 10 months agoMITView on GitHub
This skill should be used when the user says "capture memory", "save to memory", "remember this", or trigger phrases like: "I've decided", "let's use", "we're going with", "I learned", "turns out", "TIL", "discovered", "I'm stuck", "blocked by", "always use", "never do", "convention is". Also triggers on recall phrases: "what did we decide", "how do we handle", "remind me", "search memories".
28 other projects use a version of this.
Adopted by
Most recently taken up by
- gkurt/ai-soulstheir own version, first seen Nov 8, 2026
- ouestlabs/audio-uitheir own version, first seen Nov 2, 2026
- vercel-labs/json-rendertheir own version, first seen Oct 29, 2026
- fishzjp/qa-skillstheir own version, first seen Oct 21, 2026
- ryu111/claude-workflow-configtheir own version, first seen Oct 20, 2026
- menteorama/essentialstheir own version, first seen Oct 17, 2026
Used with
Projects with it also use ts-core, native-ui and 3 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
VercelSkillts-core
Authoring guide for the primary Native SDK app-logic path: TypeScript app cores - Model, Msg, update, and the pure functions they call, written in the closed app-core subset, checked by the @native-sdk/core frontend, and compiled ahead-of-time to native code by the external core compiler. Use for new apps unless the user explicitly chose Zig, when writing or modifying a src/core.ts app core, fixing subset checker errors (NS1001-NS1069), or deciding how to express state, messages, text (bytes and the byte-text string methods), text input, continuous controls (sliders, scroll), effects (Cmd), subscriptions (Sub), the host-event wiring channels (frameMsg, keyMsg, pinchMsg, dropMsg, appearanceMsg, chromeMsg, envMsgs, app manifest assets), derived values, the view_unbound lint opt-out, local mutation of owned arrays, or how to split a core into modules under src/ (relative imports, namespace imports, @native-sdk/core/text, @native-sdk/core/events). Use ts-services alongside this guide for src/services work.
Also in 3 projects that use this
VercelSkillnative-ui
Authoring guide for the Native markup (.native) view tier of native-rendered Native SDK apps. TypeScript cores are the default and use this skill together with ts-core; Zig cores are an explicit alternative and this guide labels their lower-level UiApp recipes. Use when building or modifying native UI (widgets, layout, bindings, messages), writing .native files, wiring views to Model/Msg/update, testing markup views, or verifying a native app through the automation harness.
Also in 3 projects that use this
- +3 more from vercel-labs
Other versions28 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 28
- vercel-labs/agent-browser★ 47ksame name
- vercel-labs/json-render★ 19ksame name
- microsoft/data-formulator★ 17ksame name
- microsoft/RD-Agent★ 15ksame name
- vercel-labs/zero-native★ 7.8ksame name
- vercel-labs/native★ 7.8ksame name
- ouestlabs/audio-ui★ 202same name
- vercel-labs/issue-graph★ 163same name
- vercel-labs/xref★ 163same name
- fishzjp/qa-skills★ 62same name
18 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository9 other files it gives its agents.
- blackboardSkill
- custodianSkill
- formatSkill
- integrateSkill
- ontologySkill
- qmd-reindexSkill
- qmd-setupSkill
- searchSkill
- setupSkill
The file
We split this skill into the rules it gives an agent
10 rules. 0 are common, 7 are distinctive, and 3 are very specific to this project.
0
Common
Most of the 20 edited versions we read keep these.
7
Distinctive
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 25
Run /mnemonic:list --namespaces to see available namespaces from loaded ontologies.
- Distinctive: line 69
When to capture: Only capture when the user explicitly states a decision, learning, pattern, or blocker in their message.
- Distinctive: line 73
Do NOT say "I'm capturing this" or similar
- Very specific: line 98
Run /mnemonic:status to show memory stats
- Distinctive: line 99
Use search to find recent relevant memories
- Distinctive: line 112
Search for existing memories with similar keywords:
- Distinctive: line 117
If matches found, read the top result
- Distinctive: line 118
If it covers the same topic → UPDATE existing memory (use Edit tool) instead of creating new
- Very specific: line 119
If related but different → create new memory with a relates-to relationship
- Distinctive: line 120
Only create brand new if no matches found
“Common” is measured: kept by at least 6 in 10 of the 20 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
<!-- BEGIN MNEMONIC PROTOCOL -->Memory
Search first: /mnemonic:search {relevant_keywords}
Capture after: /mnemonic:capture {namespace} "{title}"
Run /mnemonic:list --namespaces to see available namespaces from loaded ontologies.
<!-- END MNEMONIC PROTOCOL -->Mnemonic Core
Memory system operations. See references/ for full documentation.
Trigger Phrases
Capture Triggers (silently capture when user says):
Decisions (namespace: _semantic/decisions):
- "I've decided", "let's use", "we're going with"
- "we'll use", "I'm choosing", "going forward with"
- "the decision is", "we chose", "decided on"
Learnings (namespace: _semantic/knowledge):
- "I learned", "turns out", "discovered that"
- "TIL", "gotcha", "found out", "realized"
- "the root cause was", "it was because"
Patterns (namespace: _procedural/patterns):
- "always use", "never do", "when X do Y"
- "the pattern is", "we should always", "convention is"
- "standard approach", "best practice here"
Blockers (namespace: _episodic/sessions/blockers):
- "I'm stuck on", "blocked by", "can't figure out"
- "hitting a wall", "the problem is", "struggling with"
Context (namespace: _semantic/knowledge):
- "important to know", "keep in mind", "context is"
- "background", "constraint", "requirement"
Recall Triggers (search memories when user asks):
- "what did we decide about", "how do we handle"
- "what's our approach to", "check for decisions"
- "any learnings about", "patterns for"
- "remind me", "what do we know about"
- "search memories", "recall", "find memories"
Silent Capture Protocol
When to capture: Only capture when the user explicitly states a decision, learning, pattern, or blocker in their message. Do NOT capture based on Claude's own suggestions or recommendations.
When trigger phrases are detected:
- Capture to appropriate namespace WITHOUT announcing
- Do NOT say "I'm capturing this" or similar
- Continue natural conversation flow
- Memory creation is invisible to user
Do NOT capture:
- Claude's own suggestions (only user-stated facts)
- Hypothetical scenarios ("we could use...")
- Questions or exploratory discussion
Visibility & Review
Users can review captured memories at any time:
# Check session status and recent captures
/mnemonic:status
# List recent memories (last 7 days)
find ${MNEMONIC_ROOT} -name "*.memory.md" -mtime -7 -exec basename {} \;
# Search for specific captures
/mnemonic:search {keywords}If a user asks "what did you capture?" or "show me my memories":
- Run
/mnemonic:statusto show memory stats - Use search to find recent relevant memories
- This is NOT a violation of silent capture - user explicitly requested visibility
Capture
/mnemonic:capture {namespace} "{title}"Namespaces: _semantic/decisions | _semantic/knowledge | _procedural/patterns | _episodic/blockers | _episodic/sessions
MANDATORY: Before creating any memory, check for duplicates:
- Search for existing memories with similar keywords:
rg -i "{key_words}" ${MNEMONIC_ROOT}/ --glob "*.memory.md" -l | head -5 - If matches found, read the top result
- If it covers the same topic → UPDATE existing memory (use Edit tool) instead of creating new
- If related but different → create new memory with a
relates-torelationship - Only create brand new if no matches found
Recall
rg -i "{keywords}" ${MNEMONIC_ROOT}/ --glob "*.memory.md" -lMinimal Memory Format
CRITICAL: Generate real values. NEVER write placeholders like "PLACEHOLDER_UUID" or "PLACEHOLDER_DATE".
Generate a UUID and timestamp FIRST, then write the file:
# Generate these BEFORE writing the memory file
UUID=$(uuidgen 2>/dev/null | tr '[:upper:]' '[:lower:]')
[ -z "$UUID" ] && UUID=$(python3 -c "import uuid; print(uuid.uuid4())")
DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")Type must match namespace path:
_semantic/*→type: semantic_procedural/*→type: procedural_episodic/*→type: episodic
Then create the file with the real generated values:
---
id: <the real UUID generated above>
title: "Your actual title here"
type: semantic
namespace: _semantic/decisions
created: <the real DATE generated above>
temporal:
validFrom: <the real DATE generated above>
recordedAt: <the real DATE generated above>
lastAccessed: <the real DATE generated above>
decay:
model: exponential
halfLife: P90D
strength: 1.0
provenance:
sourceType: agent_inferred # user_explicit if the user stated it directly
agent: claude
confidence: 0.9
---
# Your actual title here
Content here.Half-life defaults:
_semantic/decisions: P180D (long-lived)_semantic/knowledge: P90D_procedural/patterns: P180D (long-lived)_episodic/*: P30D (fast decay)
References
references/capture.md- Full capture workflowreferences/recall.md- Search and retrieval patternsreferences/schema.md- Complete MIF Level 3 schemareferences/examples.md- Working examples
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

