OpenClaw/clawhub-security-signals huggingface dataset:
Skill: terrycarter1985/douyin-scraper-v2 (version 1.2.0)

--- name: douyin-scraper description: 爬取抖音热榜和热点视频数据，使用 OpenClaw browser tool 从抖音网页版抓取真实数据。搜索功能因验证码限制，自动回退到热榜数据。 --- # 抖音爆款爬虫 Skill ## 功能概述 使用 OpenClaw browser tool 自动化浏览器操作，爬取抖音热榜和热点视频数据。 ## ⚠️ 重要限制 - **搜索页面被验证码拦截** — 直接访问 `douyin.com/search/xxx` 会触发验证码，无法绕过 - **热榜页面稳定可用** — `douyin.com/hot` 可正常访问，包含 50 条热榜 + 10 条热点视频 - **搜索请求回退到热榜** — 当用户请求搜索时，返回当前热榜数据并说明限制 ## 使用方法（OpenClaw browser tool） ### 获取热榜数据 ``` 1. browser navigate → https://www.douyin.com/hot 2. 等待页面加载（~3秒） 3. browser act evaluate → 执行下方 JS 提取数据 ``` ### 提取数据的 JavaScript #### 提取热点视频 ```javascript (function(){ var results = []; var links = document.querySelectorAll('a[href*="/video/"]'); var seen = {}; links.forEach(function(el) { var href = el.getAttribute('href') || ''; if (seen[href]) return; seen[href] = true; var text = el.innerText.trim(); var parts = text.split('\n').filter(function(s) { return s.trim(); }); results.push({ title: parts.slice(2).join(' ').substring(0, 100) || text.substring(0, 100), duration: parts[0] || '', play_count: parts[1] || '', url: 'https://www.douyin.com' + href }); }); return JSON.stringify(results, null, 2); })() ``` #### 提取热榜列表 ```javascript (function(){ var results = []; document.querySelectorAll('a[href*="/hot/"]').forEach(function(el) { var heading = el.querySelector('h3, [class*="title"]'); var text = heading ? heading.innerText.trim() : el.innerText.trim().split('\n')[0]; var href = el.getAttribute('href') || ''; if (text && text.length > 1) { results.push({ title: text, url: 'https://www.douyin.com' + href }); } }); return JSON.stringify(results, null, 2); })() ``` ## 自然语言请求处理 | 用户说 | 意图 | 操作 | |--------|------|------| | "搜索一下海鲜视频" | search | 返回热榜数据 + 说明搜索受限 | | "看看抖音热榜" | hot | 获取热榜数据 | | "找一些海鲜售卖相关的视频文案" | search | 返回热榜数据 + 说明搜索受限 | | "抖音有什么热门" | hot | 获取热榜数据 | | "分析这个视频链接：xxx" | analyze | 访问指定视频链接，提取信息 | ### 关键词提取规则 - 从自然语言中移除"搜索"、"找"、"看看"、"视频"等功能词 - 保留核心搜索词备用 - **搜索请求统一回退到热榜**，并告知用户搜索功能因验证码限制暂不可用 ## 命令行脚本（备选） ```bash # 获取热榜 node scripts/douyin_scraper.js hot 20 # 搜索（回退到热榜） node scripts/douyin_scraper.js search "海鲜" 10 ``` ## 注意事项 1. **遵守抖音平台规则** — 合理使用，避免频繁请求 2. **请求间隔** — 建议间隔 2-3 秒 3. **数据用途** — 仅供学习和研究 4. **验证码** — 搜索页面会触发验证码，这是平台正常防护 --- **使用前请确保遵守相关法律法规和平台规则！**


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)
Skill: weznai/skill-mail-sender (version 1.0.0)

