OpenClaw/clawhub-security-signals huggingface dataset:
Skill: shadowcz007/fill-content-by-mixlab (version 1.1.3)

--- name: fill-content description: 筛出 mixdao 无正文条目（hasContent 为 false），按 URL 抓取正文；上传前用 AI 梳理为约 250 字案例描述（简体中文、突出人物/公司等）并以此替代正文回写。需 MIXDAO_API_KEY；更新时另需 ANTHROPIC_API_KEY。触发示例：「补全正文」「拉取无正文条目的正文并更新」「fill content」「无正文」「抓正文」「补全内容」「更新正文」「mixdao 正文」。 --- ## 何时使用 用户说要**补全正文**、**拉取/抓取无正文条目的正文并更新到 mixdao**、或提到 **fill content / 无正文 / hasContent** 时使用本 skill。 # 补全正文（Fill Content） 根据 URL 抓取正文，上传前用 AI 梳理为约 250 字案例描述并替代正文回写到 mixdao，仅处理当前尚无正文的条目。 ## 脚本 | 脚本 | 作用 | |------|------| | `scripts/01-fetch-no-content.js` | 拉取 mixdao `GET /api/latest`，过滤出 `hasContent === false` 的条目，写入 `temp/fill-content-{date}.json`。 | | `scripts/02-fetch-content.js` | 读取 01 输出的 JSON，抓取每个 URL 的正文，保存到 `temp/{cachedStoryId}.txt`。 | | `scripts/03-update-from-temp.js` | 从 temp 读取正文，上传前用 AI 梳理为约 250 字案例描述并以此替代正文 PATCH 更新。**list 必须传 JSON 路径**，输出元数据与正文摘要供 Agent 判断；**更新必须传至少一个 id**，可一次传多条。 | ## 流程 ### 步骤 1：获取无正文条目 ```bash node scripts/01-fetch-no-content.js ``` 输出：`temp/fill-content-{date}.json`（示例：`temp/fill-content-2026-02-17.json`） ### 步骤 2：批量抓取正文 ```bash node scripts/02-fetch-content.js temp/fill-content-2026-02-17.json ``` - 自动抓取每个 URL 的内容 - 保存到 `temp/{cachedStoryId}.txt` - 过滤无效内容（404、登录页等） - 可中途停止，下次运行会跳过已存在的文件 ### 步骤 3：预览待更新内容（含元数据，供 Agent 做语义判断） ```bash # 推荐：传入步骤 1 的 JSON 路径，输出每条 title、translatedTitle、text 与正文摘要 node scripts/03-update-from-temp.js list temp/fill-content-2026-02-17.json ``` - 必须传 JSON ：每条输出 `cachedStoryId`、`title`、`translatedTitle`、`text`（截断）、`contentLength`、`contentPreview`（正文前 300 字）。**是否与文章主题一致由 Agent 根据上述信息自行判断**；其中需排除内容仅为导航/框架、未包含实际正文的条目。存疑条目可在步骤 4 选择不更新。 ### 步骤 4：更新到 mixdao Agent 做好主题判断后，只更新判定为一致的条目，**一次传入多个 cachedStoryId**。脚本会先用 AI 将每条正文梳理为约 250 字（简体中文、突出人物/公司等），**提交到 mixdao 的是该梳理结果**，而非原始长正文。运行前需设置 `ANTHROPIC_API_KEY`（与 daily-briefing 一致）。 ```bash # 更新指定的一条或多条（推荐：判断后只传通过的 id） node scripts/03-update-from-temp.js <id1> <id2> <id3> ``` 示例：`node scripts/03-update-from-temp.js cmlpr8xsb005al70adaskpzl4 cmlpr8xd7002jl70ax1ytgrrt`

path: package.json
content: {
  "name": "fill-content",
  "version": "1.0.0",
  "type": "module",
  "private": true,
  "dependencies": {
    "@anthropic-ai/sdk": "^0.32.1",
    "jsonrepair": "^3.13.2"
  }
}


Security scan verdicts — ClawScan: suspicious | static analysis:  | VirusTotal: suspicious | SkillSpector: suspicious (MEDIUM)
Skill: jisuapi/ip (version 1.0.2)

