Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Memora is an MCP memory server. Use it at session start to load context, when the user asks about past work or stored knowledge, and when saving important information for future sessions.
.claude/skills/agentic-box-memora-persistent-memory-and-knowledge-management/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-05 | ✗→✓ | ▲ Improved | 27% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 168% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 80% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 29% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 42% | 0% |
Memora is an MCP memory server. Use it at session start to load context, when the user asks about past work or stored knowledge, and when saving important information for future sessions.
Defaults (do not re-state them on every call):
memory_list / memory_semantic_search / memory_hybrid_search default tofollow="active" — superseded memories are excluded.
memory_get defaults to follow="latest" — a superseded id resolves to thecurrent leaf of its chain.
memory_list(tags_any=["memora/todos"])
memory_semantic_search(query="cloud backend")
memory_get(memory_id=157) # returns the current version if 157 was supersededWhen you need non-default lineage:
# Resolve hits to current leaves (dedupe versions in a search)
memory_semantic_search(query="roadmap", follow="latest")
# Full supersession chain
memory_get(memory_id=170, follow="full_history")
# Forensic / unfiltered — EXPLICIT only. Omitting follow is NOT unfiltered.
memory_list(follow="all")
memory_semantic_search(query="...", follow="all")
memory_get(memory_id=157, follow="all") # exact id, no chain walkDo not cargo-cult follow="active" on every call — that is already the list/search default. Pass follow only to change behaviour (latest, full_history, or all).
memory_absorbPrefer memory_absorb over memory_create when saving knowledge. Absorb automatically checks for duplicates, supersedes outdated memories, links related ones, and consolidates related new facts into single richer memories.
Write detailed, context-rich facts — not tiny one-liners. Each fact should be a full sentence or short paragraph with enough context to be useful on its own. Related facts passed together are automatically merged into a single consolidated memory via LLM synthesis.
memory_absorb(
facts=[
"clmux v0.4.16.1 fixes hidden pane text leakage by restricting tmux allow-passthrough to only the visible TUI window instead of globally, preventing hidden reviewer and parking windows from leaking escape sequences",
"clmux sidebar now filters out _reviewers and parking windows from list-panes queries, and the ! notification indicator persists across workspace switches until the user responds"
],
source="manual",
tags=["clmux", "bugfix"]
)Absorb handles dedup and consolidation automatically:
Use dry_run=True to preview what absorb would do without writing.
Use memory_create directly only for:
memory_create_todo, memory_create_issue, memory_create_sectionUse memory_update only for corrections (typos, metadata fixes) — not for evolving knowledge. For evolving knowledge, use memory_absorb — it handles supersession automatically.
Use typed edges to express relationships:
supersedes — new version replaces old (enables lineage walking)contradicts — conflicting information (flag for resolution)implements — concrete implementation of a plan/designextends — builds upon existing knowledgereferences — general reference/citationrelated_to — loose associationmemory_semantic_search for conceptual queries (follow="active")memory_hybrid_search when you need both keyword and semantic matchingmemory_list with tag/metadata filters for structured browsingfields parameter to reduce response size: fields=["id", "content_preview", "tags"]content_mode="preview" (default) for scanning, content_mode="full" only when you need complete contentlimit=20 on list. Use limit=-1 only when you truly need everything.fields projection to fetch only what you need.content_mode="preview" (default) over full content for scanning.memory_get with specific IDs after finding relevant results via search.| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 3,103 | 8,151 | +163% | 1 | 1 | 0% | 538 | 1,714 | +219% | 0 | 0 | — |
case-02 | fail→fail | 4,021 | 4,900 | +22% | 1 | 1 | 0% | 571 | 1,452 | +154% | 0 | 0 | — |
case-03 | fail→fail | 7,026 | 5,385 | -23% | 1 | 1 | 0% | 607 | 1,523 | +151% | 0 | 0 | — |
case-04 | fail→fail | 6,493 | 6,810 | +5% | 1 | 1 | 0% | 958 | 2,159 | +125% | 0 | 0 | — |
case-09 | pass→pass | 6,525 | 3,677 | -44% | 1 | 1 | 0% | 996 | 1,836 | +84% | 0 | 0 | — |
case-05 | fail→pass | 9,014 | 3,249 | -64% | 1 | 1 | 0% | 1,381 | 1,749 | +27% | 0 | 0 | — |
case-06 | pass→pass | 5,592 | 3,942 | -30% | 1 | 1 | 0% | 791 | 1,758 | +122% | 0 | 0 | — |
case-07 | pass→pass | 10,163 | 2,393 | -76% | 1 | 1 | 0% | 1,545 | 1,557 | +1% | 0 | 0 | — |
case-08 | fail→pass | 3,863 | 2,098 | -46% | 1 | 1 | 0% | 571 | 1,532 | +168% | 0 | 0 | — |
case-10 | fail→pass | 5,959 | 3,891 | -35% | 1 | 1 | 0% | 967 | 1,745 | +80% | 0 | 0 | — |
case-11 | fail→pass | 7,634 | 2,197 | -71% | 1 | 1 | 0% | 1,144 | 1,480 | +29% | 0 | 0 | — |
case-12 | fail→pass | 6,995 | 2,607 | -63% | 1 | 1 | 0% | 1,084 | 1,534 | +42% | 0 | 0 | — |
case-13 | fail→pass | 5,971 | 3,632 | -39% | 1 | 1 | 0% | 881 | 1,738 | +97% | 0 | 0 | — |
case-14 | fail→pass | 9,544 | 2,506 | -74% | 1 | 1 | 0% | 1,466 | 1,573 | +7% | 0 | 0 | — |
case-15 | pass→pass | 11,248 | 5,809 | -48% | 1 | 1 | 0% | 1,878 | 2,068 | +10% | 0 | 0 | — |
case-16 | pass→pass | 7,058 | 1,833 | -74% | 1 | 1 | 0% | 1,230 | 1,451 | +18% | 0 | 0 | — |
case-17 | fail→pass | 8,868 | 3,197 | -64% | 1 | 1 | 0% | 1,536 | 1,742 | +13% | 0 | 0 | — |
case-18 | pass→pass | 10,660 | 1,659 | -84% | 1 | 1 | 0% | 1,869 | 1,482 | -21% | 0 | 0 | — |
case-19 | fail→pass | 12,523 | 6,460 | -48% | 1 | 1 | 0% | 1,982 | 2,327 | +17% | 0 | 0 | — |
case-20 | pass→pass | 4,875 | 3,176 | -35% | 1 | 1 | 0% | 744 | 1,671 | +125% | 0 | 0 | — |
case-21 | pass→pass | 3,290 | 2,207 | -33% | 1 | 1 | 0% | 598 | 1,521 | +154% | 0 | 0 | — |
case-22 | pass→pass | 15,184 | 13,695 | -10% | 1 | 1 | 0% | 2,881 | 3,793 | +32% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 19 counted toward the lift figure. The other 3 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +41 percentage points is the difference between those two pass rates over the 19 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.