--- name: mail-sender description: 邮件发送工具，支持 HTML 和 Markdown 格式。当用户需要发送邮件、通知、报告、提醒或任何邮件相关任务时使用此技能。触发场景包括：(1) 发送 HTML 格式邮件，(2) 发送 Markdown 格式邮件（自动转换为 HTML），(3) 批量发送邮件给多个收件人，(4) 发送系统通知或报告，(5) 发送带格式的内容（表格、代码等）。 --- # Mail Sender - 邮件发送技能 邮件发送工具，提供安全、易用的邮件发送功能。支持 HTML 和 Markdown 格式，支持多收件人，配置灵活。 ## 功能特点 - ✉️ **多种格式** - 支持 HTML 和 Markdown 格式 - 👥 **多收件人** - 支持批量发送邮件 - 🔒 **安全配置** - 支持配置文件和环境变量 - 📝 **自动转换** - Markdown 自动转换为 HTML - ⚙️ **灵活配置** - 多种配置方式，优先级清晰 ## 安装依赖 ```bash pip install -r requirements.txt ``` ## 配置说明 ### 配置文件位置（按优先级） 1. `MAIL_CONFIG_PATH` 环境变量指定的路径 2. `~/.openclaw/skills/mail-sender/config.json`（优先） 3. `~/.openclaw/skills/config/mail-sender/config.json`（备选，卸载技能不影响配置） 4. `{skill_dir}/config.json` 5. `./.mail-sender-config.json` > **推荐**：使用 `~/.openclaw/skills/config/mail-sender/config.json`，独立于技能安装目录。 ### 配置文件示例 ```json { "sender_email": "[REDACTED_SECRET]", "sender_password": "your_auth_code", "smtp_server": "smtp.163.com", "smtp_port": 465, "default_receivers": ["[REDACTED_SECRET]"], "sender_name": "Your Name" } ``` ### 环境变量配置 ```bash export MAIL_SENDER_EMAIL="[REDACTED_SECRET]" export MAIL_SENDER_PASSWORD="your_auth_code" export MAIL_DEFAULT_RECEIVERS="[REDACTED_SECRET]" ``` ## 使用方法 ### 1. 发送 HTML 邮件 ```python from mail_sender import send_mail # 单个收件人 result = send_mail( subject='测试邮件', content='<h1>标题</h1><p>内容</p>', receivers='[REDACTED_SECRET]' ) # 多个收件人 result = send_mail( subject='团队通知', content='<p>内容</p>', receivers='[REDACTED_SECRET],[REDACTED_SECRET]' ) # 使用默认收件人 result = send_mail( subject='系统通知', content='<p>内容</p>' ) ``` ### 2. 发送 Markdown 邮件 ```python from mail_sender import send_markdown result = send_markdown( subject='周报', content=''' # 本周工作总结 ## 完成事项 - 完成功能 A - 修复 Bug B ## 下周计划 1. 开发功能 C 2. 代码审查 ''', receivers='[REDACTED_SECRET]' ) ``` ### 3. 自定义配置 ```python from mail_sender import MailConfig, MailSender config = MailConfig( sender_email="[REDACTED_SECRET]", sender_password="your_auth_code", sender_name="Your Name", default_receivers=["[REDACTED_SECRET]"] ) sender = MailSender(config) result = sender.send_mail( subject='测试', content='<p>内容</p>' ) ``` ## 返回值 所有发送函数返回统一的字典格式： ```python { 'success': True/False, # 是否成功 'message': '邮件发送成功！', # 结果消息 'failed_receivers': [] # 失败的收件人列表 } ``` ## 常见邮箱配置 ### 163 邮箱 ```json { "smtp_server": "smtp.163.com", "smtp_port": 465 } ``` ### QQ 邮箱 ```json { "smtp_server": "smtp.qq.com", "smtp_port": 465 } ``` ### Gmail ```json { "smtp_server": "smtp.gmail.com", "smtp_port": 587 } ``` ## 使用场景 1. **发送报告** - 发送每日/每周数据报告 2. **系统通知** - 发送系统维护、更新通知 3. **定时任务** - 结合定时任务发送定期邮件 4. **批量通知** - 批量发送通知给多个收件人 ## 故障排查 | 问题 | 解决方案 | |------|---------| | 登录失败 | 检查是否使用授权码（不是登录密码） | | 连接超时 | 检查 SMTP 服务器和端口 | | 邮件被拒 | 检查收件人地址格式 | | Markdown 转换失败 | 安装 `markdown` 库：`pip install markdown` | ## 注意事项 1. ✅ **使用授权码**：不要使用邮箱登录密码 2. ✅ **检查返回值**：检查 `success` 字段 3. ✅ **合理使用**：避免发送垃圾邮件 4. ❌ **不要硬编码**：避免在代码中直接写密码 ## 依赖 - Python 3.6+ - `markdown`（可选，用于 Markdown 转换） ```bash pip install markdown ```


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)
Skill: duhuazhu/bugpack-fix-bug (version 1.0.2)

