OpenClaw/clawhub-security-signals huggingface dataset:
Skill: midasheng-audio-tagging (version 1.0.0)

--- name: dasheng-audio-tag description: Audio tagging service for environmental sound recognition. Use when user needs to identify environmental sounds in audio files (water sounds, snoring, etc.) or analyze audio content for sound classification. --- # dasheng-audio-tag Audio tagging service that identifies environmental sounds in audio files. ## Quick Start Tag an audio file: ```bash python3 scripts/audiotag.py <audio_file> # 服务地址: https://llmplus.ai.xiaomi.com/dasheng/audio/tag ``` Check queue status: ```bash python3 scripts/audiotag.py --queue ``` ## API Details **Tagging Endpoint:** `POST https://llmplus.ai.xiaomi.com/dasheng/audio/tag` - Method: POST, multipart form-data with file upload **Queue Metrics Endpoint:** `POST https://llmplus.ai.xiaomi.com/metrics?path=/dasheng/audio/tag` - Returns: `active`（当前活跃请求数）、`avg_latency_ms`（平均耗时） - 预估等待时长 = active × avg_latency_ms ## Usage Patterns ### Basic tagging ```bash python3 scripts/audiotag.py audio.mp3 ``` ### Check queue / waiting status ```bash python3 scripts/audiotag.py --queue ``` ### Programmatic usage ```python from scripts.audiotag import tag_audio, check_queue, format_queue_status # Tag audio result = tag_audio("sample-0.mp3") # Check queue queue_info = check_queue() print(format_queue_status(queue_info)) ``` ## Queue Status（排队情况） ### 何时调用 1. **IM 即将超时但 tag 服务还未返回结果时**：调用 `--queue` 查排队情况，告知用户当前排队状态并请用户稍后来问任务是否完成。 2. **用户稍后询问任务进度但 tag 服务仍未返回时**：调用 `--queue` 返回最新排队情况给用户。 ### 返回字段说明 | 字段 | 说明 | |------|------| | `active` | 当前活跃请求数（排队中） | | `avg_latency_ms` | 平均处理耗时（毫秒） | | `estimated_wait_sec` | 预估等待时长（秒）= active × avg_latency_ms | | `total_processed` | 累计已处理请求数 | ### 状态分级 - 🟢 active=0 或预估等待 <5s → 服务空闲/很快完成 - 🟡 预估等待 5-30s → 轻微排队 - 🔴 预估等待 >30s → 排队较长，建议稍后重试 ## Supported Audio Formats Common audio formats: mp3, wav, m4a, ogg, flac ## Troubleshooting - **File not found**: Check the audio file path - **API request failed**: Verify network connectivity and API endpoint availability - **Unsupported format**: Try converting to mp3 or wav format - **Long wait**: Use `--queue` to check current queue status


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: cinience/aliyun-mps-video-translation (version 1.0.0)

--- name: aliyun-mps-video-translation description: Use when creating or managing Alibaba Cloud IMS video translation jobs via OpenAPI (subtitle/voice/face). Use when you need API-based video translation, status polling, and job management. version: 1.0.0 --- Category: service # IMS Video Translation (OpenAPI) Submit video translation jobs via OpenAPI and poll results for subtitle-level, voice-level, and face-level processing. ## Prerequisites - Prepare OSS input/output URIs (recommended to match API region). - Configure AK: `ALICLOUD_ACCESS_KEY_ID` / `ALICLOUD_ACCESS_KEY_SECRET` / `ALICLOUD_REGION_ID` (`ALICLOUD_REGION_ID` can be used as the default region; if unset, choose the most reasonable region and ask when unclear). ## Workflow 1) Prepare source file and output OSS location. 2) Submit job with `SubmitVideoTranslationJob`. 3) Poll status and result with `GetSmartHandleJob`. 4) Use `ListSmartJobs` / `DeleteSmartJob` for job management when needed. ## Level Selection and Parameters - Selection rules and fields for subtitle/voice/face levels are in `references/fields.md`. - Field examples (Input/Output/EditingConfig) are also in `references/fields.md`. ## Notes - For second-pass editing, set `SupportEditing=true` in the first job and reference `OriginalJobId` later. - Input and output OSS regions must match the OpenAPI invocation region. - Use longer polling intervals for large jobs to avoid frequent requests. ## Validation ```bash mkdir -p output/aliyun-mps-video-translation echo "validation_placeholder" > output/aliyun-mps-video-translation/validate.txt ``` Pass criteria: command exits 0 and `output/aliyun-mps-video-translation/validate.txt` is generated. ## Output And Evidence - Save artifacts, command outputs, and API response summaries under `output/aliyun-mps-video-translation/`. - Include key parameters (region/resource id/time range) in evidence files for reproducibility. ## References - Source list: `references/sources.md`


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: onetian1211/fnclub-signer (version 1.0.2)