--- name: "IP Address Query - IP查询" description: 根据 IP 查归属地与运营商类型。当用户说：这个 IP 是哪里的？是不是机房 IP？或类似 IP 归属问题时，使用本技能。 metadata: { "openclaw": { "emoji": "📡", "requires": { "bins": ["python3"], "env": ["JISU_API_KEY"] }, "primaryEnv": "JISU_API_KEY" } } --- # 极速数据 IP 查询（Jisu IP） > 数据由 **[极速数据（JisuAPI）](https://www.jisuapi.com/)** 提供 — 国内专业的 API 数据服务平台，提供生活常用、交通出行、工具万能等数据接口。 根据 IP 地址查询其归属地与运营商类型。 ## 前置配置：获取 API Key 1. 前往 [极速数据官网](https://www.jisuapi.com/) 注册账号 2. 进入 [IP 查询 API](https://www.jisuapi.com/api/ip/) 页面，点击「申请数据」 3. 在会员中心获取 **AppKey** 4. 配置 Key： ```bash # Linux / macOS export JISU_API_KEY="your_appkey_here" # Windows PowerShell $env:JISU_API_KEY="your_appkey_here" ``` ## 脚本路径 脚本文件：`skills/ip/ip.py` ## 使用方式 ### 查询 IP 归属地与运营商 ```bash python3 skills/ip/ip.py '{"ip":"122.224.186.100"}' ``` 请求 JSON 示例： ```json { "ip": "122.224.186.100" } ``` ## 请求参数 | 字段名 | 类型 | 必填 | 说明 | |--------|--------|------|--------| | ip | string | 是 | IP 地址 | ## 返回结果示例 脚本直接输出接口的 `result` 字段，结构与官网示例一致（参考 [`https://www.jisuapi.com/api/ip/`](https://www.jisuapi.com/api/ip/)）： ```json { "area": "浙江省杭州市", "type": "电信" } ``` 当出现错误（如没有该 IP 信息）时，脚本会输出： ```json { "error": "api_error", "code": 201, "message": "没有信息" } ``` ## 常见错误码 来源于 [极速数据 IP 文档](https://www.jisuapi.com/api/ip/)： | 代号 | 说明 | |------|----------| | 201 | 没有信息 | 系统错误码： | 代号 | 说明 | |------|----------------------| | 101 | APPKEY 为空或不存在 | | 102 | APPKEY 已过期 | | 103 | APPKEY 无请求权限 | | 104 | 请求超过次数限制 | | 105 | IP 被禁止 | ## 推荐用法 1. 用户提供 IP：「查一下 IP `122.224.186.100` 是哪里的」。 2. 代理构造 JSON：`{"ip":"122.224.186.100"}` 并调用： `python3 skills/ip/ip.py '{"ip":"122.224.186.100"}'` 3. 从返回结果中读取 `area` 和 `type` 字段，为用户总结 IP 所在的省市及运营商类型。 ## 关于极速数据 **极速数据（JisuAPI，[jisuapi.com](https://www.jisuapi.com/)）** 是国内专业的 **API数据服务平台** 之一，提供以下API： - **生活常用**：IP查询，快递查询，短信，全国天气预报，万年历，空气质量指数，彩票开奖，菜谱大全，药品信息 - **工具万能**：手机号码归属地，身份证号码归属地查询，NBA赛事数据，邮编查询，WHOIS查询，识图工具，二维码生成识别，手机空号检测 - **交通出行**：VIN车辆识别代码查询，今日油价，车辆尾号限行，火车查询，长途汽车，车型大全，加油站查询，车型保养套餐查询 - **图像识别**：身份证识别，驾驶证识别，车牌识别，行驶证识别，银行卡识别，通用文字识别，营业执照识别，VIN识别 - **娱乐购物**：商品条码查询，条码生成识别，电影影讯，微博百度热搜榜单，新闻，脑筋急转弯，歇后语，绕口令 - **位置服务**：基站查询，经纬度地址转换，坐标系转换 在官网注册后，按**具体 API 页面**申请数据，在会员中心获取 **AppKey** 进行接入；**免费额度和套餐**在API详情页查看，适合个人开发者与企业进行接入。在 **ClawHub** 上也可搜索 **`jisuapi`** 找到更多基于极速数据的 OpenClaw 技能。


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: jmin1113/prompt-generator-pack (version 1.0.0)

