Agent Economy Report

Skill code audit

CAUTION version 1.0.0 · audited 2026-09-17

memory-manager @marmikcfc

This skill is a set of bash scripts that manage a local memory directory under the OpenClaw workspace. It creates folders for episodic, semantic, procedural memory and snapshots, estimates memory usage, moves or copies markdown files, searches them, and writes snapshot files. The code makes no network requests and does not directly access credentials or payment information. The main concern is that the scripts change local files and snapshots may copy sensitive memory content, and path handling in categorize.sh trusts the supplied name and source path. Installers should review the scripts and use them only with trusted arguments and a confirmed workspace.

Declared purposeLocal memory management for agents. Compression detection, auto-snapshots, and semantic search. Never lose context again.
Observed behaviorSeven bash scripts operate on a local memory directory under $OPENCLAW_WORKSPACE or $HOME/.openclaw/workspace. init.sh creates directories, README files, and a state file. detect.sh counts memory file bytes, updates the state file, and prints warnings based on estimated usage. organize.sh moves date-named flat markdown files into episodic memory and copies other flat files to legacy. categorize.sh moves or merges an existing source file into the selected memory type. search.sh greps local memory files. snapshot.sh writes a markdown snapshot containing excerpts from memory files and updates state. stats.sh reports counts, sizes, and health. No executable code performs network requests or handles payments.
Verdict, rules onlySAFE
Verdict, AICAUTION
Final verdictCAUTION (never better than either pass)

Capabilities

capabilityvs purposedetail
shellneededAll tools are bash scripts using shell built-ins and standard utilities such as find, grep, wc, jq, mv, cp, du, date, and cat.
filesystem_writeneededCreates directories and state/README files in init.sh, updates JSON state in detect.sh, organize.sh, and snapshot.sh, writes snapshots in snapshot.sh, and moves or copies memory files in organize.sh and categorize.sh.
filesystem_readneededReads memory files to count bytes, compute sizes, search contents, and build snapshots.
persistenceneededWrites durable local state in .memory-manager-state.json, README files, memory directories, and snapshot files.
networkexceeds purposeNo network calls are made by executable code; the only external URLs are documentation links in skill-card.md and SKILL.md.

Findings

severityfinding
mediumUnsanitized category name in destination path
NAME is taken directly from the second command-line argument and inserted into a file path. A name such as ../../somewhere could cause later mv or cat commands to write outside the memory directory. The skill's own card acknowledges this risk in skill-card.md line 29.
categorize.sh:36 DEST="$MEMORY_DIR/episodic/${NAME}.md"
mediumMoves an arbitrary existing source file
The script only checks that SOURCE exists before moving it. A caller that can pass arguments could move any readable file the agent can access into the memory tree or, combined with unsanitized NAME, beyond it. Use only with trusted arguments.
categorize.sh:72 mv "$SOURCE" "$DEST"
lowAutomatically moves date-named memory files
Flat markdown files whose names match YYYY-MM-DD.md are moved from the top-level memory directory into episodic. This is declared, but it changes the user's file layout and should be reviewed before running.
organize.sh:47 mv "$file" "$MEMORY_DIR/episodic/"
lowUnquoted filename list expansion
FLAT_FILES is not quoted in the for loop. Filenames containing spaces or shell glob characters may be split or expanded unexpectedly, which could affect which files are moved or copied.
organize.sh:36 for file in $FLAT_FILES; do
lowSearch query passed directly to grep
QUERY is built from all remaining arguments and passed to grep. A query beginning with '-' could be interpreted by grep as an option; impact appears limited to local file reading and pattern-file behavior, not shell execution.
search.sh:38 local results=$(grep -i -n -C 2 "$QUERY" "$dir"/*.md 2>/dev/null | head -20)
mediumSnapshots copy memory file contents into a new file
The snapshot feature reads content from memory files and writes it into snapshot markdown files. If those memory files contain sensitive data, the snapshots create another copy of that sensitive data and should be protected. The skill card notes this at line 33.
snapshot.sh:36 tail -n 30 "$file" >> "$SNAPSHOT_FILE"
lowHardcoded skill path
detect.sh invokes init.sh using an absolute path under ~/.openclaw. If the skill is installed elsewhere or another script exists at that path, this could run the wrong file. It also hides init.sh output.
detect.sh:10 ~/.openclaw/skills/memory-manager/init.sh > /dev/null 2>&1
lowDocumentation encourages automated heartbeat execution
The skill instructs adding memory scripts to a heartbeat every 2 hours, which would cause repeated local file changes. This matches the declared purpose but should be manually reviewed before automation, as skill-card.md lines 37-39 also warn.
SKILL.md:95 1. Run: ~/.openclaw/skills/memory-manager/detect.sh
infoDocumentation-only external link
The only external domains in the package are documentation links; no executable code performs network requests to them.
SKILL.md:298 **Post on m/agentskills:** https://www.moltbook.com/m/agentskills

0 AI finding(s) were dropped because their file, line or quote did not match the package.

Network destinations in the code

domainservice ratingwhere
clawhub.ainot in the service indexskill-card.md:9
www.moltbook.comnot in the service indexSKILL.md:298

Other facts

Binaries invokedbash
Environment variables readDEST, FLAT_FILES, HOME, MEMORY_DIR, NAME, OPENCLAW_WORKSPACE, QUERY, REPLY, SNAPSHOT_DIR, SNAPSHOT_FILE, SOURCE, STATE_FILE, TYPE, WORKSPACE
Hard-coded walletsnone
Pipes a download to a shell0
eval / exec / subprocess0
base64 blobs0
File writes20
Persistence0

Files audited

filelinessha256
README.md152594b03891034b505…
SKILL.md3080d9c21898ec63b47…
_meta.json64f3afc3340ae99c6…
categorize.sh8055f6149270abe825…
detect.sh9720c3041aa5f11cd3…
init.sh1485b5b84ca48fd7a06…
organize.sh743364bf021c90e138…
package.json10932d4701821e25da…
search.sh728c9340b73c38a079…
skill-card.md6134b636676775ef4f…
snapshot.sh1049a6242e9708d40d5…
stats.sh109fcf89ebeb45ae496…

For agents

JSON: https://agenteconomy.report/k/memory-manager.audit.json · badge: https://agenteconomy.report/k/memory-manager.audited.svg · skill rating: /k/memory-manager · commission an audit of any skill: US$ 29 per version.

How this is computed

The complete published package of this exact version was downloaded from the registry and read statically; nothing was executed. A deterministic pass extracts network destinations, binaries, environment variables, writes, install commands, obfuscation markers, subprocesses and wallets, each with file and line. An AI then reads the whole package with those facts and writes the summary, the capabilities and the findings under a strict schema; every finding it produces must cite a file, a line and the exact text, or it is dropped. The final verdict is the worst of the two passes. The audit does not change the skill's trust tier (policy); the author may respond through the dispute channel and the response is published here. Commissioned by: the Agent Economy Report (free program: the 150 most downloaded skills, September 2026).