OpenClaw/clawhub-security-signals huggingface dataset:
Skill: tongguanghai/weather-test1 (version 1.0.0)

--- name: weather description: Get current weather and forecasts (no API key required). homepage: https://wttr.in/:help metadata: {"clawdbot":{"emoji":"🌤️","requires":{"bins":["curl"]}}} --- # Weather Two free services, no API keys needed. ## wttr.in (primary) Quick one-liner: ```bash curl -s "wttr.in/London?format=3" # Output: London: ⛅️ +8°C ``` Compact format: ```bash curl -s "wttr.in/London?format=%l:+%c+%t+%h+%w" # Output: London: ⛅️ +8°C 71% ↙5km/h ``` Full forecast: ```bash curl -s "wttr.in/London?T" ``` Format codes: `%c` condition · `%t` temp · `%h` humidity · `%w` wind · `%l` location · `%m` moon Tips: - URL-encode spaces: `wttr.in/New+York` - Airport codes: `wttr.in/JFK` - Units: `?m` (metric) `?u` (USCS) - Today only: `?1` · Current only: `?0` - PNG: `curl -s "wttr.in/Berlin.png" -o /tmp/weather.png` ## Open-Meteo (fallback, JSON) Free, no key, good for programmatic use: ```bash curl -s "https://api.open-meteo.com/v1/forecast?latitude=51.5&longitude=-0.12&current_weather=true" ``` Find coordinates for a city, then query. Returns JSON with temp, windspeed, weathercode. Docs: https://open-meteo.com/en/docs

path: _meta.json
content: ownerId: kn74ydjmc32g553vskpb7v34hx833hf7
slug: weather23
version: 1.0.0
publishedAt: 1774419640011

Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: pharmacist9527/best-image (version 1.0.0)

--- name: best-image description: Best quality AI image generation (~$0.12-0.20/image). Text-to-image, image-to-image, and image editing via the EvoLink API. homepage: https://evolink.ai metadata: {"openclaw": {"emoji": "🎨", "requires": {"env": ["EVOLINK_API_KEY"]}, "primaryEnv": "EVOLINK_API_KEY"}} --- # EvoLink Best Image Generate and edit images via the EvoLink Nano Banana Pro (gemini-3-pro-image-preview) API. ## Run Try Python first (zero dependencies, all platforms): ```bash python3 {baseDir}/scripts/generate.py --prompt "a cute cat" --size "auto" ``` Options: `--size` (auto, 1:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9), `--quality` (1K, 2K, 4K), `--image-urls URL1 URL2 ...` If Python is unavailable: - **Windows**: see PowerShell fallback in `{baseDir}/references/powershell.md` - **Unix/macOS**: use the curl fallback in `{baseDir}/references/curl_heredoc.md` ## API key - `EVOLINK_API_KEY` env var (required) - Get key: https://evolink.ai ## Triggers - Chinese: "高质量生图：xxx" / "编辑图片：xxx" - English: "best image: xxx" / "edit image: xxx" Treat the text after the colon as `prompt`, use default size `auto` and quality `2K`, generate immediately. For image-to-image or editing, the user provides image URLs alongside the prompt. ## Notes - Script prints `MEDIA:<path>` for OC auto-attach — no extra delivery logic needed. - Image saved locally (format auto-detected from URL: png/jpg/webp). URL expires ~24h but local file persists. - `--quality 4K` incurs additional charges. - `--image-urls` accepts up to 10 URLs (each image ≤10MB, formats: jpeg/jpg/png/webp).


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: suspicious | SkillSpector: clean (LOW)
Skill: guohongbin-git/tianyancha-cn (version 1.0.0)

