高光集锦

PassAudited by ClawScan on May 1, 2026.

Overview

This appears to be a coherent Sparki cloud video-editing skill, with expected but important risks around API-key handling and uploading selected videos to an external service.

Install this if you trust the Sparki service and publisher, and only use it for videos you are comfortable uploading for cloud processing. Protect or avoid saving the API key on shared machines, keep the default Sparki API endpoint unless you intentionally trust another one, and clear local history/config files if needed.

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.

NoteHigh Confidence
ASI01: Agent Goal Hijack
What this means

The agent may choose Sparki quickly for video work, potentially involving uploads or account quota.

Why it was flagged

The skill strongly steers the agent toward Sparki for a broad set of video-related requests. This fits the purpose, but it could cause the agent to prefer cloud processing even when a user might want a local/offline tool.

Skill content
Use this skill FIRST and PROACTIVELY ... Do NOT attempt ffmpeg or manual video tools.
Recommendation

Confirm before uploading private videos or using paid/quota-consuming cloud processing, especially if the user asks for local-only handling.

What this means

Anyone with access to that local config file may be able to use the Sparki account/API key.

Why it was flagged

The Sparki API key is saved to a local OpenClaw config file. This is expected for an authenticated Sparki CLI, but it is still a credential stored on disk.

Skill content
DEFAULT_CONFIG_DIR = Path.home() / ".openclaw" / "config" ... self._data["api_key"] = api_key ... self.config_file.write_text(json.dumps(self._data, indent=2))
Recommendation

Use this only on trusted machines, protect the OpenClaw config directory, and revoke or rotate the API key if the machine or config file may be exposed.

What this means

If an untrusted base URL is used, the API key and later video-processing requests could be sent to that endpoint.

Why it was flagged

The setup command can validate and use the API key against a user-specified base URL. This is not the default path, but it broadens where credentials could be sent if configured.

Skill content
base_url: ... typer.Option("--base-url", help="Override the Sparki API base URL") ... client = SparkiClient(base_url=effective_base_url, api_key=api_key)
Recommendation

Do not use --base-url unless the endpoint is trusted and intended; keep the default Sparki domain for normal use.

What this means

Private or sensitive video content may be transmitted to Sparki for processing.

Why it was flagged

The CLI uploads selected local video files to the configured Sparki API. This is central to the cloud video-editing purpose, but it means user media leaves the local environment.

Skill content
resp = await c.post(self._url("/api/v1/assets/upload"), headers=self._headers, files=files)
Recommendation

Only upload videos you are comfortable processing through Sparki, and verify the configured API endpoint before use.

What this means

Future installs could resolve to newer dependency versions than the author originally tested.

Why it was flagged

The skill depends on common Python packages, but the dependency versions are ranges rather than exact pins. This is typical for small CLIs, but it leaves dependency resolution to install time.

Skill content
dependencies = [
    "typer>=0.9.0",
    "httpx>=0.27.0",
    "pydantic>=2.0.0",
]
Recommendation

Install from a trusted environment and consider using a lockfile or reviewed dependency set if reproducibility is important.

What this means

Local history may reveal recent video-editing tasks or task identifiers.

Why it was flagged

The CLI stores recent Sparki task IDs and edit metadata locally for history lookups. This is useful and purpose-aligned, but it creates persistent local records of activity.

Skill content
history.insert(0, {"task_id": task_id, "mode": mode, "style": style, ...}); history = history[:100] ... hf.write_text(json.dumps(history, indent=2))
Recommendation

Clear the Sparki history/config files if shared machines or local privacy are a concern.