TruContext OpenClaw
Analysis
This memory skill mostly matches its stated purpose, but unsafe path handling and silent workspace fallback could run unintended code or mix memory between projects.
Findings (5)
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.
Checks for instructions or behavior that redirect the agent, misuse tools, execute unexpected code, cascade across systems, exploit user trust, or continue outside the intended task.
cwd=$(pwd)
...
read -r agent_id root_node user_root primary_about < <(python3 -c "
import json, sys, os
state = json.load(open('$STATE_FILE'))
cwd = '$cwd'The wrapper interpolates the current working directory and state-file path directly into Python source code. A crafted path containing quotes or Python syntax could alter the code executed during normal tc-memory use.
node | package: trucontext-openclaw | creates binaries: trucontext-openclaw
Installation depends on an external npm package that provides the local binary/setup path. This is the disclosed install mechanism, but it is still a supply-chain trust point.
Checks whether tool use, credentials, dependencies, identity, account access, or inter-agent boundaries are broader than the stated purpose.
TruContext CLI auth (`~/.trucontext/credentials.json`) — the `trucontext` CLI manages its own auth tokens. This skill calls the CLI; it does not read or store credentials directly.
The skill relies on the user's authenticated TruContext CLI session. This is expected for the integration and is disclosed, but actions occur under that account.
Checks for exposed credentials, poisoned memory or context, unclear communication boundaries, or sensitive data that could leave the user's control.
# Fallback: use first agent or default
agents = list(state.get('agents', {}).items())
if agents:
aid, a = agents[0]
print(aid, a.get('root_node', aid), a.get('user_root', 'dustin'), a.get('primary_about', aid))If the current directory does not match a registered workspace, the resolver silently selects the first configured agent instead of failing closed or asking for confirmation.
At the start of every session, call: ```bash tc-memory recall "active projects and entities relevant to my current work" ```
The skill intentionally retrieves persistent memory into each session. This is central to its purpose, but it means stored context can influence future agent behavior.