--- name: tianyancha-cn description: 企业信息查询 - 天眼查/企查查/爱企查数据查询（Bloomberg 终端中国版） metadata: openclaw: emoji: "🏢" category: "business" tags: ["tianyancha", "qichacha", "china", "company", "business-intelligence"] --- # 企业信息查询 天眼查/企查查/爱企查数据查询。 ## 功能 - 🏢 企业基本信息 - 👥 股东/高管 - 📊 财务数据 - ⚖️ 法律风险 - 📈 经营状况 ## 平台对比 | 平台 | 免费额度 | API | 数据质量 | |------|---------|-----|---------| | **天眼查** | 有限 | ✅ | ⭐⭐⭐⭐ | | **企查查** | 有限 | ✅ | ⭐⭐⭐⭐ | | **爱企查** | 免费 | ❌ | ⭐⭐⭐ | ## 天眼查 API ### 获取企业信息 ```bash # 需要 API Token curl "https://open.api.tianyancha.com/services/open/search/2.0?keyword=腾讯" \ -H "Authorization: YOUR_TOKEN" ``` ### Python SDK ```python # 第三方库 pip install tianyancha from tianyancha import Tianyancha client = Tianyancha(API_KEY) company = client.search("腾讯") ``` ## 企查查 API ### 获取企业信息 ```bash curl "https://api.qichacha.com/ECIV4/GetEnterpriseByName?keyword=腾讯" \ -H "Authorization: YOUR_TOKEN" ``` ## 使用场景 ### 1. 投资尽调 - 公司背景调查 - 股东穿透 - 关联企业 ### 2. 商务合作 - 合作方资质 - 经营风险 - 信用评估 ### 3. 市场研究 - 竞品分析 - 行业分布 - 资本图谱 ## 数据字段 | 字段 | 说明 | |------|------| | name | 企业名称 | | credit_code | 统一社会信用代码 | | legal_person | 法定代表人 | | registered_capital | 注册资本 | | establish_date | 成立日期 | | status | 经营状态 | | shareholders | 股东信息 | | risk_info | 风险信息 | ## 免费替代方案 ### 爱企查 - 网页: https://aiqicha.baidu.com/ - 免费，但无 API ### 国家企业信用信息公示系统 - 网页: http://www.gsxt.gov.cn/ - 官方数据，免费 ## 注意事项 1. **API 费用**: 按次收费 2. **数据更新**: 非实时 3. **合规使用**: 仅用于合法目的 --- *版本: 1.0.0*


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: edwardrodriguez703-design/book-beauty (version 1.0.0)

--- name: book-beauty description: Book beauty services through Lokuli MCP. Use when user needs haircuts, barbers, hair salons, nails, makeup, spa treatments, or any beauty service. Triggers on requests like "book me a haircut", "find a barber near me", "nail salon appointment", "makeup artist", or any beauty service request. --- # Book Beauty Services Book beauty services through Lokuli's MCP server. ## MCP Endpoint ``` https://lokuli.com/mcp/sse ``` Transport: SSE | JSON-RPC 2.0 | POST requests ## Beauty Services Available - Barber - Hair Salon - Nails / Manicure / Pedicure - Makeup Artist - Spa Treatments - Waxing - Facials - Eyebrow Threading ## Tools ### search ```json { "method": "tools/call", "params": { "name": "search", "arguments": { "query": "haircut", "zipCode": "90640", "category": "Beauty Services", "maxResults": 20 } } } ``` ### check_availability ```json { "method": "tools/call", "params": { "name": "check_availability", "arguments": { "providerId": "xxx", "serviceId": "yyy", "date": "2025-02-10" } } } ``` ### create_booking ```json { "method": "tools/call", "params": { "name": "create_booking", "arguments": { "providerId": "xxx", "serviceId": "yyy", "timeSlot": "2025-02-10T14:00:00-08:00", "customerName": "John Doe", "customerEmail": "[REDACTED_SECRET]", "customerPhone": "+13105551234" } } } ``` ## Workflow 1. **Understand** — What beauty service? Where (ZIP)? 2. **Search** — Find matching providers 3. **Present** — Show top results with pricing 4. **Check availability** — Get open time slots 5. **Confirm** — Get explicit user approval 6. **Create booking** — Generate checkout link


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: veilei/pdf-to-word-vei (version 1.0.0)