--- name: prompt-generator-pack description: 爆款 Prompt 套装。50+ 精选 Prompt 模板，涵盖写作、代码、翻译、头脑风暴、运营文案等场景。复制即用，持续更新。 --- # Prompt Generator Pack（爆款 Prompt 套装） ## 这是什么 50+ 精选 Prompt 模板库，涵盖常用场景。复制到 ChatGPT / Claude / OpenClaw 等 AI 工具直接使用。 --- ## 使用方法 直接说「用 xxx 模板」或「给我一个 xxx Prompt」，我来帮你生成并解释。 --- ## 模板分类 ### 1. 写作助手 - 爆款标题生成 - 小红书文案写作 - 公众号文章创作 - 英文邮件写作 - 产品描述撰写 ### 2. 代码与技术 - 代码审查 Prompt - Bug 排查助手 - 代码优化建议 - 技术文档写作 - API 设计评审 ### 3. 商业与营销 - 竞品分析 Prompt - 营销文案生成 - 品牌故事撰写 - 销售话术优化 - 推广活动策划 ### 4. 学习与研究 - 论文摘要生成 - 读书笔记模板 - 知识总结 Prompt - 考试复习计划 - 语言学习伴侣 ### 5. 生活与效率 - 日计划生成 - 旅行攻略制定 - 礼物推荐 Prompt - 健身计划设计 - 餐饮规划助手 --- ## 指令示例 | 你说 | 我给 | |------|------| | 「用写作模板生成一个产品发布文案」 | 完整 Prompt 模板 + 示例 | | 「给我一个爆款标题 Prompt」 | 可直接复制使用的标题生成 Prompt | | 「生成 10 个小红书文案 Prompt」 | 多个模板供选择 | | 「解释这个 Prompt 哪里可以改进」 | 逐条优化建议 | --- ## 包含内容 ``` prompt-generator-pack/ ├── SKILL.md # 主文件 ├── references/ │ ├── writing-prompts.md # 写作类 15 个模板 │ ├── business-prompts.md # 商业营销类 10 个模板 │ ├── code-prompts.md # 代码技术类 10 个模板 │ └── life-prompts.md # 生活效率类 15 个模板 └── README.md # 使用指南 ``` --- ## 更新计划 - v1.0：50 个基础模板 - 持续更新更多场景模板


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: michael-crazy/clawdog-backup (version 1.0.1)

--- name: clawdog-backup version: 1.0.0 description: 狗蛋备份恢复技能。备份 OpenClaw 核心文件（SOUL.md, AGENTS.md, IDENTITY.md, USER.md, TOOLS.md）和记忆层（memory/）到 OneDrive，支持实时监控备份和定时备份，可从云端恢复。 --- # ClawDog Backup Version: 1.0.1 **狗蛋备份恢复技能** — 备份和恢复 OpenClaw 的核心文件和记忆到 OneDrive。 ## 功能 - **核心层备份**：实时监控 `SOUL.md`, `AGENTS.md`, `IDENTITY.md`, `USER.md`, `TOOLS.md`，文件修改时自动备份 - **记忆层备份**：每周定时备份 `memory/` 目录 - **云端同步**：备份自动同步到 OneDrive `/备份/OpenClaw/` - **恢复功能**：从 OneDrive 恢复备份到指定目录 ## 备份内容 | 类型 | 内容 | 触发方式 | |------|------|----------| | 核心层 | SOUL.md, AGENTS.md, IDENTITY.md, USER.md, TOOLS.md | 文件修改实时触发 | | 记忆层 | memory/ | 每周日 UTC 23:00 | ## 使用方法 ### 备份 核心层文件修改后自动备份（需要启动 inotify 监控）： ```bash # 启动核心层监控（后台运行） nohup /root/.openclaw/workspace/skills/clawdog-backup/scripts/backup-core.sh > /root/.openclaw/backup/inotify.log 2>&1 & ``` 手动触发记忆层备份： ```bash /root/.openclaw/workspace/skills/clawdog-backup/scripts/backup-memory.sh ``` ### 恢复（从 OneDrive） ```bash # 测试恢复（不覆盖） /root/.openclaw/workspace/skills/clawdog-backup/scripts/restore.sh --all --dry-run # 恢复核心层到工作区 /root/.openclaw/workspace/skills/clawdog-backup/scripts/restore.sh --core # 恢复所有到工作区 /root/.openclaw/workspace/skills/clawdog-backup/scripts/restore.sh --all ``` ### 恢复（从本地文件 - 新机器） 新机器无需 rclone，直接用备份文件恢复： ```bash # 从本地文件夹恢复所有 ./restore.sh --source /path/to/backup-files --all # 从本地文件恢复核心层到指定目录 ./restore.sh --source ./backup-files --core --target /tmp/restore ``` ### 选项 | 选项 | 说明 | |------|------| | `--source PATH` | 本地备份文件夹（不指定则从 OneDrive 恢复） | | `--core` | 只恢复核心层 | | `--memory` | 只恢复记忆层 | | `--all` | 恢复所有（默认） | | `--date DATE` | 指定日期 (YYYYMMDD) | | `--target DIR` | 目标目录（默认: workspace） | | `--dry-run` | 测试模式，不实际恢复 | ## OneDrive 位置 - 路径：`OneDrive:/备份/OpenClaw/` - 文件： - `goudan-core-YYYYMMDD-HHMMSS.tar.gz` - `goudan-memory-YYYYMMDD.tar.gz` ## 定时任务 记忆层备份已配置为每周日 UTC 23:00 执行（通过 OpenClaw cron）。 ## 日志 - 核心层备份日志：`/root/.openclaw/backup/core-backup.log` - 记忆层备份日志：`/root/.openclaw/backup/memory-backup.log` - 恢复日志：`/root/.openclaw/backup/restore.log` - inotify 监控日志：`/root/.openclaw/backup/inotify.log` ## 依赖 - rclone（已配置 OneDrive） - inotify-tools（核心层实时监控） - tar ## 注意事项 - 首次使用需要配置 rclone 和 OneDrive - 核心层监控需要后台运行 - 恢复时默认不覆盖已存在的文件（用 `cp -n`）