--- name: bugpack-fix-bug description: "Fix a bug from BugPack by reading its context, locating code, applying fixes, and updating status. Use when: user asks to fix, repair, or resolve a bug. NOT for: just listing bugs (use bugpack-list-bugs) or just viewing bug details (use bugpack-view-bug)." metadata: openclaw: emoji: "\U0001F527" --- # BugPack - Fix Bug Read bug context from BugPack, locate the relevant code, apply a fix, and mark the bug as fixed. ## Instructions 1. **Get bug context**: Call `GET http://localhost:3456/api/bugs/:id` to fetch full bug details including description, screenshots, environment, and related files. 2. **Analyze the bug**: Read the description and examine the screenshots to understand what is broken and what the expected behavior should be. 3. **Locate code**: Use the `relatedFiles` array from the bug context to find the relevant source files. If `relatedFiles` is empty, use the `pagePath` and `description` to search the codebase. 4. **Apply fix**: Edit the source code to fix the described issue. Follow the project's existing code style and conventions. 5. **Mark as fixed**: After applying the fix, call `PATCH http://localhost:3456/api/bugs/:id` with: ```json { "status": "fixed" } ``` 6. **Add fix note** (optional): Call `PATCH http://localhost:3456/api/bugs/:id` with a description update to document what was changed. ## Example ```bash # Step 1: Get bug context GET http://localhost:3456/api/bugs/abc-123 # Step 5: Mark as fixed PATCH http://localhost:3456/api/bugs/abc-123 Content-Type: application/json { "status": "fixed" } ``` Response: ```json { "ok": true, "data": { "id": "abc-123", "status": "fixed" } } ```


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: airoucat233/solvea-chat (version 0.5.7)

--- name: solvea-chat version: 0.5.3 description: Call Solvea Web App chat API to get AI customer service replies. Use for real customer-service questions. On session boot message ("new session was started"), call with --mark-reset (no peer-id needed). For normal messages, call with --peer-id and --message. Never call for other slash-prefixed commands. --- # Solvea AI 客服对话 将 OpenClaw 渠道消息（飞书、钉钉等）接入 [Solvea](https://solvea.cx) Web App，一键部署 AI 客服 agent。 ## 安装 ```bash cd ~/.openclaw clawhub install solvea-chat ``` 复制上一步输出中 `Installed solvea-chat ->` 后面的路径，执行其中的 `setup.sh`： ```bash bash <上面输出的路径>/setup.sh ``` 按提示完成配置后，重启 OpenClaw。 ## 前置条件 - [OpenClaw](https://openclaw.ai) 已安装并配置至少一个渠道（飞书 / 钉钉等） - 拥有 Solvea Web App 的 X-Token 和 Agent ID - 本地已安装 `python3` ### 手动修改配置 如需事后修改： - API 配置：编辑 `<skill目录>/.env` - 渠道绑定：编辑 `~/.openclaw/openclaw.json`，在 `bindings` 中添加： ```json { "agentId": "solvea", "match": { "channel": "<渠道名>" } } ``` --- ## 调用方式（供 agent 参考） **发送客服消息：** ```bash skills/solvea-chat/.venv/bin/python skills/solvea-chat/scripts/chat.py \ --peer-id "feishu:<open_id>" \ --message "<用户消息内容>" ``` **session 启动时记录 reset 标记（boot 消息时调用，无需 peer-id）：** ```bash skills/solvea-chat/.venv/bin/python skills/solvea-chat/scripts/chat.py --mark-reset ``` **重置指定用户 session：** ```bash skills/solvea-chat/.venv/bin/python skills/solvea-chat/scripts/chat.py \ --peer-id "feishu:<open_id>" \ --reset ``` **参数说明：** - `--mark-reset`：记录 reset 标记，下次 chat 时自动先清除 session - `--peer-id`：用户唯一标识，飞书用户使用 `feishu:<open_id>` 格式 - `--message`：本轮用户消息（与 `--reset` 二选一） - `--reset`：立即清除该用户的 Solvea session --- ## Session 管理 脚本自动管理 `memory/solvea-sessions.json`： | 场景 | 行为 | |------|------| | 新用户首次消息 | 服务端分配新 chat_id，自动保存 | | 老用户继续对话 | 读取已有 chat_id，保持上下文 | | session 失效 | 自动清除旧 chat_id，重建新 session 后重试 | | `/reset` 命令 | 清除 chat_id，下次对话从头开始 | ## 错误处理 | 情况 | 输出 | |------|------| | AI 正常回复 | stdout: AI 回复内容 | | 需要转人工 | stdout: 转人工提示语 | | AI 无法回答 | stdout: 无法回答提示语 | | 网络/认证/配置错误 | stderr: 错误详情，exit code=1 | ## 参考 - API 详细说明：`references/api-spec.md`


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)
Skill: dapan0902/api-expert (version 1.0.4)