--- name: pdf-to-word description: | PDF 转 Word（docx）文档转换工具。当用户需要将 PDF 文件转换为 Word 文档（.docx）时使用此技能。 触发词：PDF转Word、PDF to Word、pdf转docx、把PDF转成Word、文档转换 支持的功能： (1) PDF → Word (.docx) 转换 (2) 查询转换任务状态 (3) 下载转换结果 (4) 批量转换 (5) 转换历史记录 --- # PDF to Word (pdf-to-word) Skill PDF 转 Word 转换技能，基于 doc-converter 项目实现。 ## 项目位置 ``` /home/vei/.openclaw/workspace/doc-converter/ ├── backend/ # Node.js 后端 (Fastify + Prisma) ├── frontend/ # React 前端 (Vite + TypeScript) └── docker-compose.yml ``` ## 核心转换流程 ### 1. 上传 PDF 文件 **前端上传**（已实现于 HomePage.tsx）： ``` POST /api/v1/file/upload Content-Type: multipart/form-data Body: file (PDF文件，最大50MB) Response: { fileId, originalName, format, size, pages } ``` **直接 API 调用**： ```bash curl -X POST http://localhost:3000/api/v1/file/upload \ -F "file=@your.pdf" ``` ### 2. 创建 PDF→Word 转换任务 ``` POST /api/v1/convert/ Content-Type: application/json Body: { fileId: "<fileId>", conversionType: "pdf_to_word" } Response: { taskId, status, conversionType, createdAt, expiresAt } ``` ### 3. 轮询任务状态 ``` GET /api/v1/convert/:taskId Response: { taskId, status: "PENDING" | "PROCESSING" | "COMPLETED" | "FAILED", progress: 0-100, output: { fileId, originalName, format, size, downloadUrl } | null, errorMessage: string | null } ``` **状态说明**： - `PENDING` - 排队中 - `PROCESSING` - 转换中（有 progress 进度） - `COMPLETED` - 完成，可下载 - `FAILED` - 失败，查看 errorMessage ### 4. 下载转换结果 ``` GET /api/v1/convert/:taskId/download Response: 文件流 (application/vnd.openxmlformats-officedocument.wordprocessingml.document) ``` ### 5. 转换历史 ``` GET /api/v1/convert/history Response: { total, tasks: [{ taskId, conversionType, status, createdAt, input, output }] } ``` ## 后端转换实现 **核心文件**：`backend/src/jobs/converter.ts` PDF → Word 使用 `pdf2docx` Python库： ```python from pdf2docx import Converter c = Converter('input.pdf') c.convert('output.docx') c.close() ``` 其他转换类型使用 LibreOffice： - Word/Excel/PPT → PDF：`soffice --headless --convert-to pdf` - PDF → 图片：`pdftoppm -jpeg -r 200` - 图片 → PDF：`convert` 或 `gs` ## 前端组件 - **HomePage.tsx** - 主转换界面（拖拽上传、转换选项、结果展示） - **HistoryPage.tsx** - 转换历史 - **convertStore** - Zustand 状态管理 ## 支持的转换类型 | conversionType | 说明 | 引擎 | |---|---|---| | `pdf_to_word` | PDF → Word | pdf2docx | | `word_to_pdf` | Word → PDF | LibreOffice | | `pdf_to_images` | PDF → 图片 | pdftoppm | | `images_to_pdf` | 图片 → PDF | ImageMagick/gs | | `word_to_image` | Word → 图片 | LibreOffice + pdftoppm | | `excel_to_pdf` | Excel → PDF | LibreOffice | | `ppt_to_pdf` | PPT → PDF | LibreOffice | ## 快速使用流程 1. **上传 PDF**：拖拽或点击选择 PDF 文件 2. **选择转换格式**：自动显示 PDF→Word 选项 3. **开始转换**：点击转换按钮 4. **等待完成**：轮询任务状态（每1.5秒） 5. **下载结果**：点击下载按钮获取 .docx 文件 ## 关键代码参考 - 转换路由：`backend/src/routes/convert.ts` - 转换Worker：`backend/src/jobs/converter.ts` - 前端API：`frontend/src/api/client.ts` - 状态管理：`frontend/src/stores/convertStore.ts` 详细 API 和架构说明见 references/


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)
Skill: daniellummis/env-alias-audit (version 1.0.0)