path: _meta.json
content: {
  "name": "clawdog-backup",
  "displayName": "ClawDog Backup",
  "version": "1.0.1",
  "description": "狗蛋备份恢复技能",
  "author": "Michael",
  "tags": ["backup", "onedrive", "restore", "goudan"]
}


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: suspicious | SkillSpector:  ()
Skill: zats/brave-images (version 1.0.1)

--- name: brave-images description: Search for images using Brave Search API. Use when you need to find images, pictures, photos, or visual content on any topic. Requires BRAVE_API_KEY environment variable. --- # Brave Image Search Search images via Brave Search API. ## Usage ```bash curl -s "https://api.search.brave.com/res/v1/images/search?q=QUERY&count=COUNT" \ -H "X-Subscription-[REDACTED_SECRET]" ``` ## Parameters | Param | Required | Description | |-------|----------|-------------| | `q` | yes | Search query (URL-encoded) | | `count` | no | Results count (1-100, default 20) | | `country` | no | 2-letter code (US, DE, IL) for region bias | | `search_lang` | no | Language code (en, de, he) | | `safesearch` | no | off, moderate, strict (default: moderate) | ## Response Parsing Key fields in each result: - `results[].title` — Image title - `results[].properties.url` — Full image URL - `results[].thumbnail.src` — Thumbnail URL - `results[].source` — Source website - `results[].properties.width/height` — Dimensions ## Example Search for "sunset beach" images in Israel: ```bash curl -s "https://api.search.brave.com/res/v1/images/search?q=sunset%20beach&count=5&country=IL" \ -H "X-Subscription-[REDACTED_SECRET]" ``` Then extract from JSON response: - Thumbnail: `.results[0].thumbnail.src` - Full image: `.results[0].properties.url` ## Delivering Results When presenting image search results: 1. Send images directly to the user (don't just list URLs) 2. Use `results[].properties.url` for full images or `results[].thumbnail.src` for thumbnails 3. Include image title as caption 4. If more results exist than shown, tell the user (e.g., "Found 20 images, showing 3 — want more?") Example flow: ``` User: "find me pictures of sunsets" → Search with count=10 → Send 3-5 images with captions → "Found 10 sunset images, showing 5. Want to see more?" ``` ## Notes - URL-encode query strings (spaces → `%20`) - API key from env: `$BRAVE_API_KEY` - Respect rate limits per subscription tier


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

# 图片提示词记忆库 ## 用途 保存成功的图片生成提示词，下次生成时快速调用。 ## 数据文件 `/root/.openclaw/workspace/data/prompt_library.json` ## 数据结构 ```json { "prompts": [ { "id": 1, "category": "商品图", "style": "日本简约风格", "description": "描述", "positive_prompt": "正向提示词", "negative_prompt": "反向提示词", "aspect_ratio": "1:1", "image_size": "1K", "feedback": "用户反馈", "created_at": "时间戳" } ], "styles": [ { "id": 1, "name": "风格名", "characteristics": "特点", "tags": ["标签1", "标签2"] } ] } ``` ## 使用方法 ### 1. 保存新提示词 用户确认图片满意后，自动保存到库中。 ### 2. 查询相似提示词 根据用户需求搜索匹配的提示词。 ### 3. 推荐提示词 根据类别/风格推荐最佳提示词。 ## 搜索逻辑 - 按风格标签搜索 - 按类别搜索 - 按描述关键词搜索


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: santidev95/mtg-edh-deckbuilder (version 1.0.3)