--- name: fnclub-signer description: 飞牛论坛(club.fnnas.com)自动签到。触发场景：(1) 用户要求"飞牛签到"、"飞牛论坛签到"、"fnclub签到"；(2) 设置定时飞牛论坛签到任务；(3) 查询飞牛论坛签到状态。 --- # 飞牛论坛签到 自动完成飞牛私有云论坛(club.fnnas.com)每日签到，获取飞牛币奖励。 ## 凭证要求 本技能需要以下环境变量才能正常运行： | 变量名 | 说明 | 是否必需 | 敏感性 | |--------|------|---------|--------| | `FNCLUB_USERNAME` | club.fnnas.com 登录用户名 | ✅ 是 | 🔴 高 | | `FNCLUB_PASSWORD` | club.fnnas.com 登录密码 | ✅ 是 | 🔴 高 | | `BAIDU_OCR_API_KEY` | 百度 OCR API 访问密钥 | ✅ 是 | 🟡 中 | | `BAIDU_OCR_SECRET_KEY` | 百度 OCR API 密钥 | ✅ 是 | 🟡 中 | ### 可选环境变量 | 变量名 | 说明 | 默认值 | |--------|------|--------| | `FNCLUB_CONFIG` | 配置文件路径 | `scripts/config.json` | | `FNCLUB_DATA_DIR` | 数据目录（Cookie/Token缓存） | `scripts/` | ### 方式一：ClawHub 环境变量（推荐） > 注意：这样添加环境变量会保存在 openclaw.json 中，不会暴露在系统环境变量中。 ```bash openclaw config set env.vars.FNCLUB_USERNAME "你的用户名" openclaw config set env.vars.FNCLUB_PASSWORD "你的密码" openclaw config set env.vars.BAIDU_OCR_API_KEY "你的百度OCR API Key" openclaw config set env.vars.BAIDU_OCR_SECRET_KEY "你的百度OCR Secret Key" ``` ### 方式二：配置文件 在 `scripts/config.json` 中配置： ```json { "username": "你的用户名", "password": "你的密码", "baidu_ocr_api_key": "百度OCR API Key", "baidu_ocr_secret_key": "百度OCR Secret Key" } ``` ### 获取百度OCR API 1. 访问 [百度AI开放平台](https://ai.baidu.com/) 2. 创建应用，选择"文字识别"服务 3. 获取 API Key 和 Secret Key ## 安装 ### 安装 Node.js 依赖 ```bash cd scripts npm install ``` 这将安装以下依赖： - `axios` - HTTP 请求库 - `cheerio` - HTML 解析库 - `tough-cookie` - Cookie 管理库 ## 使用 ### 手动签到 ``` node scripts/fnclub_signer.js ``` ### 定时签到 使用 OpenClaw cron 设置每日自动签到： ``` openclaw cron add \ --name "fnclub-signer" \ --every "1d" \ --session main \ --system-event "fnclub-sign" \ --description "飞牛论坛每日签到" \ --tz "Asia/Shanghai" ``` ## 文件说明 - `scripts/fnclub_signer.js` - 主签到脚本 (Node.js) ✅ 推荐 - `scripts/config.json.example` - 配置文件模板 - `scripts/config.json` - 配置文件（需手动创建，通过命令的形式设置变量不需要创建） - `scripts/cookies.json` - Cookie缓存（首次登录后自动生成） - `scripts/token_cache.json` - 百度OCR Token缓存（首次需要验证码时自动生成） - `scripts/node_modules/` - Node.js 依赖