--- name: env-alias-audit description: Audit .env alias groups for missing required config, conflicting values, and canonical-key drift before deploy. version: 1.0.0 metadata: {"openclaw":{"requires":{"bins":["bash","python3"]}}} --- # Env Alias Audit Use this skill to catch environment-variable alias drift before runtime failures. ## What this skill does - Parses env vars from `.env`-style files - Evaluates canonical key + alias groups (built-in defaults or custom spec) - Flags missing required groups - Detects conflicting values across aliases in the same group - Reports alias-only usage where canonical keys are absent ## Inputs Optional: - `ENV_FILE` (default: `.env`) - `ALIAS_SPEC_FILE` (default: built-in alias groups) - `REQUIRED_GROUPS` (comma-separated canonical keys that must resolve) - `AUDIT_MODE` (`report` or `strict`, default: `strict`) ## Run Use built-in alias groups: ```bash ENV_FILE=.env \ REQUIRED_GROUPS=DATABASE_URL,STRIPE_API_KEY \ bash skills/env-alias-audit/scripts/audit-env-aliases.sh ``` Use custom alias spec: ```bash ENV_FILE=.env.production \ ALIAS_SPEC_FILE=skills/env-alias-audit/fixtures/alias-spec.sample \ AUDIT_MODE=report \ bash skills/env-alias-audit/scripts/audit-env-aliases.sh ``` Run against fixtures: ```bash ENV_FILE=skills/env-alias-audit/fixtures/.env.conflict \ REQUIRED_GROUPS=DATABASE_URL,STRIPE_API_KEY \ bash skills/env-alias-audit/scripts/audit-env-aliases.sh ``` ## Alias spec format `ALIAS_SPEC_FILE` accepts one group per line: ```text CANONICAL_KEY=ALIAS_ONE,ALIAS_TWO ``` - Comments and blank lines are ignored - Canonical key is always part of the checked group ## Output contract - Exit `0` when no strict failures are found - Exit `1` on invalid input, missing required groups (strict), or conflicting alias values - Prints per-group status (`OK`, `WARN`, `FAIL`) plus a summary


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: irideas/bobo-context-cleanup (version 0.2.1)

--- name: context-cleanup description: DEPRECATED: Please use `context-cleanup` (same owner). This legacy slug is retained only for compatibility. 已废弃，请迁移到 `context-cleanup`。 user-invocable: true metadata: { "openclaw": { "emoji": "🧹", "requires": { "bins": ["bash"] } }, "version": "0.2.1", "updatedAt": "2026-03-06 20:47 Asia/Shanghai" } --- # Context Cleanup 用于整理 workspace 的 memory 日志，降低冗余上下文负担。 ## 关键资源 - 脚本：`cleanup.sh` - 策略：`references/policy.md` ## 标准流程（必须） 1. 分析现状 ```bash ./skills/context-cleanup/cleanup.sh analyze ``` 2. 生成计划（不执行） ```bash ./skills/context-cleanup/cleanup.sh plan ``` 3. 用户确认后执行归档 ```bash ./skills/context-cleanup/cleanup.sh archive ``` ## 可选参数 ```bash # 指定截止日期（早于该日期的记录可归档） ./skills/context-cleanup/cleanup.sh archive 2026-03-01 # 仅预览，不执行 ./skills/context-cleanup/cleanup.sh archive --dry-run # 非交互执行（需谨慎） ./skills/context-cleanup/cleanup.sh archive --yes # 机器可读输出 ./skills/context-cleanup/cleanup.sh analyze --json ./skills/context-cleanup/cleanup.sh plan --json ``` ## 执行规则 - 默认归档，不做永久删除 - 先 `plan` 后 `archive` - 归档前必须获得用户确认（除非用户明确同意 `--yes`） - 不处理 `MEMORY.md`、`specs/`、`AGENTS.md` ## 输出模板 ```markdown 🧹 上下文清理计划 - Memory 文件：X - 低价值候选：A - 归档候选：B 是否按计划执行归档？ ``` ## 发布前自检 ```bash ./skills/context-cleanup/cleanup.sh analyze ./skills/context-cleanup/cleanup.sh plan ./skills/context-cleanup/cleanup.sh archive --dry-run ```


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: marcusfranca12/apex-ia-scanner (version 2.4.0)

--- name: apex-ia-scanner description: Professional scanner for Binance Futures. SMA 8/21 crossovers. 🇺🇸 | Scanner profissional para Binance Futures. Cruzamentos SMA 8/21. 🇧🇷 version: 2.4.0 version: 2.4.0 author: marcusfranca12 tags: - trading - trading - binance - futures - scanner - sma - free --- # 🦞 APEX IA Scanner ## English 🇺🇸 ### Professional Scanner for Binance Futures **Features:** SMA 8/21 Crossover, Score 0-100% ### Installation ```bash clawhub install apex-ia-scanner ``` ``` ## 🚀 Upgrade to PRO **Price:** $29/month or $99/year **Contact:** [REDACTED_SECRET] ## 💝 Support **USDT (BEP20):** 0xe011b57a2d3082849d04c685925827cfc9d93edf **SOLANA:** 79LQfMttkfKSBYGge3TsE3UoTxKMkkMn6vwSpKtpGpjb --- ## Português 🇧🇷 ### Scanner Profissional para Binance Futures **Funcionalidades:** Cruzamento SMA 8/21, Score 0-100% ### Instalação ```bash ```bash clawhub install apex-ia-scanner ``` ## 🚀 Upgrade para PRO **Preço:** $29/mês ou $99/ano **Contato:** [REDACTED_SECRET] ## 💝 Apoie **USDT (BEP20):** 0xe011b57a2d3082849d04c685925827cfc9d93edf **SOLANA:** 79LQfMttkfKSBYGge3TsE3UoTxKMkkMn6vwSpKtpGpjb *Developed by @marcusfranca12*

