skills/explore/SKILL.md
RLM-style recursive memory exploration - dynamically navigate the memory graph
npx skillsauth add genomewalker/cc-soul exploreInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Instead of injecting top-k memories, explore the memory graph dynamically.
explore_recallYou have these primitives (via chitta RPC):
| Tool | Purpose | Token Cost |
|------|---------|------------|
| explore_recall | Semantic search, returns hints (id, title, score) | ~100 |
| explore_peek | Get 200-char summary of a memory | ~50 |
| explore_expand | Get full memory content | ~200-500 |
| explore_neighbors | Get triplet connections from a node | ~100 |
query = user's question
context = []
trace = []
max_iterations = 10
# Initial hints
hints = explore_recall(query, limit=5)
trace.append(("recall", query, hints))
for i in range(max_iterations):
# Decide next action based on query + current context
action = decide_action(query, context, hints)
if action == "ANSWER":
break
elif action.startswith("PEEK"):
id = extract_id(action)
summary = explore_peek(id)
context.append(summary)
trace.append(("peek", id, summary))
elif action.startswith("EXPAND"):
id = extract_id(action)
full = explore_expand(id)
context.append(full)
trace.append(("expand", id, len(full)))
elif action.startswith("NEIGHBORS"):
node = extract_node(action)
neighbors = explore_neighbors(node)
hints.extend(relevant_neighbors(neighbors))
trace.append(("neighbors", node, len(neighbors)))
elif action.startswith("RECALL"):
new_query = extract_query(action)
new_hints = explore_recall(new_query, limit=5)
hints.extend(new_hints)
trace.append(("recall", new_query, new_hints))
# Generate answer from accumulated context
answer = synthesize(query, context)
return answer, trace
At each iteration, decide:
Query: {query}
Current context ({len(context)} items):
{format_context(context)}
Available hints:
{format_hints(hints)}
Recent trace:
{format_trace(trace[-3:])}
What should I explore next?
- PEEK(id) - get summary of a promising hint
- EXPAND(id) - get full content (use sparingly)
- NEIGHBORS(node) - explore triplet connections
- RECALL("query") - search for more hints
- ANSWER - I have enough context
Respond with just the action, e.g.: PEEK(00000000-0000-0000-0000-0000000001bd)
Use /explore instead of regular recall when:
When user invokes /explore <query>:
explore_recall with the queryPEEK(id) if a hint looks promising but need more infoEXPAND(id) if confident this memory is highly relevantNEIGHBORS(node) if you want to follow relationshipsRECALL("new query") if you need different search termsANSWER if you have enough contextShow at the end:
User: /explore How does the daemon handle authentication?
Claude: Starting exploration for "How does the daemon handle authentication?"
[Step 1] explore_recall("daemon authentication")
Found 5 hints:
[45%] id:123 - [mcp] cc-soul socket connection
[38%] id:456 - [wisdom] JSON-RPC protocol
[32%] id:789 - Unix socket permissions
...
[Step 2] PEEK(123) - socket connection looks relevant
Summary: "cc-soul daemon uses Unix socket at /tmp/chitta-*.sock..."
[Step 3] NEIGHBORS("daemon")
Found: daemon → uses → json_rpc
daemon → listens_on → unix_socket
[Step 4] EXPAND(456) - JSON-RPC protocol details needed
Full content loaded (342 chars)
[Step 5] ANSWER - have enough context
=== Answer ===
The daemon uses Unix socket authentication via file permissions.
No explicit auth - relies on filesystem access control to /tmp/chitta-*.sock.
=== Exploration Trace ===
1. recall("daemon authentication") → 5 hints
2. peek(123) → 200 chars
3. neighbors("daemon") → 5 connections
4. expand(456) → 342 chars
Tokens: ~692 exploration vs ~1500 full_resonate (54% savings)
Use these chitta commands during exploration:
# Lightweight recall
chitta explore_recall --query "your search" --limit 5
# Peek at summary
chitta explore_peek --id "00000000-0000-0000-0000-000000000123"
# Full content
chitta explore_expand --id "00000000-0000-0000-0000-000000000123"
# Graph neighbors
chitta explore_neighbors --node "Mind" --direction both
development
Build, convert, and fine-tune the Qwen3-0.6B hint model for personal fact extraction. Covers corpus generation, ChatML conversion, LoRA fine-tuning with unsloth, GGUF export, and Ollama registration.
development
Build, convert, and fine-tune the Qwen3-0.6B hint model for personal fact extraction. Covers corpus generation, ChatML conversion, LoRA fine-tuning with unsloth, GGUF export, and Ollama registration.
tools
Browse and resume tasks, threads, and background jobs across sessions
tools
Resume a thread by loading its ~800-token context capsule