--- name: api-expert display_name: FastAPI开发专家 description: FastAPI development best practices and conventions. Use when building, reviewing, or debugging FastAPI applications, REST APIs, or Pydantic models. version: 1.0.4 metadata: pattern: tool-wrapper domain: fastapi --- You are an expert in FastAPI development. Apply these conventions to the user's code or question. ## Core Conventions Load 'references/conventions.md' for the complete list of FastAPI best practices. ## When Reviewing Code 1. Load the conventions reference 2. Check the user's code against each convention 3. For each violation, cite the specific rule and suggest the fix ## When Writing Code 1. Load the conventions reference 2. Follow every convention exactly 3. Add type annotations to all function signatures 4. Use Annotated style for dependency injection

path: references:conventions.md
content: # FastAPI 开发最佳实践规范

## 1. 类型注解 (Type Hints)
- **Rule 1.1**: 所有函数签名必须添加完整的类型注解。
- **Rule 1.2**: Pydantic 模型字段必须显式声明类型。

## 2. 依赖注入 (Dependency Injection)
- **Rule 2.1**: 统一使用 `Annotated` 风格进行依赖注入。
  *Bad*: `def func(db: Session = Depends(get_db))`
  *Good*: `def func(db: Annotated[Session, Depends(get_db)])`

## 3. HTTP 接口规范
- **Rule 3.1**: 必须明确指定 `status_code` (默认 200 除外)。
- **Rule 3.2**: 必须包含 `summary`，建议包含 `description`。
- **Rule 3.3**: 错误响应使用 `HTTPException`，并指定合适的 4xx/5xx 状态码。

## 4. Pydantic 模型规范
- **Rule 4.1**: 模型字段需添加 `Field(..., description="...")` 说明。
- **Rule 4.2**: 合理使用 `Config` 类配置 schema 示例。

## 5. 项目结构建议
- 路由分离 (`routers/`)
- 模型分离 (`schemas/`, `models/`)
- 依赖分离 (`dependencies/`)

Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: rock-ma-ai/inspirations (version 1.0.0)

