Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

claw_poster

v1.0.0

自动生成设计海报/图片。当用户提出设计需求(如「帮我做个促销海报」「做一张活动通知图」「生成一张小红书封面」)时使用此技能。通过 visual-rag MCP 服务直接生成 PNG 图片,图片实时返回对话,无需管理文件或服务。

0· 118·0 current·0 all-time

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for zooagentpm/posterdesign.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "claw_poster" (zooagentpm/posterdesign) from ClawHub.
Skill page: https://clawhub.ai/zooagentpm/posterdesign
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Bare skill slug

openclaw skills install posterdesign

ClawHub CLI

Package manager switcher

npx clawhub@latest install posterdesign
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Suspicious
medium confidence
Purpose & Capability
The name/description (poster generation) align with the SKILL.md instructions: the skill calls a visual-rag MCP service to search templates, fill slots, render images, and return PNGs. Requiring no binaries or credentials is consistent with a simple API-backed generator. However, the MCP service URL is hardcoded to an ngrok-style dev domain (https://syncopated-retractively-anitra.ngrok-free.dev/mcp) and the doc tells users to contact a named individual ('小邹') if it fails — an operational detail that is unusual for a production skill and worth questioning.
Instruction Scope
Instructions are narrowly scoped to API calls (search_templates, get_template_spec, generate_poster, get_slot_crops, etc.) and to following template slot rules. They do NOT instruct reading local files, environment variables, or other system state. The notable scope issue: user-provided content (account names, brand names, creative copy, possibly sensitive text or images) will be transmitted to the external MCP endpoint. The SKILL.md explicitly requires asking users for real account/brand info and forbids fabrication — meaning the skill will send user-supplied PII to the remote service.
Install Mechanism
Instruction-only skill with no install spec and no code files executed locally. This is low install risk because nothing is written to disk by the skill package itself.
Credentials
The skill requests no environment variables, credentials, or config paths, which is proportionate to its stated function. Note: lack of required credentials suggests the external endpoint may accept unauthenticated requests or manage auth outside this skill — confirm how access control and logging are handled by the MCP service.
Persistence & Privilege
Skill is not always-enabled and uses normal model invocation rules. It does not request persistent system privileges or modify other skills' configurations. No signs of elevated persistence are present.
Scan Findings in Context
[no_regex_findings] expected: The static regex scanner found no code to analyze because this is an instruction-only skill. That is expected, but absence of findings does not guarantee safety; the SKILL.md hardcodes an external endpoint which is the primary runtime risk.
What to consider before installing
This skill will send whatever text (and likely image-related data) the user supplies to an external MCP service at a hardcoded ngrok-style domain. Before installing or using it, ask the skill author/provider: (1) for an official production endpoint (not a personal/ngrok tunnel) and proof of ownership; (2) a privacy/data-retention policy: where are images and text stored, who can access them, and how long are they kept; (3) whether data is transmitted over TLS and whether requests/responses are logged; (4) whether you can delete generated assets and logs. Avoid sending sensitive personal or proprietary data (account credentials, private documents, legal/medical information) through this skill until you have those assurances. If you cannot verify the service or its operator (the '小邹' contact), treat the endpoint as untrusted and consider using a well-known, vetted image-generation API or a self-hosted renderer instead.

Like a lobster shell, security has layers — review code before you run it.

latestvk97b9jz33j9716gkdb8b56ap7s83xf3d
118downloads
0stars
1versions
Updated 4w ago
v1.0.0
MIT-0

虾稿设计

使用 visual-rag MCP 工具生成设计图片。

MCP 服务地址:https://syncopated-retractively-anitra.ngrok-free.dev/mcp 若工具不可用或域名失效,告知用户联系小邹获取新地址。


标准流程

所有模型都应优先使用语义搜索路径。 关键词搜索仅在语义搜索无结果时作为兜底。

Step 1:ensure_services

确认服务在线,必须第一步调用。

Step 2:search_templates(语义搜索,首选)

search_templates(query, usage_type="cover", n=8, include_thumbnails=True)

用固定的 Query 模板构造查询,匹配效果最佳:

格式:[cover/content/poster] 语义:[为{目标受众}做{格式},传达{核心主张},整体{情绪/风格}]
参数说明示例
格式用途分类cover=小红书封面,content=正文配图,poster=手机海报
目标受众谁会看这张图内容创作者、职场新人、减脂博主…
核心主张图片想传达什么"AI工具让创作提速10倍"、"3步搞定职场沟通"
情绪/风格整体调性冲击力强/清新轻松/喜庆热烈/克制专业…

示例:

❌ 弱:"减脂封面" ✅ 强:"格式:cover 语义:为减脂打卡博主做封面,传达夏日减脂计划,整体清新轻松、带清单结构"

usage_type 参数与 query 中的"格式"保持一致,作为硬过滤(只搜对应类型的模板)。n 建议设为 8。

有视觉能力的模型:看缩略图合图,根据视觉风格直接选。 纯文本模型:传 include_thumbnails=False,根据 brief / visual_tags / layout_structure 等字段判断匹配度选模板 ID。

无结果时:改用 list_templates(keyword, include_thumbnails=True/False) 关键词兜底。关键词须命中模板描述中实际存在的词(如"插画""手绘""喜庆"),不能用语义词("减脂"无效)。

Step 3:get_template_spec(template_id)

获取选定模板的槽位详情(uuid、role、max_chars、max_per_line、line_break、hint、current)。

template_id纯整数,不带 t 前缀。正确:template_id=689,错误:template_id="t689"

Step 4:填写槽位内容

有视觉能力的模型:可根据需求适度发挥,但不得超出 max_chars / max_per_line 限制。

无视觉能力的模型:严格遵守以下规则,这是唯一的质量保障手段:

  • list_line_count: N → 必须填满 恰好 N 条,不能多也不能少,少填会出现大片空白
  • max_per_line → 每行字数绝对不超过此值,参考 current 示例的字数节奏
  • max_chars → 总字数不超过上限
  • line_break: true → 手动加 \n 换行,不靠自动折行
  • must_edit: true 的槽位必须填写,其余保留原值不做修改
  • 不擅自改变内容结构,模板设计什么格式就填什么格式

槽位来源字段(⚠ 必须遵守):每个槽位的 来源 字段定义了内容来源类型:

来源值含义规则
⚠ 必须来自真实用户信息,不能编造账号名、品牌名、期号、日期等必须追问用户获取,不能使用示例值、不能编造
可根据需求创作标题、正文、语录等可基于用户需求自由创作
装饰文字,可保留默认装饰性英文、设计元素等可保留原值,或按主题替换

填写指引 字段提供了具体的填写说明,填写前必须阅读。

若用户未提供真实信息(账号名、品牌名、期号等),先追问再填写,或保留原值,绝不编造。

Step 5:generate_poster(template_id, slots, adjustments?)

渲染并返回两张图:render(成品)+ inspect(UUID 标注图)。

slots字典,格式为 {"uuid": "填入文字"}。 正确:slots={"4b4c414680a0": "减脂打卡"} 错误:slots=[{"uuid": "4b4c414680a0", "value": "减脂打卡"}]

⚠ 渲染完成后返回的下载链接路径是 /files/文件名,不要自行拼接路径。

Step 6:验收(渲染完成后必须检查)

generate_poster 返回结果包含:

  • render 图(成品)
  • inspect 图(色码标注:🔴已确认问题 🟡疑似 🟢正常 ⬜装饰/非必填)
  • 📊 质检报告(文字,随文本一起返回)
  • 🔴 高危裁图(有确认问题时自动附加)

验收流程:

  1. 先读质检报告

    • 🔴 确认问题 → 必须处理(文字溢出/元素缺失),通常需缩短文字后重渲
    • 🟡 疑似问题 → 调用 get_slot_crops 放大查看后决定是否处理
    • ✅ 全部正常 → 继续视觉检查
  2. 看 render 图(有视觉能力时):

    • 装饰贴纸是否遮挡文字
    • 列表是否有大片空白(槽位未填满)
    • 整体视觉效果是否达标
  3. 处理 🟡 疑似问题(按需):

    get_slot_crops(render_path="/path/t708_xxx_render.png", uuids=["uuid1", "uuid2"])
    
  4. 定位布局问题:看 inspect 图,左上角 UUID 前8位对应 adjustments 中的 id

批量生成时,每张图必须独立验收,不能因为第1张通过就认为其余都正确。

调整元素位置(inspect 图定位后):

adjustments=[{"id": "uuid前8位", "style": {"transform": "translateX(80px)"}}]

支持:transform / display: none / opacity / fontSize / top / left

无视觉能力的模型:依赖质检报告文字,严格处理 🔴 问题;从源头(Step 4 字数控制)规避 🟡。


原则

  • 内容优先:内容多换高密度模板,不删减用户内容
  • 给成品:有视觉能力的模型自行调整到满意后再展示;无视觉模型严格填槽后直接交付
  • 渲染完成后展示 render 图,并提供响应中返回的下载链接(不自行构造文件名)

Comments

Loading comments...