Skill flagged — suspicious patterns detected

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

Skill Composer

编排多个OpenClaw技能成自动化工作流,一次命令完成复杂任务。

MIT-0 · Free to use, modify, and redistribute. No attribution required.
0 · 37 · 0 current installs · 0 all-time installs
MIT-0
Security Scan
VirusTotalVirusTotal
Suspicious
View report →
OpenClawOpenClaw
Suspicious
high confidence
Purpose & Capability
The name/description match the implementation: this is a workflow composer that runs other OpenClaw skills. The code uses a YAML workflow and calls a CLI to execute skills, which is coherent with the stated purpose. The skill.json lists python3 and PyYAML dependency (appropriate).
!
Instruction Scope
Runtime instructions and the python code actually run arbitrary installed skills using subprocess to call 'claw skill exec <skill> ...'. The skill delegates execution to other skills (broad authority). The code performs variable interpolation (OK) and evaluates conditions using eval with builtins removed (safer than raw eval but still uses eval). It also assumes the last argument is the step's output path (a fragile, naive heuristic). SKILL.md and install.sh reference a path like {baseDir}/scripts/composer.py but the provided code lives at source/composer.py — documentation/path mismatch. The implementation requires the 'claw' CLI at runtime but this binary is not declared in the top-level registry metadata (discrepancy). Because it can run any installed skill, a malicious or misconfigured downstream skill could exfiltrate data or access credentials; the composer itself doesn't read arbitrary system files, but it enables others to do so.
Install Mechanism
No external downloads or obfuscated installers. An included install.sh installs PyYAML using apt-get or pip3 (standard). skill.json also declares a pip install for PyYAML. There is a minor inconsistency between the registry metadata (which earlier said 'no install spec') and the internal skill.json/install.sh that do provide install steps.
Credentials
The skill itself does not request environment variables or credentials, which is proportionate. However, skill.json declares it can orchestrate any installed skills ("skills": ["*"]), so it may invoke other skills that do require sensitive credentials — this increases the effective scope and risk and should be considered when installing the composer.
Persistence & Privilege
always:false and default autonomous invocation are used (normal). The skill does not request persistent system-wide privileges or modify other skills' configurations. Still, because it can autonomously run any installed skill, its blast radius is larger than a single-purpose skill; combine with other issues if you need to restrict execution.
What to consider before installing
What to check before installing: 1) Understand the delegation risk: Composer runs whatever 'claw skill exec <skill>' you list in workflows. Verify that every skill you will orchestrate is trusted and does not have permissions to read/exfiltrate secrets or sensitive files. 2) Ensure the required runtime is present: The code calls the 'claw' CLI but the top-level metadata did not declare 'claw' as a required binary. Confirm you have a legitimate 'claw' binary (the OpenClaw CLI) and that it is the expected official tool. 3) Use preview/validate first: The composer provides preview and validate modes—use them to inspect what will run before executing workflows. Start with non-privileged workflows in a sandboxed environment. 4) Check path/documentation mismatches: SKILL.md and install.sh reference scripts under 'scripts/', but the provided code is at source/composer.py. Confirm where to invoke the script and adjust paths if needed. 5) Review assumptions in workflows: The composer assumes the last arg is the output path and uses simple string interpolation; ensure your workflows conform to these expectations or the recorded outputs may be wrong. 6) Condition expressions: Conditions are evaluated using eval with builtins removed, which limits abuse but is not perfectly safe—avoid trusting untrusted workflow files. 7) Installation: install.sh uses apt-get or pip3 to install PyYAML (no external downloads). Prefer installing in an isolated environment (venv/container) to limit system impact. If you need to proceed: run composer.py preview <workflow> and validate first, audit all skills you plan to call, and run in an isolated environment until you are confident.
source/composer.py:74
Dynamic code execution detected.
Patterns worth reviewing
These patterns may indicate risky behavior. Check the VirusTotal and OpenClaw results above for context-aware analysis before installing.

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

Current versionv1.0.0
Download zip
automationvk973gzacf3a2vx8z4wmd7mxt8h82zt41latestvk973gzacf3a2vx8z4wmd7mxt8h82zt41productivityvk973gzacf3a2vx8z4wmd7mxt8h82zt41

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

SKILL.md

Skill Composer - 技能组合器

把多个OpenClaw技能串联成自动化工作流,一个命令完成多步操作!

为什么需要?