--- name: inspirations description: 灵感捕捉与记录工具。当用户输入灵感、想法、创意、待验证创意时自动触发，记录为结构化 Markdown 文件保存到 workspace/inspirations/ 目录。支持类型识别（灵感/想法/待验证创意）、自动打标签、整理摘要。 --- # Inspirations — 灵感捕捉与记录 ## 核心工作流 当用户描述一个灵感/想法/创意时，执行以下步骤： ### 1. 内容类型识别 根据内容自动判断类型： | 关键词/特征 | 类型 | Tag | |------------|------|-----| | 突然闪现、直觉、"冒出来"的念头 | `inspiration` | 💡 灵感 | | 有目标、有步骤、可执行的方案 | `idea` | 🎯 想法 | | 有根据但需要验证/实验的假设 | `todo` | 🔬 待验证 | | 读书/文章/对话后的思考和延伸 | `reflection` | 💭 反思 | > 类型判断优先级：todo > idea > reflection > inspiration。用户输入中最明确的特征为准。 ### 2. 生成文件名 格式：`YYYY-MM-DD--HHMM--{type}--{slug}.md` - `type`：识别出的类型标签（小写，如 inspiration） - `slug`：从内容中提取 2-4 个核心关键词，用短横线连接 - 中文标题直接音译或取拼音首字母 **示例：** - 内容："忽然想到可以做个 AI 日程助手的浏览器插件" - 文件名：`2026-05-09--0118--inspiration--ai-ri-cheng-zhu-shou.md` ### 3. 写入 Markdown 文件 文件路径：`workspace/inspirations/{filename}` 文件内容模板： ```markdown --- title: {一句话标题} type: {类型} tags: [{tag1}, {tag2}, ...] created_at: {YYYY-MM-DD HH:mm} source: {来源，DM/群聊/文档等} --- ## 原始记录 {用户的原始输入，逐字保留} ## 摘要 {用一段简洁的话总结这条灵感的核心价值，30字以内} ## 延伸思考 {根据内容自动补充 1-3 条延伸问题或关联想法} ## 状态 - [ ] 未处理 - [ ] 有价值，待跟进 - [ ] 已归档 ``` ### 4. 存储目录 统一存放在 `workspace/inspirations/` 下，按年月组织子目录： ``` workspace/inspirations/ ├── 2026-05.md ← 月度汇总索引 └── 2026-05/ ├── 2026-05-09--0118--inspiration--ai-ri-cheng-zhu-shou.md └── ... ``` 每月末在 `YYYY-MM.md` 文件中追加一条索引记录。 ## 月度索引文件格式 路径：`workspace/inspirations/{YYYY-MM}.md` ```markdown # 灵感索引 — {YYYY年MM月} ## 本月记录 | 日期 | 标题 | 类型 | 状态 | |------|------|------|------| | 05-09 | AI 日程助手浏览器插件 | 💡 灵感 | ⏳ 未处理 | ## 本月统计 - 灵感：{N} 条 - 想法：{N} 条 - 待验证：{N} 条 ``` ## 交互原则 - **不打断用户**：识别到灵感后静默完成记录，不强制要求补充信息 - **主动补充**：自动生成摘要和延伸思考，减少用户操作负担 - **简洁确认**：记录完成后给一条简短确认（"已记录：[标题]"），不冗长 - **可纠正**：用户可以随时说"修改/补充/删除刚才的灵感"，立即响应 ## 触发信号 以下情况**必须**记录： - 用户明确说"忽然想到……"、"冒出一个念头……"、"我有灵感了……" - 用户描述了一个未经验证的创意或方案 - 用户提到"也许可以……"、"我在想能不能……" 以下情况**不记录**： - 用户只是在聊天、问候、提问 - 明确是在讨论现有任务或执行指令 - 闲聊内容


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: chenkek901/writer-pro (version 1.0.0)

--- name: writer description: | 专业的文章生成工具，可按需生成指定风格、结构的文章。 Use when: 用户需要写文案、邮件、报告、请假条、欢迎语 NOT for: 简单的是/否问答 --- # Writer Skill - AI 写作助手 你是一位专业的写作助手。 ## Workflow 1. 确认用户的写作主题、风格和字数要求 2. 生成文章大纲 3. 按大纲逐段输出正文 ## Output Format **主题**：[写作主题] **大纲**： - 要点1 - 要点2 - 要点3 **正文**： [输出完整文章]


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: wu-uk/dynamic-object-aware-egomotion-sampling-and-indexing (version 0.1.0)

--- name: sampling-and-indexing description: "Standardize video sampling and frame indexing so interval instructions and mask frames stay aligned with a valid key/index scheme." --- # When to use - You need to decide a sampling stride/FPS and ensure *all downstream outputs* (interval instructions, per-frame artifacts, etc.) cover the same frame range with consistent indices. # Core steps - Read video metadata: frame count, fps, resolution. - Choose a sampling strategy (e.g., every 10 frames or target ~10–15 fps) to produce `sample_ids`. - Only produce instructions and masks for `sample_ids`; the max index must be `< total_frames`. - Use a strict interval key format such as `"{start}->{end}"` (integers only). Decide (and document) whether `end` is inclusive or exclusive, and be consistent. # Pseudocode ```python import cv2 VIDEO_PATH = "<path/to/video>" cap=cv2.VideoCapture(VIDEO_PATH) n=int(cap.get(cv2.CAP_PROP_FRAME_COUNT)) fps=cap.get(cv2.CAP_PROP_FPS) step=10 # example sample_ids=list(range(0, n, step)) if sample_ids[-1] != n-1: sample_ids.append(n-1) # Generate all downstream outputs only for sample_ids ``` # Self-check list - [ ] `sample_ids` strictly increasing, all < total frame count. - [ ] Output coverage max index matches `sample_ids[-1]` (or matches your documented sampling policy). - [ ] JSON keys are plain `start->end`, no extra text. - [ ] Any per-frame artifact store (e.g., NPZ) contains exactly the sampled frames and no extras.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: duffycoder/qwen-image-plus-sophnet (version 1.0.0)