path: bridge-signals.json
content: updated: no

Security scan verdicts — ClawScan: suspicious | static analysis: suspicious | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)
Skill: ppppanda/wechat-article-getter (version 1.0.0)

--- name: wechat-article-reader description: Extract full text from WeChat Official Account (微信公众号) article URLs. Use when a user shares an mp.weixin.qq.com link and asks to read, summarize, analyze, or save the article. Handles WeChat's JS-rendered content and anti-bot detection via headless Chromium. Falls back to mirror-site search when headless browser is unavailable. metadata: openclaw: requires: bins: [python3] install: - id: playwright kind: pip package: playwright label: Install Playwright (pip) --- # WeChat Article Reader Extract full article content from `mp.weixin.qq.com` URLs. ## When to Use - User shares a WeChat article link (`mp.weixin.qq.com/s/xxx`) - Need to read/summarize/analyze/archive a WeChat article - ContentPipe Scout node receives a WeChat URL for reference ## Quick Start ```bash # First-time setup (installs headless Chromium ~200MB) python3 SKILL_DIR/scripts/setup.py # Extract article python3 SKILL_DIR/scripts/fetch_article.py "https://mp.weixin.qq.com/s/xxx" # Output: JSON with title, author, publish_time, content, word_count ``` ## How It Works WeChat articles are JS-rendered — HTTP requests only get an empty shell. This skill uses Playwright headless Chromium to: 1. Launch headless browser with anti-detection flags 2. Navigate to the WeChat URL, wait for `networkidle` 3. Wait for `#js_content` (article body container) 4. Extract title (`h1#activity-name`), author, time, body text 5. Clean HTML → plain text (strip scripts/styles, compress whitespace) 6. Return structured JSON ### Fallback: Mirror Search If Playwright is unavailable, the skill searches Chinese content aggregators (53ai.com, 36kr.com, juejin.cn, woshipm.com) for mirror copies of the article. ## Python API ```python from fetch_article import fetch_wechat_article result = fetch_wechat_article("https://mp.weixin.qq.com/s/xxx") # result = { # "success": True, # "title": "文章标题", # "author": "作者名", # "publish_time": "2026-03-10", # "content": "正文全文...", # "word_count": 2500, # "source": "playwright", # or "mirror" # "url": "https://mp.weixin.qq.com/s/xxx" # } ``` ## Limitations - Requires one-time Chromium install (`python3 scripts/setup.py`) - First fetch takes ~5-10s (browser startup); subsequent fetches ~3-5s (browser reuse) - Cannot bypass WeChat login walls (paid content, follower-only articles) - Mirror fallback only works for popular/widely-shared articles


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)
Skill: ajitsingh25/claude-code-statusline (version 1.0.0)