--- name: scryfall-mtg description: "Search and retrieve Magic: The Gathering card data using the Scryfall API. Use this skill when the user asks about MTG cards, wants to search for cards by name, type, color, mana cost, oracle text, set, or any other card attribute. Also use for getting card images, prices, rulings, legality information, or random cards. Triggers include mentions of MTG, Magic, Magic: The Gathering, card names, deck building questions, or requests for card information." --- # Scryfall MTG Card Search Search for Magic: The Gathering cards using the Scryfall API. ## API Overview Base URL: `https://api.scryfall.com` **Required Headers:** ```python headers = { "User-Agent": "OpenClawMTGSkill/1.0", "Accept": "application/json" } ``` **Rate Limiting:** Insert 50-100ms delay between requests (max 10 req/sec). ## Core Endpoints ### Search Cards ``` GET /cards/search?q={query} ``` Parameters: - `q` (required): Fulltext search query - `unique`: cards|art|prints (default: cards) - `order`: name|set|released|rarity|color|usd|tix|eur|cmc|power|toughness|edhrec|penny|artist|review - `dir`: auto|asc|desc - `page`: Page number for pagination ### Named Card Lookup ``` GET /cards/named?exact={name} GET /cards/named?fuzzy={name} ``` Use `fuzzy` for partial matches (e.g., "jac bele" → "Jace Beleren"). Add `&set={code}` to limit to specific set. ### Random Card ``` GET /cards/random GET /cards/random?q={query} ``` ### Card by ID ``` GET /cards/{id} GET /cards/{set_code}/{collector_number} ``` ### Autocomplete ``` GET /cards/autocomplete?q={partial_name} ``` Returns up to 20 card name suggestions. ## Search Syntax Reference See `references/search_syntax.md` for the complete search syntax guide. **Quick examples:** - `c:red pow=3` - Red cards with power 3 - `t:merfolk t:legend` - Legendary merfolk - `o:"draw a card"` - Cards with "draw a card" in text - `cmc=3 r:rare` - 3-mana rares - `e:dom` - Cards from Dominaria - `f:standard` - Standard legal cards - `usd<1` - Cards under $1 ## Implementation Use the provided script for common operations: ```bash python3 scripts/scryfall_search.py search "lightning bolt" python3 scripts/scryfall_search.py named --exact "Black Lotus" python3 scripts/scryfall_search.py random python3 scripts/scryfall_search.py random --query "t:dragon" ``` Or make direct API calls with proper headers and rate limiting. ## Card Object Key Fields When displaying card info, prioritize these fields: - `name`, `mana_cost`, `type_line` - `oracle_text`, `power`, `toughness` - `image_uris.normal` (for card image) - `prices.usd`, `prices.usd_foil` - `legalities` (format legality) - `set_name`, `rarity` For double-faced cards, check `card_faces` array. ## Error Handling - 404: Card not found - 422: Invalid search query - 429: Rate limited (wait and retry) Always validate responses have `object` field; if `object: "error"`, check `details` for message.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: unisound-llm/unisound-literature-retrieval (version 1.0.0)

--- name: med-doctor-literature-retrieval description: 医生端临床科研 — 医学文献问答与检索延展，在用户提供的题录/摘要片段上做 PICO 对齐与证据叙事。 metadata: { "openclaw": { "emoji": "📑" } } --- # 医学文献检索（问答 / 延展） ## 概述 将「临床问题」与可选的**本地已抓取题录或摘要片段**一并交给内部医疗大模型，生成 **PICO 对齐的问题重构、证据脉络梳理、检索式延展建议与知识空白提示**。适用于开题、综述大纲、或向上级汇报前的文献叙事草稿。 > 本 skill **不直连 PubMed / CNKI 等外部索引**；`passages` 由上游爬虫、图书馆 API 或手工粘贴提供。与药企侧 `literature-analysis` 相比，本包更强调**临床问题导向**与「下一步可查什么」的延展，而非研发管线证据表。 ## 业界脉络（写法参考，非功能承诺） 系统综述与快速证据合成中广泛采用 **PICO（Population, Intervention, Comparator, Outcome）** 框架约束检索问题；实践型产品常在「关键词布尔检索」之上叠加 **语义段落排序** 与 **引用级摘要**。本 skill 在 prompt 层显式引导 PICO 与「可检索引言」，便于后续接入真实检索 API 时把同一 JSON 映射为查询 DSL。 ## 快速开始 ```bash python3 scripts/run.py --input input.json --output output.json --appkey YOUR_KEY ``` ## 输入字段（JSON） | 字段 | 必填 | 说明 | | --- | --- | --- | | `clinical_question` | 是 | 临床或科研问题（一句话或多句） | | `passages` | 否 | 文献片段数组：`title`、`year`、`excerpt`（可无 PMID/DOI） | | `constraints` | 否 | 如人群、语种、研究设计偏好等 | ## 输出约定 ```json { "skill": "医学文献检索", "status": "ok", "data": { }, "text": "Markdown：PICO、要点、延展检索建议等" } ``` ## 参数 - `--input PATH`：**必填**。 - `--output PATH`：可选。 - `--appkey STRING`：**必填**。内部医疗大模型鉴权 key。 ## 模型配置 - `https://maas-api.hivoice.cn/v1/chat/completions` · `u1-insuremed` ## 边界 非实时文献库；**不替代**系统评价与人工全文阅读。若 `passages` 为空，模型仅基于通用医学知识给出检索策略级建议，须在呈现中区分「未锚定具体文献」。


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: mike47512/kindle (version 0.1.0)

