memory-pro

PassAudited by ClawScan on May 10, 2026.

Overview

This is a coherent local memory-search skill, but it creates persistent searchable copies of your memory/docs and has optional remote reranking that should be configured carefully.

Before installing, review the default indexed paths, keep generated index files private, and leave remote reranking disabled unless you are comfortable sending selected memory snippets to that provider. Run it in an isolated Python environment with pinned dependencies if possible.

Findings (7)

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

What this means

Private workspace notes and project documents may become part of the searchable memory index and may later be surfaced to the agent.

Why it was flagged

The default corpus extends beyond a single memory folder into docs, learning files, and core workspace files, which may contain private or instruction-like content.

Skill content
extra_md_dirs_raw = os.getenv("MEMORY_PRO_EXTRA_MD_DIRS", "${OPENCLAW_WORKSPACE}/.learnings,${OPENCLAW_WORKSPACE}/skills/self-improving-agent/.learnings,${OPENCLAW_WORKSPACE}/docs") ... core_files = os.getenv("MEMORY_PRO_CORE_FILES", "MEMORY.md,SOUL.md,STATUS.md,AGENTS.md,USER.md").split(',')
Recommendation

Review and narrow MEMORY_PRO_DATA_DIR, MEMORY_PRO_EXTRA_MD_DIRS, and MEMORY_PRO_CORE_FILES before building the index; exclude sensitive files and treat retrieved content as untrusted context.

What this means

Generated files such as sentences.txt and memory_meta.jsonl can contain readable copies of sensitive memories and file paths.

Why it was flagged

The index build stores plaintext memory sentences and source-file metadata, not only vector embeddings.

Skill content
with open(sentences_path, "w", encoding="utf-8") as f:
        f.write("\n".join(texts)) ... "text": e.get("text", ""),
                "source_file": e.get("source_file", "unknown")
Recommendation

Store generated index files in a protected local directory, avoid syncing them to shared/cloud locations, and delete or rebuild them when the source corpus changes.

What this means

Search terms and selected memory snippets may leave the local machine when remote reranking is enabled.

Why it was flagged

If reranking is enabled and configured, the skill sends the user query and candidate memory sentences to a rerank provider endpoint.

Skill content
endpoint = os.getenv("MEMORY_PRO_RERANK_ENDPOINT", "https://api.jina.ai/v1/rerank") ... payload = {
            "model": model,
            "query": query,
            "documents": [c.get("sentence", "") for c in work],
Recommendation

Keep remote reranking disabled for local-only use, or configure it only with a trusted endpoint and clear consent for sending memory snippets.

NoteHigh Confidence
ASI10: Rogue Agents
What this means

The memory search service may remain available locally while running, and startup refreshes the indexed copy of memory content.

Why it was flagged

Starting the skill rebuilds the index and launches a long-running localhost API server.

Skill content
python3 build_index.py ... exec python3 -m uvicorn main:app --host 127.0.0.1 --port "$MEMORY_PRO_PORT" --log-level info
Recommendation

Run the service only when needed, keep it bound to localhost, and stop or disable any user service if you do not want memory search active.

What this means

A maliciously replaced BM25 pickle could execute code when hybrid search loads it.

Why it was flagged

The hybrid retrieval path deserializes a configurable BM25 pickle file. This appears intended for the skill's own generated file, but pickle is unsafe if the file is tampered with.

Skill content
bm25_path = os.getenv("MEMORY_PRO_BM25_PATH", "bm25_corpus.pkl") ... with open(bm25_path, "rb") as f:
                bm25_payload = pickle.load(f)
Recommendation

Only load BM25 files generated by this skill, protect the file path from untrusted writes, and prefer a safer serialization format if modifying the skill.

What this means

Users may install different versions of required packages, which can affect reliability and supply-chain exposure.

Why it was flagged

The provided artifacts include runnable Python code but no pinned dependency installation recipe.

Skill content
No install spec — this is an instruction-only skill.
Recommendation

Use a reviewed, pinned requirements file or isolated environment before running the server or index builder.

What this means

The installation UI or user may be confused about which values are real secrets and which are ordinary configuration.

Why it was flagged

The metadata labels many path and tuning variables as required credentials, including HOME and non-secret scoring weights.

Skill content
Primary credential: HOME ... MEMORY_PRO_RERANK_API_KEY (required) - Credential used by memory-pro.; MEMORY_PRO_BM25_WEIGHT (required) - Credential used by memory-pro.
Recommendation

Provide only the configuration values you actually need, treat the rerank API key as the only obvious secret, and avoid sharing generated .env files.