--- name: claude-code-statusline description: Install and configure a custom Claude Code status line showing real-time token usage, context window percentage, git branch, and color-coded warnings. Use when the user asks to "install statusline", "setup statusline", "configure statusline", "setup status line", "install status bar", "show token usage", "context window display", "statusline colors", "statusline thresholds", or wants to customize their Claude Code status bar display. --- # Claude Code Status Line Install a security-hardened status line for Claude Code CLI that displays: ``` user@host:dir (branch) | Model | In:8.5K Out:1.2K Cache:7K [23%] ``` ## Prerequisites - Python 3 (standard library only, no pip dependencies) - `git` (optional, for branch display) ## Script `scripts/statusline_installer.py` -- Python 3, standard library only. ```bash # Install with defaults python3 scripts/statusline_installer.py install # Install with custom thresholds python3 scripts/statusline_installer.py install --threshold-yellow 30 --threshold-orange 50 --threshold-red 70 # Install with combined token display python3 scripts/statusline_installer.py install --token-display combined # Check installation python3 scripts/statusline_installer.py status # Update config python3 scripts/statusline_installer.py configure --threshold-red 80 --color-green cyan # Remove python3 scripts/statusline_installer.py uninstall [--remove-config] ``` ## How It Works 1. **install** -- Copies `statusline.py` to `~/.claude/scripts/`, creates config at `~/.claude/statusline.config` (perms 600), updates `~/.claude/settings.local.json` with `python3 ~/.claude/scripts/statusline.py` command. 2. **status** -- JSON output: script installed, config state, settings configured, git availability. 3. **configure** -- Update thresholds (`--threshold-yellow/orange/red`), colors (`--color-green/yellow/orange/red`), display mode (`--token-display separate|combined`). Validates threshold ordering. 4. **uninstall** -- Removes script, reverts settings. `--remove-config` also deletes config file. ## Configuration Config file: `~/.claude/statusline.config` | Option | Default | Values | |---|---|---| | `TOKEN_DISPLAY` | `separate` | `separate` (In/Out/Cache), `combined` (total) | | `THRESHOLD_YELLOW` | `40` | 0-100 | | `THRESHOLD_ORANGE` | `50` | 0-100 | | `THRESHOLD_RED` | `70` | 0-100 | | `COLOR_*` | standard ANSI | Color name or ANSI code | Available colors: green, yellow, orange, red, blue, cyan, magenta, purple, white, pink, bright-green, bright-yellow, bright-red, bright-blue, bright-cyan, bright-magenta. ## After Install Restart Claude Code (`exit` then `claude`) to activate.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: mszren/xbot-camera-qc (version 1.0.0)

--- name: xbot-camera-qc-pro slug: xbot-camera-qc-pro # 唯一标识，小写+短横线 version: 1.0.0 # 语义化版本 description: Professional visual inspection for xbot.coffee Lite, detecting drink volume, screen, table, robotic arm, dirt, environment and pests. Output structured English JSON for API automation. tags: coffee, qc, vision, api, xbot author: YourName homepage: https://github.com/yourname/xbot-camera-qc-pro --- # xbot.coffee Lite Camera QC (API Version) ## Detection Rules 1. drink_status: normal / insufficient / overflow / foreign_object / spill_outside 2. screen_status: normal / off 3. table_clean: normal / dirty 4. robot_arm: normal / abnormal 5. equipment_dirty: normal / dirty 6. environment_clean: normal / messy 7. pest: none / found ## Output JSON { "drink_status": "...", "screen_status": "...", "table_clean": "...", "robot_arm": "...", "equipment_dirty": "...", "environment_clean": "...", "pest": "...", "has_anomaly": true/false, "alert_msg": "..." }

path: README.md
content: # xbot-camera-qc-pro
xbot.coffee Lite 无人咖啡机 · 视觉质检专业技能

## Overview
本技能适用于 OpenClaw / ClawBot 智能体，用于对 xbot.coffee Lite 无人咖啡机的摄像头抓拍图片进行**自动化异常检测**，输出标准化 JSON 结果，可直接对接业务系统、告警平台与运维 API。

## 检测范围
- 饮品容量与出品质量（偏少、溢出、异物、杯外泼洒）
- 主屏幕运行状态（亮屏 / 黑屏关机）
- 工作台清洁度（泼洒、水渍、咖啡渍、垃圾）
- 双机械臂姿态与运行状态
- 设备外观污损、残留
- 整体环境整洁度
- 虫害检测（老鼠、蟑螂）

## 输出格式
返回**纯英文结构化 JSON**，无多余文本，便于后端直接解析、判断异常与推送告警。

```json
{
  "drink_status": "normal|insufficient|overflow|foreign_object|spill_outside",
  "screen_status": "normal|off",
  "table_clean": "normal|dirty",
  "robot_arm": "normal|abnormal",
  "equipment_dirty": "normal|dirty",
  "environment_clean": "normal|messy",
  "pest": "none|found",
  "has_anomaly": true|false,
  "alert_msg": "string"
}
```

## 适用场景
- 200+ 台设备规模化巡检
- 每日大批量图片自动质检
- 异常实时告警与运维派单
- API 对接、数据上报、可视化大屏

## 使用方式
1. 在 OpenClaw 中安装本技能
2. 传入咖啡机摄像头抓拍图片
3. 技能自动分析并返回 JSON 结果
4. 后端根据 `has_anomaly` 触发告警或业务逻辑

## License
MIT

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