--- name: kindle description: 注册“Kindle”技能；用于阅读产品公开页面、书库入口、会员说明与帮助信息整理。 homepage: `https://www.amazon.com/kindle-dbs/hz/signup` metadata: {"clawdbot":{"emoji":"📖"}} --- # Kindle 用途与边界 - 面向公开官网、书城页、会员页、帮助中心与活动页的信息整理 - 不提供盗版资源、版权绕过、会员代充、账号共享或接口调用能力 - 仅处理公开可见的书库入口、会员说明、阅读功能与帮助信息 关键入口 - 主页：https://www.amazon.com/kindle-dbs/hz/signup - 书库与内容：书城、分类、榜单、专题、作者或出版方入口 - 会员与帮助：会员页、订阅说明、帮助中心、活动页入口 常见任务 - 书库分类、榜单、书单与内容入口整理 - 会员权益、订阅规则、下载说明与设备支持汇总 - 帮助中心、常见问题、活动页与版权说明提取 数据字段 - 内容分类、榜单入口、会员权益、链接 - 设备支持、离线规则、帮助页、活动页链接 - 版权说明、FAQ、下载限制、公告入口 自动化要点 - 内容授权和会员权益存在地区与时间差异，输出时注明上下文 - 不输出盗版下载、会员共享、抓包或接口绕过建议 - 不处理个人书架、阅读记录、购买记录或私有账户数据 示例流程 - 书库整理：访问 Kindle 书城与分类页 → 输出内容入口清单 - 权益整理：进入会员页 → 提取权益与限制 → 输出表格 - 帮助汇总：访问帮助中心 → 提取下载、设备、FAQ → 输出摘要 合规提示 - 遵守平台规则、版权要求与账号安全要求 - 只整理公开信息，不输出敏感数据或非公开内容


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: jeremyctrl/a-testing-skill (version 1.0.0)

--- name: a-testing-skil description: Explains code with visual diagrams and analogies. Use when explaining how code works, teaching about a codebase, or when the user asks "how does this work?" --- When explaining code, always include: 1. **Start with an analogy**: Compare the code to something from everyday life 2. **Draw a diagram**: Use ASCII art to show the flow, structure, or relationships 3. **Walk through the code**: Explain step-by-step what happens 4. **Highlight a gotcha**: What's a common mistake or misconception? Keep explanations conversational. For complex concepts, use multiple analogies.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: jader/westmoon-qrcode-login (version 0.1.1)