--- name: qwen-image-plus-sophnet description: Generate images via Sophnet Qwen-Image-Plus and poll for task completion. Use when the user asks for Sophnet image generation, Qwen-Image-Plus, or requests an image from the Sophnet API. --- # Qwen-Image-Plus (Sophnet) Image Generation Use the Sophnet image generator API to create an image task, poll until it finishes, then return the image URL. ## Quick Start Set the API key (preferred): ```bash export SOPHNET_API_KEY="YOUR_API_KEY" ``` Run the script with an absolute path (do NOT cd to the skill directory): ```bash bash /home/shutongshan/.openclaw/workspace/skills/qwen-image-plus-sophnet/scripts/generate_image.sh --prompt "your prompt" ``` ## Script Options - `--prompt` (required): user prompt - `--negative-prompt` (optional) - `--size` (optional, default `1024*1024`) - `--n` (optional, default `1`) - `--watermark` (optional, default `false`) - `--prompt-extend` (optional, default `true`) - `--api-key` (optional, overrides `SOPHNET_API_KEY`) - `--poll-interval` (optional, default `2`) - `--max-wait` (optional, default `300`) ## Output Contract The script prints: - `TASK_ID=...` - `STATUS=succeeded` - `IMAGE_URL=...` (one or more lines) Use the `IMAGE_URL` value to respond to the user. ## Workflow 1. POST create-task with `model=Qwen-Image-Plus` and user prompt 2. Poll GET task status until `SUCCEEDED` 3. Extract `url` and return to the user ## Real Example (captured run) Prompt: ```text A scenic mountain landscape in ink wash style ``` Command: ```bash bash /home/shutongshan/.openclaw/workspace/skills/qwen-image-plus-sophnet/scripts/generate_image.sh \ --prompt "A scenic mountain landscape in ink wash style" \ --negative-prompt "blurry, low quality" \ --size "1024*1024" \ --n 1 \ --watermark false \ --prompt-extend true ``` Output: ```text TASK_ID=7BWFICt0zgLvuaTKg8ZoDg STATUS=succeeded IMAGE_URL=https://dashscope-result-wlcb-acdr-1.oss-cn-wulanchabu-acdr-1.aliyuncs.com/7d/d5/20260203/cfc32567/f0e3ac18-31f6-4a1a-b680-a71d3e6bcbe03032414431.png?Expires=1770714400&OSSAccessKeyId=[REDACTED_SECRET]&Signature=fF12GZ7RgGsC7OpEkGCapkBUXws%3D ``` ## Common Errors - `Error: No API key provided.` -> set `SOPHNET_API_KEY` or pass `--api-key` - `STATUS=failed` -> check key permissions/quota or prompt parameters - `Error: url not found in response` -> inspect API response manually


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: lemonjuice0/task-assistant-bot (version 1.0.2)

# 任务整理助手BOT ## 🔴 绝对触发铁律（违反即无效，全局最高优先级） 1. **本技能仅在收到「整理当前订单」指令时，才激活Agent并执行整理操作** 2. 所有非「整理当前订单」的订单相关消息，**仅后台静默缓存，完全不激活Agent、不输出任何思考、不回复任何内容、零刷屏** 3. 「新订单」指令：仅后台清空当前订单缓存，**不激活Agent、零输出** 4. 「清空缓存」指令：仅后台清空所有缓存，**不激活Agent、零输出** 5. 绝对禁止：任何非触发词消息，激活Agent、输出思考、回复内容 --- ## 技能说明 专为订单/任务整理设计的自动化助手，支持订单合并缓存、全场景适配、每日自动清零，严格按固定格式输出，零刷屏、零多余回复。 --- ## 一、身份与性格设定（永久生效） - 身份：任务整理助手BOT - 性格：**绝对静默、只响应「整理当前订单」、无任何多余输出**，不闲聊、不发缓存提示、不输出思考日志 - 核心原则：仅处理当日订单，**绝对不读取历史对话**，只基于当前缓存和本规则输出 --- ## 二、订单合并处理逻辑（仅激活时执行） 收到「整理当前订单」指令后，提取所有缓存的关键信息（订单号、下单时间、服务类型、金额、交付时间等），按固定格式一次性输出完整订单，无多余内容。 --- ## 三、固定输出格式（仅替换{}内信息，其余一字不改） ### 第一段（客户通知）： 亲，您的订单我们已经收到~ 1. 订单号：{订单号} 2. 下单时间：{下单时间} 3. 服务类型和要求：{服务类型/要求} 4. 下单金额：{下单金额} 下单说明：下单前请务必确认好双方确认的信息和要求，避免因后续增加要求产生额外费用哦~新增要求根据工作量收费~ 另，如需教学请务必提前说明~教学常规收费200/半小时 ### 第二段（内部执行规则）： 要求： 1. {具体执行要求} 2. {交付内容要求} 3. 交付时间：{交付时间/待补充} 附加说明：{附加说明} ### 表格导入行： {订单号} {下单时间} {服务类型和要求} {下单金额} {交付时间} --- ## 四、补充规则 1. 每日24:00自动清空未整理缓存，不读取历史订单 2. 缺失字段统一填充「待补充」，不遗漏格式结构 3. 未缓存订单时，收到「整理当前订单」，绝对零输出 4. 绝对禁止自我触发：Bot的输出不被当成订单消息，禁止循环刷屏


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: nissan/smoke-test-generator (version 1.0.0)

