Skip to content
Documentation
Skill

/recall

Search Wenlan's local memory from Codex by query. Targeted lookup, not session orientation. Invoked as /recall <query>.

From plugin
wenlan
6415 skills3 agents1 MCP
Install
$ npx -y skills add 7xuanlu/wenlan --skill recall --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/recall

Context preview

The summary Claude sees to decide when to auto-load this skill.

Search Wenlan's local memory from Codex by query. Targeted lookup, not session orientation. Invoked as /recall <query>.

SKILL.md

recall.SKILL.md
name: recall
description: >
  Search Wenlan's local memory from Codex by query. Targeted lookup, not
  session orientation. Invoked as /recall <query>.
argument-hint: "<query>"
allowed-tools: ["Bash", "mcp__wenlan__recall", "mcp__wenlan__get_memory_revisions"]
user-invocable: true

/recall

Search Wenlan memory by natural-language query. Use `/brief` for broad session orientation and `/recall` for a specific fact, decision, lesson, or preference.

Argument parsing

Accept one optional inline token of the form `space:<name>` anywhere in the argument string. Extract it before treating the rest as the query:

raw_args="<the full argument string passed to /recall>"
space_arg="$(printf '%s\n' "$raw_args" | grep -oE 'space:[A-Za-z0-9_-]+' | head -1 | cut -d: -f2)"
query="$(printf '%s\n' "$raw_args" | sed -E 's/[[:space:]]*space:[A-Za-z0-9_-]+[[:space:]]*/ /g' | sed -E 's/^[[:space:]]+|[[:space:]]+$//g')"

If `query` is empty, ask the user what they want to search for.

Resolve the active space

Call the Codex resolver:

# The resolver ships inside the installed plugin; the relative path only
# exists in a wenlan checkout.
resolver="$(find "$HOME/.codex/plugins/cache" -path '*/wenlan/*/bin/resolve-space.sh' 2>/dev/null | head -1)"
resolved="$("${resolver:-plugin-codex/bin/resolve-space.sh}" --cwd "$PWD" ${space_arg:+--arg "$space_arg"} 2>/dev/null)"
space="$(printf '%s\n' "$resolved" | cut -f1)"
source_layer="$(printf '%s\n' "$resolved" | cut -f2)"

If `space` is non-empty, print:

Resolved space: <space> (from <source-layer>)

If `space` is empty, print:

Resolved space: none (unscoped)

Pass `space="<resolved>"` to `mcp__wenlan__recall` only when `space` is non-empty. Do not substitute `personal` for an unscoped result.

Expand once, then call recall

Rewrite the query only enough to improve retrieval:

  • Replace pronouns with the referent from the current thread.
  • Expand an abbreviation when the embedder may miss it.
  • Add one obvious synonym when the user's wording is too narrow.

Do not issue multiple recall calls. Use one call:

mcp__wenlan__recall(
  query="<expanded query>",
  space="<resolved if non-empty>",
  memory_type="<only if the query names a type>"
)

Infer `memory_type` only when the user names a type, such as "decision on X", "lesson about Y", or "preference for Z". Otherwise omit it.

Rerank and render

Rerank the returned memories against the user's original query:

  • Promote direct answers.
  • Demote keyword overlaps that do not answer the question.
  • Show the top 3-5 hits unless the user asked for a deeper audit.

Render revision context only when it matters:

<id>  v<N> (merged <K> memories)
<id>  v<N>, pending revision against <id>
<id>  v<N> - <last_delta_summary>
<id>  v<N>

Skip that tag line when the memory is a fresh v1 with no merge or pending revision fields.

Only when the user explicitly asks for one memory's history or evolution, or whether a correction was recorded, call:

mcp__wenlan__get_memory_revisions(memory_id="<source_id>")

Do not fetch revision chains for ordinary recall results.

When to use

  • "What did I say about X?"
  • "Do you remember the decision on Y?"
  • "Look up my preference for Z."

When not to use

  • Session start context: use `/brief`.
  • Storing a new memory: use `/capture`.
Read more
Ships withwenlan

Wenlan is a knowledge base for the AI-native age. Your AI agents capture what they learn, Wenlan keeps it current and distills it into source-cited wiki pages you can trust

Get the whole plugin

Other skills on wenlan.

prove
Skill

prove

Per-surface verification loops for wenlan — daemon, cli, mcp, plugin, suite strength (mutation), behavior trace, weekly sweep. Routes to scripts; every check…

@7xuanlu@7xuanluView Skill
verify
Skill

verify

Drive/evidence recipe for verifying wenlan changes at their real surfaces (daemon HTTP, CLI, MCP stdio). The handle file the built-in verify protocol expects;…

@7xuanlu@7xuanluView Skill
brief
Skill

brief

Read the current Space-owned project Brief from Wenlan for Codex. With an optional topic, appends separately labeled related context from the same Space.…

@7xuanlu@7xuanluView Skill
capture
Skill

capture

Save a durable memory to Wenlan from Codex. Use proactively when the user states a preference, makes a decision, corrects you, or shares a durable fact.…

@7xuanlu@7xuanluView Skill