--- name: westmoon-qrcode-login description: > 西之月账号扫码登录技能。当用户说“登录西之月”、“西之月扫码登录”、“获取西之月登录二维码”、 “刷新西之月登录态”，或其他技能检测到缺少有效西之月 access_token 时，应立即触发此技能。 执行完整登录流程：获取二维码 -> 向用户展示二维码 -> 轮询扫码状态 -> 保存 access_token、 refresh_token 和用户信息到 ~/.westmoon-user-login/tokens.json，供其他西之月技能复用。 license: Complete terms in LICENSE.txt --- # 西之月扫码登录 Skill > 重要：先按本 skill 的流程执行，再调用具体业务接口。不要绕过这里的 token 校验和落盘逻辑。 这个 Skill 用于为西之月相关自动化提供稳定的用户登录态。它支持普通终端场景，也支持 OpenClaw 会话中的二维码展示。 ## 何时使用 - 需要访问依赖西之月用户身份的接口 - 其他 Skill 提示缺少或检测到失效的 `Authorization: Bearer <token>` - 需要重新获取二维码让用户扫码确认 - 需要校验本地保存的登录态是否还有效 ## 工作流 ```text 获取二维码 -> 解码 wxacode -> 展示给用户 -> 轮询 scan_token -> confirmed -> 保存 token -> 调用 /umc/user/user/info 验证 -> invalid/expired -> 提示重新获取二维码 ``` 1. 调用生成接口获取 `scan_token` 和 `wxacode` 2. 将 `wxacode` 的 data URI 解码为 PNG 文件 3. 在普通终端打印图片路径和 data URI；在 OpenClaw 中额外输出可识别的文件标记 4. 阻塞模式下默认每 5 秒轮询一次 `/umc/miniprogram/qrcode/poll` 5. 状态为 `confirmed` 时保存： - `access_token` - `refresh_token` - `token_type` - `expires_in` - `expires_at` - `user_info` 6. 使用 `Authorization: Bearer <token>` 访问 `/umc/user/user/info` 7. 如果返回 HTTP 401，则认为本地登录态失效，需要重新登录 ## 快速使用 ### 命令行 ```bash # 获取二维码，默认非阻塞 python scripts/westmoon_login.py # 显式阻塞等待扫码完成 python scripts/westmoon_login.py --blocking # 继续上一次未完成的扫码轮询 python scripts/westmoon_login.py --continue # 用指定 scan_token 继续轮询 python scripts/westmoon_login.py --poll <scan_token> # 查看本地登录态摘要 python scripts/westmoon_login.py --status # 校验当前 token 是否有效 python scripts/westmoon_login.py --check # 读取用户信息 python scripts/westmoon_login.py --userinfo # 清除本地登录态 python scripts/westmoon_login.py --logout ``` ### Python API ```python from scripts.westmoon_login import WestmoonLoginManager manager = WestmoonLoginManager() result = manager.login() if result.success and result.scan_token: print(result.message) print(result.scan_token) ``` ### 非阻塞默认行为与 OpenClaw 场景 - 默认行为是展示二维码后立即结束，并把待处理的 `scan_token` 存到 `~/.westmoon-user-login/pending_login.json` - 用户扫码确认后，再让 agent 执行 `--continue` 或 `--poll <scan_token>` 完成登录 - 如果希望当前进程一直等到登录成功，使用 `--blocking`，此时会每 5 秒轮询一次 - OpenClaw 场景下，如果 `OPENCLAW_SESSION=1`，脚本会打印： - `[OPENCLAW_SEND_FILE]...[/OPENCLAW_SEND_FILE]` - `data:image/png;base64,...` ## 登录态存储 默认保存到： ```text ~/.westmoon-user-login/tokens.json ``` 其他技能优先读取这个文件，或直接使用 `scripts/token_manager.py`。 ## 关键脚本 - `scripts/westmoon_login.py` 统一入口，负责编排二维码、轮询、持久化、用户信息验证 - `scripts/qr_code_client.py` 负责调用生成接口、解析 `wxacode`、保存二维码文件 - `scripts/status_poller.py` 负责轮询扫码状态 - `scripts/token_manager.py` 负责登录态落盘、读取、过期判断 - `references/api_reference.md` 西之月扫码登录接口速查 - `references/integration_guide.md` 其他 Skill 如何复用登录态 ## 集成建议 - 当业务 Skill 收到 401，先调用本 Skill 的 `--check` - 若无效，再触发本 Skill 重新登录 - 只有在确认 token 有效后，才继续调用业务接口 详细接口和复用方式请按需读取： - [references/api_reference.md](references/api_reference.md) - [references/integration_guide.md](references/integration_guide.md)


Security scan verdicts — ClawScan: clean | static analysis: suspicious | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)
Skill: yehan5555/helword (version 1.0.1)

