An automated script generator for creating viral videos.

AdvisoryAudited by Static analysis on Apr 30, 2026.

Overview

No suspicious patterns detected.

Findings (0)

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.

ConcernMedium Confidence
ASI02: Tool Misuse and Exploitation
What this means

A malformed pipeline ID could cause the agent to read, overwrite, or delete local JSON files outside the story graph cache.

Why it was flagged

pipeline_id is used directly to construct graph file paths, and the same derived path is used for writing and deleting files. If a path-like or absolute pipeline_id reaches these helpers, graph operations may affect JSON files outside the intended data/graphs directory.

Skill content
return os.path.join(self.storage_dir, f"{pipeline_id}.json") ... with open(graph_path, 'w', encoding='utf-8') as f: ... os.remove(graph_path)
Recommendation

Validate pipeline_id with a strict allowlist such as ^pipeline_[0-9]+$, reject slashes and absolute paths, resolve the final path, and verify it remains under the intended graph directory before file operations.

What this means

Users may expect the pipeline to stop after a small number of failed AI reviews, but it can continue asking for regeneration indefinitely if the agent follows the implementation message.

Why it was flagged

The implementation says AI review failures can be retried without limit, while SKILL.md advertises a maximum of 3 retries. This changes the user-visible stopping condition.

Skill content
# 注意:AI审核不通过时可以无限重试,没有次数限制 ... "message": f"AI审核未通过(得分{review.score}),需要重新生成(无次数限制)"
Recommendation

Make the code and documentation agree. Enforce the documented retry limit, or clearly disclose unlimited retries and require user confirmation before continuing after a reasonable number of failures.

What this means

Anything placed into the story state may be reused as context in later generations and reviews.

Why it was flagged

Stored prior episode content and graph data are inserted into future generation prompts, so persisted story text can influence later outputs.

Skill content
### 上一集内容 {prev_content} ... ### 图谱数据 {json.dumps(graph_data, ensure_ascii=False, indent=2)}
Recommendation

Avoid placing private or instruction-like text in story content unless intended, and clear local pipeline/graph data when it is no longer needed.