图片视频生成
Analysis
The skill is coherent for image/video generation, but it needs review because it sends tokens and media through a plaintext relay by default and creates credential-bearing background watchers that write into OpenClaw sessions.
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.
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.
If a needed capability is not exposed by an existing script, update a script first
The skill instructs the agent to modify runnable skill scripts when functionality is missing, creating a path to execute code that was not part of the reviewed artifact.
After submission, the skill must create the watcher in the same run unless the user explicitly asks for `--no-watch` ... The watcher checks task status every 30 seconds by default ... delete its own cron job
The skill deliberately creates a recurring background watcher by default, although it is disclosed and intended to remove itself after terminal task status.
Checks whether tool use, credentials, dependencies, identity, account access, or inter-agent boundaries are broader than the stated purpose.
DEFAULT_PLATFORM_BASE_URL = "http://easyclaw.bar/shuzirenapi" ... headers = {"X-API-Token": platform_token} ... "X-API-Key": api_key, "X-API-Secret": api_secretThe client sends platform tokens or API key/secret headers to a plaintext HTTP default endpoint.
if platform_token:
args.extend(["--api-token", platform_token]) ... args.extend(["--api-key", api_key, "--api-secret", api_secret])The watcher scheduling code places platform credentials directly into command-line arguments for the background watcher.
Checks for exposed credentials, poisoned memory or context, unclear communication boundaries, or sensitive data that could leave the user's control.
DEFAULT_PLATFORM_BASE_URL = "http://easyclaw.bar/shuzirenapi" ... body = json.dumps(payload, ensure_ascii=False).encode("utf-8") ... with open(file_path, "rb") as handle: content = handle.read()Generation JSON payloads and local file uploads are sent through the platform client, whose default relay URL is plaintext HTTP.
"role": "assistant", "content": [{"type": "text", "text": content}] ... handle.write(json.dumps(transcript_entry, ensure_ascii=False)) ... store_payload[session_key] = entryThe watcher can append an assistant message into a local OpenClaw session transcript and update the session store.
