Rag Memory

WarnAudited by ClawScan on May 18, 2026.

Overview

This RAG memory skill is purpose-aligned, but it can automatically send prompts and memory content to configured services, store raw memory text in Qdrant, and install persistent background sync jobs.

Install only if you are comfortable with memory files, database records, and some prompt text being sent to your configured embedding/Qdrant services. Use trusted self-hosted endpoints, least-privileged database/API credentials, review the missing systemd units before any sudo deployment, and consider disabling auto_inject unless you want automatic memory context on every response.

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

Anyone with access to the configured Qdrant collection may be able to read chunks from memory files, skill docs, or database records.

Why it was flagged

Qdrant point payloads include the raw text chunk, so Qdrant stores readable memory/document content, not only vectors and metadata.

Skill content
"payload": { "text": text, "chunk_index": i + j, **metadata }
Recommendation

Document that raw text is stored in Qdrant, restrict Qdrant access, use trusted/self-hosted endpoints, and consider an option to omit or encrypt text payloads.

What this means

Private details in ordinary user prompts may be sent to the embedding service automatically, not only when the user explicitly asks for vector search.

Why it was flagged

When auto-inject is enabled, the hook derives text from the latest user message and sends up to 500 characters to the configured embedding endpoint during prompt construction.

Skill content
api.registerHook("before_prompt_build", async (ctx) => { ... const query = ... lastUser.content ... const vector  = await embed(cfg, query.slice(0, 500));
Recommendation

Make auto-injection opt-in or clearly warn users; disable auto_inject unless desired; configure only trusted embedding endpoints.

What this means

A bad memory entry or indexed document could influence future answers and tool choices across sessions.

Why it was flagged

The guide encourages the agent to trust retrieved memory strongly, while retrieved memory/docs can be stale, incorrect, or poisoned and are also auto-injected into prompts by the plugin.

Skill content
`score >= 0.85` — high confidence, treat as authoritative
Recommendation

Treat retrieved memory as untrusted context, require source verification for important actions, and avoid language that makes vector results authoritative by default.

What this means

Users may provide a broader database credential than expected, or a read-only credential may fail during sync.

Why it was flagged

This indicates the sync process may write to Postgres, while the SKILL.md endpoint table describes Postgres use as read-only queries, leaving the required database privilege scope ambiguous.

Skill content
Records sync state in the `qdrant_sync_log` Postgres table
Recommendation

Clarify the exact Postgres permissions needed and use a least-privileged DSN limited to the required source tables and sync-log table.

What this means

A privileged background-service install may fail or depend on files outside the reviewed package.

Why it was flagged

The deployment script installs and enables systemd units, but those referenced unit files are not included in the supplied file manifest, so their persistent behavior cannot be reviewed from the artifacts.

Skill content
UNITS=( sysclaw-rag-sync.service sysclaw-rag-sync.timer sysclaw-rag-watch.path sysclaw-rag-watch.service ) ... > "/etc/systemd/system/${unit}"
Recommendation

Do not run the sudo deployment until the unit files are present and reviewed; publishers should include the referenced units in the package.

What this means

Memory files may continue being embedded and synced after setup without a manual command each time.

Why it was flagged

The skill intentionally supports background sync via systemd path/timer units. This is disclosed and purpose-aligned, but it is persistent behavior users should notice.

Skill content
Incremental sync also fires automatically when any `.md` file changes ... Nightly full sync runs at 03:00
Recommendation

Install the systemd units only if continuous sync is desired, and know how to disable the timer/path watcher.

What this means

Running the monitor executes a local Node.js command, so local script integrity matters.

Why it was flagged

The monitoring helper uses shell execution to run a fixed local analyzer script. This matches the monitoring purpose and does not show user-controlled command arguments.

Skill content
const raw = execSync(`node "${analyzerPath}" "${usageLog}"`, { encoding: 'utf8' });
Recommendation

Keep the skill directory writable only by trusted users and review helper scripts before running them.