--- name: smoke-test-generator description: Generate comprehensive API smoke test suites — categorised tests for auth, CRUD, integrations, cached vs live endpoints, with summary reporting. Use when validating API deployments, CI smoke checks, or pre-demo verification. Works with any HTTP API. version: 1.0.0 metadata: { "openclaw": { "emoji": "\ud83e\uddea", "requires": { "bins": [], "env": [] }, "primaryEnv": null, "network": { "outbound": true, "reason": "Sends HTTP requests to the API under test (typically localhost). No external service calls." } } } --- # Smoke Test Generator A structured pattern for API smoke testing with categorised test suites and summary reporting. Adapted from a production test suite that verified 34 endpoints across auth, CRUD, cached audio, story generation, ElevenLabs, and Mistral agent APIs. ## Test Categories | Category | What It Tests | Fail = | |---|---|---| | Auth | Login, token validation, protected routes | Nothing else works | | CRUD | Create, read, update, delete operations | Data layer broken | | Cached | Pre-cached content serves correctly | Demo will fail | | Live | Real API calls complete successfully | External dependency down | | Integration | End-to-end workflows across services | Pipeline broken | ## Pattern ```python import httpx import asyncio BASE_URL = "http://localhost:8000" results = {"pass": 0, "fail": 0, "skip": 0} async def test(name: str, category: str, fn): try: await fn() results["pass"] += 1 print(f" ✅ [{category}] {name}") except Exception as e: results["fail"] += 1 print(f" ❌ [{category}] {name}: {e}") async def run_smoke_tests(): async with httpx.AsyncClient(base_url=BASE_URL, timeout=30) as client: # Auth await test("Login with valid creds", "auth", lambda: assert_status(client.post("/login", json={"email": "[REDACTED_SECRET]", "password": "test"}), 200)) # CRUD await test("Create item", "crud", lambda: assert_status(client.post("/api/items", json={"name": "test"}), 201)) # Cached await test("Cached content returns 200", "cached", lambda: assert_status(client.get("/api/cached/1"), 200)) # Integration await test("Full pipeline completes", "integration", lambda: assert_status(client.post("/api/pipeline", json={...}), 200)) total = results["pass"] + results["fail"] print(f"\n{'='*40}") print(f"Results: {results['pass']}/{total} passed") if results["fail"] > 0: print(f"⚠️ {results['fail']} failures — do not demo!") ``` ## Files - `scripts/smoke_test.py` — Example smoke test suite with all categories


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: wengjianmin19850412/feishuweng (version 1.0.0)

# 通用飞书消息发送 Skill 支持多飞书应用配置的消息发送工具，适配不同 Agent 绑定不同飞书应用的场景。 ## 配置项（Agent 绑定 Skill 时需填写） | 配置名 | 类型 | 必填 | 说明 | |--------|------|------|------| | APP_ID | 字符串 | 是 | 飞书应用的 App ID | | APP_SECRET | 字符串 | 是 | 飞书应用的 App Secret | | DEFAULT_RECEIVE_ID | 字符串 | 否 | 默认消息接收人/群 ID | ## 调用参数（Agent 调用 Skill 时传参） | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | receive_id | 字符串 | 否 | 消息接收人/群 ID（优先级高于默认值） | | text | 字符串 | 是 | 要发送的文本消息内容 | ## 返回值说明 返回飞书 API 原始响应结果，示例： { "code": 0, "msg": "success", "data": { "message_id": "om_xxxxxx" } }


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