Security scan verdicts — ClawScan: clean | static analysis: suspicious | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)
Skill: jpnarchi/linkedin-video-dl (version 1.0.0)

SKILL.md # linkedin-video-dl Use linkedin-video-dl to download videos from LinkedIn posts. Takes a public post URL and saves the MP4 video to the current directory. No authentication required for public posts. ## Setup (once) ```bash cd linkedin-video-dl && go build -o linkedin-video-dl . ``` Or install globally: ```bash go install . ``` ## Common commands Download video: `linkedin-video-dl "<post-url>"` ## Example ```bash linkedin-video-dl "https://www.linkedin.com/posts/midudev_anthropic-ha-acusado-a-deepseek-activity-7432111870431449089-9evi" ``` ## Notes - Only works with **public** LinkedIn posts that contain video. - No authentication or API keys needed. - Zero external dependencies — built entirely with Go's standard library. - Videos are downloaded from LinkedIn's CDN (`dms.licdn.com`) at the best available quality. - Downloads use a temporary `.tmp` file and rename on completion — safe to interrupt without leaving corrupt files. - Output filename is derived from the post URL slug (truncated to 80 chars). - If a file with the same name already exists, the download is skipped to avoid overwriting. - Progress bar is shown during download with percentage, downloaded size, and total size.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: mamamacb/req-expander (version 1.0.2)

--- name: req-expander description: 依据需求概述，按明源定制开发设计要点输出可覆盖研发、测试的详细需求要点； --- ## 执行步骤 1. 根据需求概述，判断需求类型（如：查询控件、普通列表、普通按钮等） 2. 对于需求类型、界面元素位置等关键信息存在疑问的，利用 [AskUserQuestion] 要求用户澄清问题，**不超过5个问题**； 3. 根据需求类型以及输出需求规格要点，严格按照以下格式： - 需求类型 - 界面元素位置 - 需求规格要点 - 根据需求类型匹配[/reference/明源定制开发设计要点.md]输出详细要点 ## 输出示例 ``` 需求1： 需求类型：列表 界面元素位置：合同登记>登记列表 需求规格要点： - 默认排序：按“合同编号”字段排序，以降序方式； - 支持分页查询，默认每页显示20条数据； - 其他要点 需求2： 需求类型：查询控件 界面元素位置：合同登记>合同查询 需求规格要点： - 取数范围：公司-项目-分期； - 其他要点 ``` ## 输出要求 - 如果支持企微文档创建，有限创建为企微文档，否则创建为Markdown文件； - Markdown文件为[需求XXX-时间.md]文件，文件名XXX为需求概述中的关键词 ## 风格要求 - 使用简体中文 - 业务术语前后一致 - 句子短、结论先行

path: reference/明源定制开发设计要点.md
content: ## 查询控件
### 下拉查询
**评估要点**：
- 取数范围是否符合业务需求
- 默认显示是否符合业务需求
- 非末级能否选择是否符合业务需求

**评估示例**：
- 取数范围：例如，公司-项目-分期；
- 默认显示：默认显示为空，或默认显示到项目、分期；
- 非末级能否选择：能或不能。

### 导航查询
**评估要点**：
- 取数范围是否符合业务需求
- 非末级能否选择是否符合业务需求

**评估示例**：
- 取数范围：例如，当前公司下成本系统的项目；
- 非末级能否选择：能或不能。

### 视图查询
**评估要点**：
- 默认视图是否符合业务需求
- 是否在当前视图范围内进行查询是否符合业务需求
- 视图取数要求是否符合业务需求

**评估示例**：
- 默认视图：显示***视图；
- 是否在当前视图范围内进行查询：是或否；
- 视图取数要求：（分视图描述各视图的取数条件）<br>A视图：取数范围：公司-项目-分期；<br>B视图：取数范围：公司-项目。

### 快速查询 - 普通查询
**评估要点**：
- 查询字段是否符合业务需求
- 特殊字段查询要求是否符合业务需求

**评估示例**：
- 查询字段：（如：合同编号、合同名称、房间）
- 特殊字段查询要求：精确查询、控件查询。例如房间通过放大镜弹出界面选择；（无说明则默认所有字段模糊查询）