单个技能只能解决一步问题。真实场景往往需要多步:

  • 视频处理:整理 → 提取字幕 → 发布到公众号
  • 内容创作:搜索素材 → 总结 → 多平台裁剪 → 发布
  • 数据流程:下载数据 → 分析 → 生成图表 → 插入报告

Skill Composer 让你用 YAML 定义工作流,一键执行!

快速开始

1. 创建工作流文件

创建 workflow.yaml

name: "示例:视频处理流程"
steps:
  - name: "整理视频"
    skill: video-organizer
    args:
      - --input
      - /path/to/videos
      - --output
      - /tmp/organized
    output: organized

  - name: "生成字幕"
    skill: auto-subtitle
    args:
      - --input
      - "{{organized}}"
      - --output
      - /tmp/subtitles
    output: subtitles

  - name: "发布到公众号"
    skill: social-publisher
    args:
      - --input
      - "{{subtitles}}"
      - --platform
      - wechat

2. 运行工作流

python3 {baseDir}/scripts/composer.py run workflow.yaml

3. 预览(不实际执行)

python3 {baseDir}/scripts/composer.py preview workflow.yaml

工作流语法

结构

  • name: 工作流名称(可选)
  • steps: 步骤列表
  • 每个 step 包含:
    • name: 步骤名称(可选,用于日志)
    • skill: 要调用的技能名称
    • args: 参数列表(字符串数组)
    • output: 输出引用名(用于后续步骤引用)
    • if: 条件表达式(可选)

变量插值

使用 {{变量名}} 引用前一步的输出目录/文件。

示例:

args:
  - --input
  - "{{organized}}"  # 引用名为 'organized' 的前一步输出

条件执行

- name: "只在有错误时执行"
  skill: error-notifier
  if: "{{previous_step.status}} == 'failed'"

命令行接口

# 运行工作流
python3 {baseDir}/scripts/composer.py run <workflow.yaml>

# 预览
python3 {baseDir}/scripts/composer.py preview <workflow.yaml>

# 验证语法
python3 {baseDir}/scripts/composer.py validate <workflow.yaml>

# 列出可用示例
python3 {baseDir}/scripts/composer.py examples

示例工作流

示例1:内容创作流程

name: "公众号文章创作"
steps:
  - skill: content-researcher
    args: ["--topic", "AI技能开发", "--count", "10"]
    output: research

  - skill: ai-content-tailor
    args: ["--input", "{{research}}", "--platform", "wechat"]
    output: article

  - skill: wechat-formatter
    args: ["--input", "{{article}}", "--output", "./final.md"]

示例2:数据仪表板生成

name: "每周股票报告"
steps:
  - skill: tushare-finance
    args: ["--get", "daily", "--code", "000001.SZ", "--start", "2025-01-01"]
    output: raw_data

  - skill: data-chart-tool
    args: ["--input", "{{raw_data}}", "--type", "line", "--output", "chart.png"]
    output: chart

  - skill: social-publisher
    args: ["--input", "{{chart}}", "--template", "weekly-report"]

错误处理

  • 默认:任何步骤失败则停止整个工作流
  • 可配置:continue-on-error: true 在 workflow 级别
  • 每个步骤状态可用:{{step_name.status}}(success/failed)

限制

  • 当前仅支持串行步骤(下一步依赖前一步完成)
  • 不支持并行执行(未来版本)
  • 步骤间传递的是文件路径,不是内容

与现有技能配合

Skill Composer 不重复造轮子,它是指挥官:

  • 复用所有已安装的技能
  • 专注于步骤编排
  • 让单个技能的价值加倍

示例技能组合

  • video-organizer + auto-subtitle + social-publisher → 完整视频发布流水线
  • content-researcher + ai-content-tailor + wechat-formatter → 内容生产流水线
  • data-chart-tool + social-publisher → 数据报告自动化

技术实现

  • Python 3 + PyYAML
  • 调用 OpenClaw exec 工具运行每个技能
  • 自动处理依赖顺序
  • 详细日志输出

开发状态

  • 核心 YAML 解析
  • 步骤顺序执行
  • 变量插值 {{output}}
  • 错误处理和状态跟踪
  • 示例工作流
  • 单元测试
  • skill-creator 验证
  • clawhub 发布

待办

未来增强:

  • 并行步骤支持(无依赖的步骤可以同时执行)
  • 可视化工作流编辑器
  • 工作flow模板库
  • 步骤结果缓存(避免重复执行)
  • 更好的错误恢复机制

📞 支持

Files

7 total
Select a file
Select a file to preview.

Comments

Loading comments…