--- name: helword description: A simple hello world skill that demonstrates basic skill structure. When users ask for a greeting, it responds with a friendly hello message. triggers: - pattern: "hello|hi|hey|greeting|say hi" description: "Detect greeting requests" - pattern: "who are you|about yourself|introduce" description: "Detect self-introduction requests" auto_invoke: true examples: - "Say hello" - "Hi there" - "Hello world" - "Who are you" --- # Hello World Skill A simple skill that demonstrates the basic structure of an OpenClaw skill. This skill responds with a friendly greeting when users ask for one. ## Usage When the user asks for a greeting or introduces themselves, this skill will respond with a friendly message. ## Examples - User: "Say hello" → Skill: "Hello from your custom skill!" - User: "Hi there" → Skill: "Hello from your custom skill!" - User: "Who are you" → Skill: "Hello from your custom skill!" - User: "Hello world" → Skill: "Hello from your custom skill!" - User: "Introduce yourself" → Skill: "Hello from your custom skill!" ## Implementation This skill uses the built-in `echo` tool to output the greeting message. ## For Developers This skill serves as a template for creating new skills. To create your own skill: 1. Create a new folder in your skills directory 2. Add a `SKILL.md` file with proper metadata 3. Implement your skill logic 4. Publish using `clawhub publish <path>`


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: bounding-elk/daily-report-recorder (version 1.1.0)

--- name: daily-report-recorder description: 记录、润色、归档用户每天的工作内容，生成或更新当日日报 Markdown。 user-invocable: true --- # Daily Report Recorder 你是"工作日报记录助手"。 你的职责是： 1. 接收用户当天提交的工作事项、进展、问题、排障记录、会议纪要、交付内容。 2. 只基于用户明确提供的信息进行整理，不得虚构、夸大或补造结果。 3. 将碎片化、口语化内容优化为适合企业内部汇报的简洁表述。 4. 将同一天内多次提交的内容合并到同一份日报中，不重复创建多份日报。 5. 当用户明确说"生成日报""提交日报""整理今天工作"时，应立即整理当日日报并保存。 ## 输出规范 日报文件路径固定为： `/data/reports/daily/YYYY-MM-DD.md` 若文件已存在： - 先读取原内容； - 合并新增事项； - 去重； - 重整结构； - 再写回。 若文件不存在： - 新建文件。 ## 日报模板 必须严格按以下结构输出： # 日报 - YYYY-MM-DD ## 今日完成 - xxx - xxx ## 处理中事项 - xxx - 如无则写：暂无 ## 问题与风险 - xxx - 如无则写：暂无 ## 明日计划 - xxx - 如无则写：待补充 ## 备注 - 生成时间：YYYY-MM-DD HH:mm - 状态：已提交 / 待补充 ## 表达要求 - 用企业内部汇报口径； - 突出"动作、结果、状态"； - 不说空话，不写"积极推进、持续跟进"这类废话，除非用户原意就是这个； - 技术类内容尽量整理为"现象-原因-处理动作-当前状态"； - 用户输入很短时可以润色，但不能编造事实。 - 在生成日报时，引入柳比歇夫式时间管理思路：将用户工作内容视为"时间投入与产出记录"，而不仅是事项罗列。整理时应优先识别工作类别、关键结果、当前状态、未闭环事项及潜在低效点；"今日完成"优先保留高价值、已形成结果的事项，零散动作合并表达，避免流水账；"处理中事项"和"问题与风险"应突出阻塞、待验证和未闭环内容；"明日计划"需与当日工作连续衔接。不得虚构时长、成果或完成度，整体输出保持企业化、结果导向、闭环导向。 ## 识别规则 当用户输入包含以下类型内容时，默认视为日报素材： - 今日工作 - 问题排查 - 环境搭建 - 接口联调 - 自动化开发 - 测试验证 - 会议纪要 - 后续计划 ## 执行要求 你应主动完成： 1. 提取有效工作信息； 2. **自动为每条工作事项添加时间戳**（格式：`HH:mm`，时区：`Asia/Shanghai`，例如 `10:25`）； 3. 按模板生成日报预览； 4. 将内容保存到对应 Markdown 文件； 5. 返回给用户"已更新日报"的简短确认和摘要。 ## 时间戳规则 - 每条工作事项前自动加时间戳，格式：`[HH:mm] `（如 `[10:25] `） - 时区：`Asia/Shanghai` - 时间戳仅用于记录用户提交该事项的时间，不修改原有日期 - 如果用户一次性提交多条事项，只在最前面加一个时间戳，或按时间顺序排列 ## 汇报口径附加要求 - 优先使用"完成、定位、处理、优化、验证、输出、推进、闭环"等动作词； - 避免使用"搞了、弄了、看了、跟了"这类口语； - 技术问题表述尽量落到对象和结果，例如： - "完成 xxx 环境搭建并验证可用" - "定位 xxx 异常原因为 xxx" - "输出 xxx 方案/文档/脚本" - 对尚未完成事项，统一写为： - "持续处理中" - "已完成初步定位，待进一步验证"


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