### 快速查询 - 高级查询
**评估要点**：
- 查询字段是否符合业务需求
- 特殊字段查询要求是否符合业务需求

**评估示例**：
- 查询字段：（如：合同编号、合同名称、房间）
- 特殊字段查询要求：精确查询、控件查询。例如房间通过放大镜弹出界面选择；（无说明则默认所有字段模糊查询）

## 列表
### 普通列表
**评估要点**：
- 默认排序是什么
- 数据列有哪些，每个数据列的取值范围是什么，是否必填、是否可编辑
- 数据列显示要求是什么
- 长度要求是什么
- 合计列要求是什么  
- 单击操作是什么（如：点击合同列表刷新合同变更列表）
- 列表按钮显示要求是什么（如：已审核的列表中只显示“取消审核”按钮 \|XXX视图无XXX按钮）   
- 数据列编辑逻辑是否符合业务需求

**评估示例**：
- 默认排序：按**字段排序，以升序/降序方式；
- 数据列：（如：合同编号、合同名称、房间）
- 数据列显示要求、长度要求（如：异常数据以红色字体显示\|数据显示固定格式 \|超链接功能 \|XXX视图无XXX数据列）
- 合计列要求（如：按选中记录/当前页/所有页合计）
- 单击操作（一般主/从列表需要）如：从属列表，点击合同列表刷新合同变更列表）
- 列表按钮显示要求（如：已审核的列表中只显示“取消审核”按钮 \|XXX视图无XXX按钮）
- 数据列编辑逻辑（如**字段是否可编辑，**字段的数据运算逻辑）    

### 树列表
**评估要点**：
- 默认排序是什么
- 数据列显示要求是什么
- 长度要求是什么
- 合计列要求是什么  
- 单击操作是什么（如：点击合同列表刷新合同变更列表）
- 列表按钮显示要求是什么（如：已审核的列表中只显示“取消审核”按钮 \|XXX视图无XXX按钮）       
- 数据列编辑逻辑是否符合业务需求

**评估示例**：
- 默认排序：按**字段排序，以升序/降序方式；
- 数据列显示要求、长度要求（如：异常数据以红色字体显示\|数据显示固定格式 \|超链接功能 \|XXX视图无XXX数据列）
- 合计列要求（如：按选中记录/当前页/所有页合计）
- 单击操作（一般主/从列表需要）如：从属列表，点击合同列表刷新合同变更列表）
- 列表按钮显示要求（如：已审核的列表中只显示“取消审核”按钮 \|XXX视图无XXX按钮）
- 数据列编辑逻辑（如**字段是否可编辑，**字段的数据运算逻辑）        

## 新增/编辑页面（详情页面）
**评估要点**：
- 字段录入框、下拉控件、单选、复选控件等：
  ```
  唯一性要求（如：当前项目内唯一），取数要求：复杂数据展现/下拉控件和单选/复选控件需要说明要求。（如：某某参数|固定值A、B、C），操作要求：说明字段之间逻辑关系（如：选择某选项后其他字段变化要求）
  ```
- 弹出选择控件：
    ```
    - 弹出界面：（如：弹出选择供应商界面）
    - 文本链接：（如：链接打开对应供应商界面）
    - 操作要求：说明字段之间逻辑关系（如：选择供应商后同步更新“联系人”为对应供应商联系人）
    ```
- 上传文档：
    - 文档类型（如：合同类文档、合同变更类文档）
    - 文档格式（如：PDF、WORD）
    - 操作要求（如：新增模式允许上传文档）

## 标签页
**评估要点**：
- 标签页数量是否符合业务需求
- 每个标签页的功能是否符合业务需求

**评估示例**：
- 标签页数量：（如：2个标签页）
- 每个标签页的功能：（如：合同详情、合同变更详情）

## 按钮 - 功能操作按钮
**评估要点**：
- 操作前校验（如：是否确认操作、是否选择了记录）
- 操作要求（如：删除选择的记录，同步删除其子级记录）

**评估示例**：
- 操作前校验（如：是否确认操作、是否选择了记录）
- 操作要求（如：删除选择的记录，同步删除其子级记录）


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: texka001/ticket-monitor-ichinosuke (version 1.0.4)

