Agent Trust Protocol

WarnAudited by ClawScan on May 10, 2026.

Overview

The skill’s trust-scoring purpose is coherent, but one helper builds shell commands from user-controlled Moltbook data and the demo/state handling needs review before use.

Review or patch the Moltbook helper before using it with untrusted names or post IDs. Run demos only in a disposable environment or after backing up ~/.atp, pin the GitHub source you install, and avoid storing sensitive notes in the trust database.

Findings (6)

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

A malicious or malformed Moltbook username, domain, or post ID could cause the agent to run unintended local shell commands.

Why it was flagged

User-controlled CLI values such as username, domain, and post_id are concatenated into shell commands with shell=True, allowing shell metacharacters to execute local commands if untrusted data is passed through.

Skill content
subprocess.run(f"python3 {ATP_PY} {args}", shell=True, ...); score_out = atp_cmd(f"trust score {username}{domain_flag}"); subprocess.run(f"python3 {moltbook_py} post {post_id}", shell=True, ...)
Recommendation

Replace shell=True calls with argument-list subprocess.run(..., shell=False), validate usernames/domains/post IDs, and avoid reusing persisted bridge values as command text.

What this means

Running the demo may pollute or overwrite persistent trust records, which could affect future trust reports or agent decisions.

Why it was flagged

The demo intends to use isolated ATP data but performs trust add/interact/revoke/restore operations. The provided atp.py configuration stores ATP data under Path.home()/.atp, so unless overridden elsewhere, demo data can persist into the user's real trust graph.

Skill content
# Isolated environments for each agent ... atp_env = {"ATP_DATA_DIR": atp_data} ... atp(f'trust add alpha --fingerprint ... --score 0.7', env=atp_env) ... atp('trust revoke bravo --reason "Attempted to distribute unsigned skill"', env=atp_env)
Recommendation

Make ATP honor a documented data-directory override, run demos under a temporary HOME or explicit test database, warn users before mutating trust state, and provide reliable cleanup for demo-created records.

What this means

Old, test, or manually altered trust records could influence future decisions about which agents are trusted.

Why it was flagged

The skill persistently stores trust scores and interaction notes in local files that may influence later trust calculations.

Skill content
ATP_DIR = Path.home() / ".atp"; TRUST_DB = ATP_DIR / "trust.json"; INTERACTIONS_DB = ATP_DIR / "interactions.jsonl"; f.write(json.dumps(record) + "\n")
Recommendation

Review ~/.atp regularly, protect it with normal file permissions, avoid sensitive notes, and treat trust scores as advisory rather than authoritative.

What this means

Local users or processes on the same machine may be able to read trust records and interaction notes while the dashboard is running.

Why it was flagged

The dashboard exposes trust and interaction records through unauthenticated localhost API endpoints. Binding to 127.0.0.1 is a limiting control, but local processes can still access it while running.

Skill content
if self.path == "/api/trust": self._json_response(self._load_trust()) ... elif self.path == "/api/interactions": ... server = HTTPServer(("127.0.0.1", PORT), ATPHandler)
Recommendation

Only run the dashboard when needed, stop it afterward, and avoid putting sensitive information in interaction notes.

What this means

Using the wrong or overly privileged signing key could affect agent identity and trust relationships.

Why it was flagged

The protocol relies on agent identity keys for signing and challenge-response, which is expected for the stated purpose but is sensitive identity material.

Skill content
Each agent has an ed25519 keypair ... Agent A can challenge Agent B: "Sign this nonce with your key"
Recommendation

Use dedicated skillsign keys for this workflow and do not grant the skill access to unrelated private keys.

What this means

Future changes to the remote repositories could differ from the reviewed artifacts.

Why it was flagged

Installation guidance points to unpinned GitHub sources and an external companion project. This is user-directed and purpose-aligned, but provenance and version pinning are not documented.

Skill content
git clone https://github.com/FELMONON/trust-protocol.git ... Pair with skillsign for identity: https://github.com/FELMONON/skillsign
Recommendation

Install from a reviewed commit or release tag, verify the companion skillsign code, and keep package metadata aligned with the reviewed source.