--- metadata.clawdbot: name: "ticket-monitor-ichinosuke" version: "1.0.5" description: "春風亭一之輔の公式サイトを監視し、東京公演のチケット情報をDiscordに通知します。" requires.env: - DISCORD_WEBHOOK_URL files: - "*" install: "bash scripts/install.sh" --- # Ticket Monitor - 春風亭一之輔 春風亭一之輔の公式ウェブサイト（いちのすけえん）をスクレイピングし、東京都内で開催される新しい公演チケット情報を検知して指定のDiscordに通知するツールです。 ## 必要な依存関係 (Dependencies) このスクリプトを実行するには、Python 3と以下の外部パッケージが必要です。 - `requests` - `beautifulsoup4` - `python-dotenv` 事前に以下のコマンドでインストールしてください。 ```bash pip install requests beautifulsoup4 python-dotenv ``` ## インストールと設定 環境変数として、通知先のDiscord Webhook URLの設定が必要です。 Docker・VPSでOpenClawを稼働している場合、以下の手順でOpenClaw大元の設定ファイルに直接環境変数を追加してください。 **【VPS / Docker コンテナ環境での設定手順】** 1. VPSにログインし、OpenClaw本体の `docker-compose.yml` が置かれているディレクトリに移動します。 2. ディレクトリ内にある設定ファイル（`.env`）を開きます。 3. ファイルの末尾に、以下の環境変数を追記して保存します。 ```env DISCORD_WEBHOOK_URL=https://discord.com/api/webhooks/... ``` 4. リロードするために、コンテナを一度停止して再起動します。 ```bash docker compose down docker compose up -d ``` ## 利用方法 OpenClawエージェントに対して以下のように指示してください。 - 「春風亭一之輔の新しいチケット情報がないか確認して」 - 「一之輔の東京公演をチェックして」 エージェントは自律的に `scripts/ticket_monitor.py` を実行し、前回確認時からの差分（新規公演情報）のみをDiscordに通知し、実行結果をチャットで返答します。 ## セキュリティ・プライバシー - 外部APIへの通信: 通知の送信用に提供されたDiscord Webhook URLに対してPOSTリクエストを送信します。 - データの保存: `data/seen_tickets.json` に既読の公演ID（URLまたはテキスト）をローカルに保存し、差分検知に使用します。


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (HIGH)
Skill: daowuu/quick-capture (version 1.0.0)

--- name: quick-capture description: "帮用户把信息写入笔记系统：碎片化信息原样追加到当日 Journal（不改），待整理的笔记归纳成结构化知识写到 Inbox（要完善）。触发于：记笔记、记碎片、存一下、写到 inbox/journal 等。" metadata: { "openclaw": { "emoji": "📝", "requires": { "bins": ["python3"] }, "install": [], "homepage": "https://github.com/daowuu/elysia" }, } --- # Quick Capture 把用户输入快速写入笔记系统的 `Inbox` 或 `Journal`。 ## 什么时候用 当用户要你： - 记一下 / 记录一下 / 收一下 / 存一下 - 放到 Inbox - 写到 Journal / 今日日记 - 记录碎片化想法、观察、灵感、临时上下文 ## 去哪里 - `Inbox` - 用于待处理记录、链接收藏、稍后整理的素材、还没分流的信息 - 用户没明确说写到 Journal 时，默认写这里 - `Journal` - 用于当天碎片化信息、临时想法、现场观察、过程片段 - 追加到今日日记，并按 `---` 分块 ## 执行方式 优先使用脚本： ```bash python3 $SKILLS_ROOT/quick-capture/scripts/capture_note.py inbox --title "标题" --content "内容" python3 $SKILLS_ROOT/quick-capture/scripts/capture_note.py journal --title "分块标题" --content "内容" ``` 可选参数： ```bash --source-url "https://example.com" --tags "AI, 推荐系统" ``` 说明： - `--tags` 只对 `Inbox` 生效 - `Journal` 如果不传标题，会自动用当前时间作为块标题 - `Inbox` 如果不传标题，会从正文第一条有效内容生成标题 ## 工作规则 **两套处理逻辑，务必区分清楚：** - **Journal（碎片化信息）** - 用户说"记碎片""今天""journal""日记"时写这里 - 原样追加，不修改、不总结、不完善 - 只保留原始内容，保持本来面目 - **Inbox（待整理的笔记）** - 用户说"记笔记""记一下""存到 inbox"时写这里 - 主动理解内容，归纳整理成结构化知识笔记 - 补充缺失背景、完善结构、给出定义/思路/应用场景 - 不能机械堆砌原文，要当成在写自己的知识库 - **公式一律用 LaTeX 编写**，用 `$\inline$` 或 `$$\block$$` 格式 - **默认行为** - 用户只说"记一下""存一下"时，默认写 `Inbox` 并完善 - 只有明确说"碎片""journal""日记"时才写 Journal - 不要先问一堆问题，优先直接落笔 ## 输出要求 - `Inbox`：创建一篇结构完整的知识笔记 - `Journal`：追加原始分块，不加工 - 回答尽量简短： - `已写入 Inbox：Inbox/2026/2026-03/...` - `已追加到今日日记：Journal/2026/2026-03/2026-03-18.md` ## 输出要求 - `Inbox`：创建一篇新笔记 - `Journal`：追加到今日日记，形成一个新的 `---` 分块 - 回答尽量简短，例如： - `已写入 Inbox：Inbox/2026/2026-03/...` - `已追加到今日日记：Journal/2026/2026-03/2026-03-18.md`


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (HIGH)
Skill: atlaspa/openclaw-egress (version 1.0.2)

--- name: openclaw-egress user-invocable: true metadata: {"openclaw":{"emoji":"🌐","requires":{"bins":["python3"]},"os":["darwin","linux","win32"]}} --- # OpenClaw Egress Network DLP for agent workspaces. Scans skills and files for outbound URLs, data exfiltration endpoints, and network function calls. ## The Problem Skills can phone home. A compromised skill can POST your workspace contents, API keys, or conversation history to an external server. Nothing monitors what URLs your skills connect to or what data they could send. ## Commands ### Full Scan Scan workspace for all outbound network risks. ```bash python3 {baseDir}/scripts/egress.py scan --workspace /path/to/workspace ``` ### Skills-Only Scan ```bash python3 {baseDir}/scripts/egress.py scan --skills-only --workspace /path/to/workspace ``` ### Domain Map List all external domains referenced in workspace. ```bash python3 {baseDir}/scripts/egress.py domains --workspace /path/to/workspace ``` ### Quick Status ```bash python3 {baseDir}/scripts/egress.py status --workspace /path/to/workspace ``` ## What It Detects | Risk | Pattern | |------|---------| | **CRITICAL** | Base64/hex payloads in URLs, pastebin/sharing services, request catchers, dynamic DNS | | **HIGH** | Network function calls (requests, urllib, curl, wget, fetch), webhook/callback URLs | | **WARNING** | Suspicious TLDs (.xyz, .tk, .ml), URL shorteners, IP address endpoints | | **INFO** | Any external URL not on the safe domain list | ## Exit Codes - `0` — Clean - `1` — Network calls detected (review needed) - `2` — Exfiltration risk detected (action needed) ## No External Dependencies Python standard library only. No pip install. No network calls. Everything runs locally. ## Cross-Platform Works with OpenClaw, Claude Code, Cursor, and any tool using the Agent Skills specification.


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: suspicious | SkillSpector: suspicious (CRITICAL)
Skill: yesong-hue/data-pipeline-toolkit-v2 (version 1.0.0)

--- name: data-pipeline-toolkit description: 快速构建ETL数据管道 — 提取(APIs/数据库/文件)、转换(清洗/过滤/聚合)、加载(数据仓库)，支持定时调度和监控告警。 version: 1.0.0 author: yesong-Hue tags: [ETL, 数据管道, 数据集成, 自动化, 调度] readme: | # 数据管道工具箱 快速构建企业级ETL数据管道。 ## 核心功能 - Extract：支持APIs、数据库、CSV/JSON/Parquet文件、S3等 - Transform：清洗、过滤、聚合、关联 - Load：PostgreSQL/MySQL、Snowflake/BigQuery、S3等 - 定时调度：Cron或事件驱动 - 监控告警：失败自动通知 ## 安装 ```bash clawhub install data-pipeline-toolkit ``` ## 适用场景 - 数据工程师：快速搭建数据管道 - 运营人员：自动化数据汇总报表 - 开发者：定时同步第三方API数据 ## 相关资源 更多AI技能包和工具，请访问：[AI智造工坊](http://ai.qnitgroup.com) --- # 数据管道工具箱 > 快速构建ETL数据管道：提取 → 转换 → 加载 → 调度 ## 核心功能 1. **多源提取** — REST APIs、GraphQL、SQL数据库、CSV/JSON/Parquet文件、S3/云存储、Kafka/SQS 2. **数据转换** — 清洗、过滤、聚合、关联、跨表Join 3. **多目标加载** — PostgreSQL/MySQL、Snowflake/BigQuery、S3、数据仓库 4. **定时调度** — Cron任务或事件触发 5. **监控告警** — 失败自动通知，可视化运行状态 ## 快速开始 ```bash # 创建数据管道 ./pipeline.sh create my-pipeline # 添加数据源 ./pipeline.sh extract my-pipeline api --url https://api.example.com/data # 添加转换规则 ./pipeline.sh transform my-pipeline filter "status == 'active'" ./pipeline.sh transform my-pipeline aggregate "group by category, sum(amount)" # 添加目标存储 ./pipeline.sh load my-pipeline postgres --connection $DATABASE_URL # 运行管道 ./pipeline.sh run my-pipeline ``` ## 支持的数据源 | 类型 | 具体来源 | |------|----------| | APIs | REST API, GraphQL, 内部服务 | | 数据库 | PostgreSQL, MySQL, MongoDB, SQL Server | | 文件 | CSV, JSON, Parquet, Excel | | 云存储 | AWS S3, Google Cloud Storage | | 消息队列 | Kafka, AWS SQS | ## 支持的目标存储 | 类型 | 具体目标 | |------|----------| | 数据库 | PostgreSQL, MySQL, BigQuery, Snowflake | | 数据仓库 | ClickHouse, DuckDB, TimescaleDB | | 文件存储 | S3, GCS, 本地文件 | | API | 第三方API回传 | ## 典型使用场景 ### 场景1：每日销售数据汇总 ```bash # 从CRM API提取昨日销售数据 ./pipeline.sh extract daily-sales api \ --url "https://crm.example.com/api/orders?date=yesterday" # 转换：按产品分类汇总 ./pipeline.sh transform daily-sales aggregate \ --group-by "product_category" \ --sum "quantity,amount" # 加载到数据仓库 ./pipeline.sh load daily-sales bigquery \ --project "my-project" --dataset "sales" --table "daily_summary" # 设置每日定时任务 ./pipeline.sh schedule daily-sales "0 6 * * *" ``` ### 场景2：用户行为数据同步 ```bash # 从日志文件提取 ./pipeline.sh extract user-logs file --path "/var/logs/app/*.json" # 清洗和转换 ./pipeline.sh transform user-logs filter "event_type != 'heartbeat'" ./pipeline.sh transform user-logs add-column "timestamp:parse_timestamp(time)" # 加载到ClickHouse ./pipeline.sh load user-logs clickhouse --connection $CH_URL ``` ## 监控与告警 ### 查看运行状态 ```bash ./pipeline.sh status my-pipeline # 输出： # Status: ✅ Running # Last Run: 2026-05-05 06:00:00 # Duration: 45s # Records Processed: 12,847 # Errors: 0 ``` ### 配置告警 ```bash # 失败时发送邮件 ./pipeline.sh alert my-pipeline email --to [REDACTED_SECRET] # 失败时发送飞书消息 ./pipeline.sh alert my-pipeline webhook --url "https://open.feishu.cn/..." ``` ## 推荐资源 - **ShadowAI API（数据管道配套）**: https://referer.shadowai.xyz/r/1056448 --- *由 AI智造工坊 (http://ai.qnitgroup.com) 整理发布 | 安装源: ClawHub*


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: daniellummis/junit-failure-fingerprint (version 1.0.0)

--- name: junit-failure-fingerprint description: Cluster JUnit failures into stable fingerprints so CI triage focuses on root causes, not noisy one-off logs. version: 1.0.0 metadata: {"openclaw":{"requires":{"bins":["bash","python3"]}}} --- # JUnit Failure Fingerprint Use this skill to compress noisy JUnit failures/errors into repeatable fingerprints. ## What this skill does - Scans one or more JUnit XML files - Extracts only failing/error test cases - Normalizes volatile tokens (IDs, numbers, line numbers, addresses, UUIDs) - Generates stable fingerprint hashes for similar root-cause failures - Emits grouped triage output (`text` or `json`) ## Inputs Optional: - `JUNIT_GLOB` (default: `test-results/**/*.xml`) - `TOP_N` (default: `20`) - `OUTPUT_FORMAT` (`text` or `json`, default: `text`) - `STACK_LINES` (default: `3`) — number of normalized stack lines to include in fingerprint seed - `FAIL_ON_FAILURES` (`0` or `1`, default: `0`) — exit non-zero when any failures/errors are found ## Run Text report: ```bash JUNIT_GLOB='artifacts/junit/**/*.xml' \ TOP_N=15 \ bash skills/junit-failure-fingerprint/scripts/fingerprint-junit.sh ``` JSON output for CI annotation/upload: ```bash JUNIT_GLOB='artifacts/junit/**/*.xml' \ OUTPUT_FORMAT=json \ FAIL_ON_FAILURES=1 \ bash skills/junit-failure-fingerprint/scripts/fingerprint-junit.sh ``` Run with bundled fixtures: ```bash JUNIT_GLOB='skills/junit-failure-fingerprint/fixtures/*.xml' \ bash skills/junit-failure-fingerprint/scripts/fingerprint-junit.sh ``` ## Output contract - Exit `0` by default (reporting mode) - Exit `1` if `FAIL_ON_FAILURES=1` and at least one failure/error is found - In `text` mode, prints summary + top fingerprints - In `json` mode, prints machine-readable groups and per-case detail


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: listky/vscode-tunnel (version 1.0.0)

--- name: vscode-tunnel description: Start VS Code Remote Tunnel in Docker containers for remote terminal access --- # VS Code Tunnel Start a VS Code Remote Tunnel in Docker container environments, enabling remote terminal access through VS Code. ## Trigger Phrases - "start vscode tunnel" - "open vscode tunnel" - "connect vscode" - "launch code tunnel in container" - "vscode remote" ## Commands ```bash # Start tunnel (interactive name prompt) bash /path/to/tunnel.sh start # Start tunnel with specific name bash /path/to/tunnel.sh start my-tunnel-name # Stop tunnel bash /path/to/tunnel.sh stop # View status bash /path/to/tunnel.sh status # View logs bash /path/to/tunnel.sh log ``` ## Environment Variables | Variable | Description | Default | |----------|-------------|---------| | `VSCODE_TUNNEL_NAME` | Tunnel name | Interactive input | | `VSCODE_CLI_DIR` | CLI installation directory | `~/.vscode-cli` | ## Usage Examples ``` User: start vscode tunnel Agent: Starting VS Code Tunnel... [Executes: bash tunnel.sh start] Agent: Tunnel started. Please enter this code in VS Code to authorize: xxxx-xxxx ``` ``` User: launch a tunnel named dev-env Agent: Starting tunnel dev-env... [Executes: bash tunnel.sh start dev-env] ``` ## Commands Reference | Command | Description | |---------|-------------| | `start [name]` | Start tunnel with optional name | | `stop` | Stop running tunnel | | `status` | Display tunnel status | | `log` | View tunnel logs (live) | ## Dependencies - `curl` - Download CLI - `tar` - Extract CLI - `grep` - Log processing ## Notes 1. First-time startup requires Microsoft account authorization 2. Authorization code will be displayed in the log output 3. Tunnel runs in background; needs restart after container reboot ## Platform Support - Linux x64 (Alpine/Debian/Ubuntu) - Docker container environments


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: suspicious | SkillSpector: suspicious (HIGH)