OpenClaw/clawhub-security-signals huggingface dataset:
Skill: liuhedev/lh-html-to-image (version 1.0.1)

--- name: lh-html-to-image description: Generate images from HTML+CSS via Chrome headless screenshot. Perfect for covers, posters, info cards, and text-layout images. Zero API cost, 100% accurate text rendering. Triggers: "generate cover", "poster", "HTML to image", "make image". homepage: https://github.com/liuhedev/lh-openclaw-kit --- # HTML to Image Generate images from HTML+CSS using Chrome headless screenshots. Ideal for covers, posters, info cards, and any text-heavy visual content. Zero API cost, 100% accurate text rendering. ## Use Cases - ✅ Cover images (title + subtitle + tags) - ✅ Info cards (data display, comparison charts) - ✅ Text layout images (quote cards, highlight cards) - ❌ Illustrations, photos (use an AI image generation tool) ## Workflow ### Step 1: Write HTML Create an HTML file with inline CSS: ```html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <style> body { width: 1080px; height: 1440px; /* 3:4 portrait */ margin: 0; overflow: hidden; font-family: -apple-system, "PingFang SC", "Noto Sans SC", sans-serif; } </style> </head> <body> <!-- Your content here --> </body> </html> ``` ### Step 2: Chrome Headless Screenshot ```bash # macOS "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \ --headless=new \ --disable-gpu \ --screenshot="output.png" \ --window-size=1080,1440 \ --hide-scrollbars \ --force-device-scale-factor=2 \ "file:///absolute/path/to/your.html" # Linux (auto-detect chrome/chromium) google-chrome --headless=new --disable-gpu \ --screenshot="output.png" \ --window-size=1080,1440 \ --hide-scrollbars \ "file:///absolute/path/to/your.html" ``` Chrome path can be overridden via `CHROME_PATH` environment variable. ## Common Sizes | Purpose | Width×Height | Ratio | |---------|-------------|-------| | Portrait cover | 1080×1440 | 3:4 | | Square cover | 1080×1080 | 1:1 | | Widescreen cover | 1920×1080 | 16:9 | | Social media banner | 1280×720 | 16:9 | ## Tips - Chrome GPU error logs can be safely ignored - Use `--force-device-scale-factor=2` for retina/high-DPI output (doubles pixel dimensions) - Use `--force-device-scale-factor=1` for exact pixel dimensions - CJK fonts: PingFang SC (macOS built-in), Noto Sans SC (Linux, install via `apt install fonts-noto-cjk`) - For complex layouts, test in a regular browser first, then screenshot


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: securecloudprojo/summarize-garrison (version 1.0.0)

--- name: summarize description: Summarize URLs or files with the summarize CLI (web, PDFs, images, audio, YouTube). homepage: https://summarize.sh metadata: {"clawdbot":{"emoji":"🧾","requires":{"bins":["summarize"]},"install":[{"id":"brew","kind":"brew","formula":"steipete/tap/summarize","bins":["summarize"],"label":"Install summarize (brew)"}]}} --- # Summarize Fast CLI to summarize URLs, local files, and YouTube links. ## Quick start ```bash summarize "https://example.com" --model google/gemini-3-flash-preview summarize "/path/to/file.pdf" --model google/gemini-3-flash-preview summarize "https://youtu.be/dQw4w9WgXcQ" --youtube auto ``` ## Model + keys Set the API key for your chosen provider: - OpenAI: `OPENAI_API_KEY` - Anthropic: `ANTHROPIC_API_KEY` - xAI: `XAI_API_KEY` - Google: `GEMINI_API_KEY` (aliases: `GOOGLE_GENERATIVE_AI_API_KEY`, `GOOGLE_API_KEY`) Default model is `google/gemini-3-flash-preview` if none is set. ## Useful flags - `--length short|medium|long|xl|xxl|<chars>` - `--max-output-tokens <count>` - `--extract-only` (URLs only) - `--json` (machine readable) - `--firecrawl auto|off|always` (fallback extraction) - `--youtube auto` (Apify fallback if `APIFY_API_TOKEN` set) ## Config Optional config file: `~/.summarize/config.json` ```json { "model": "openai/gpt-5.2" } ``` Optional services: - `FIRECRAWL_API_KEY` for blocked sites - `APIFY_API_TOKEN` for YouTube fallback

path: _meta.json
content: ownerId: kn7384kgjsevwpb2tfnq2zym5h828bvm
slug: summarize-garrison
version: 1.0.1
publishedAt: 1772623908373

Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: dannyboy1241/weather-intelligence-digest-fresh (version 1.0.0)

--- name: weather-intelligence-digest description: Generate daily Weather Intelligence Digest using NOAA/NWS data with customizable locations and alert monitoring. homepage: https://api.weather.gov metadata: { "openclaw": { "emoji": "🌦️", "requires": { "bins": ["python3", "pip"] } } } --- # Weather Intelligence Digest Generate a daily Weather Intelligence Digest using NOAA / NWS data. ## Setup 1. **Dependencies:** `python3`, `pip`. 2. Optional but recommended: `python3 -m venv .venv && source .venv/bin/activate`. 3. `pip install -r requirements.txt`. 4. Copy `config.example.json` to `config.json` and customize the `locations` list with `name`, `lat`, `lon` pairs. ## Usage ```bash python3 weather_digest.py --config config.json --output digest.md ``` Output is Markdown; convert to PDF/email as needed. ## Configuration Notes - Data source: `api.weather.gov` (no API key required; feel free to customize the User-Agent string in the script). - Each location fetches forecast + alerts; add/remove fields as needed. - Extend the template by editing `build_digest` in `weather_digest.py`.

path: requirements.txt
content: requests>=2.31.0


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: suspicious | SkillSpector: suspicious (MEDIUM)
Skill: zhangyanbo2007/poetry-recitation (version 1.0.0)

--- name: poetry-recitation description: > Generate poetry recitation videos using a cloned voice or system voice with starry background and Chinese subtitles. Use when: (1) User asks to recite a poem, (2) User says "朗诵", "诗朗诵", "读一首诗", (3) User wants a video with voice + subtitles for any poem or literary text. NOT for: AI-generated video backgrounds, music generation, or non-poetry text-to-speech. --- # Poetry Recitation Generate a video: voice recitation + starry background + timed Chinese subtitles. ## Prerequisites - TTS pipeline at `~/.openclaw/skills/tts-gen-pipeline/` with at least one cloned voice - Dependencies: `dashscope`, `websockets`, `moviepy`, `pillow`, `numpy` - Font: NotoSerifCJK at `/usr/share/fonts/opentype/noto/NotoSerifCJK-Regular.ttc` ## Quick Start ```bash python3 scripts/poetry_recitation.py --poem "床前明月光\n疑是地上霜" --title "静夜思" # or specify a voice: python3 scripts/poetry_recitation.py --poem "..." --title "静夜思" --voice 章彦博 ``` ## Arguments | Arg | Required | Description | |-----|----------|-------------| | `--poem` | Yes | Poem text, use `\n` for line breaks | | `--title` | No | Title displayed at top of video | | `--voice` | No | Voice name: cloned voice (e.g. 章彦博) or system voice (cherry/serena/ethan/chelsie). Default: first cloned voice | | `--output` | No | Output video path (default: `~/workspace/audio/<title>_朗诵.mp4`) | ## Available Voices **Cloned voices:** Check with `python3 ~/.openclaw/skills/tts-gen-pipeline/scripts/generate.py list-local` **System voices:** cherry (甜美女声), serena (温柔女声), ethan (沉稳男声), chelsie (磁性男声) ## Workflow 1. Accept poem text from user (and optional `--voice` preference) 2. Run `poetry_recitation.py` with the poem 3. Send the resulting video to user via MEDIA path — no extra confirmation needed ## Voice Resolution - If `--voice` matches a local cloned voice name → uses cloned voice model - If `--voice` matches a system voice name → uses system voice model - If not specified → uses first available cloned voice ## Output Generated video (1920x1080, 24fps, H.264 + AAC) saved to `~/workspace/audio/`.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: careytian-ai/zh-search-pro (version 1.0.0)

--- name: zh-search-pro description: 中文搜索增强工具，整合百度、必应、微信、知乎等中文搜索引擎，支持高级搜索语法和时间过滤。 metadata: openclaw: requires: bins: - web_fetch --- # 中文搜索增强工具 v1.0.0 整合多个中文搜索引擎，无需 API 密钥即可进行中文内容搜索。 ## 支持的搜索引擎 ### 中文搜索引擎 (6) - **百度**: `https://www.baidu.com/s?wd={keyword}` - **必应中国**: `https://cn.bing.com/search?q={keyword}` - **微信搜索**: `https://weixin.sogou.com/weixin?type=2&query={keyword}` - **知乎**: `https://www.zhihu.com/search?q={keyword}&type=content` - **今日头条**: `https://so.toutiao.com/search?keyword={keyword}` - **360 搜索**: `https://www.so.com/s?q={keyword}` ### 国际搜索引擎 (3) - **DuckDuckGo**: `https://duckduckgo.com/html/?q={keyword}` - **Google HK**: `https://www.google.com.hk/search?q={keyword}` - **Startpage**: `https://www.startpage.com/sp/search?query={keyword}` ## 快速使用示例 ```javascript // 基础搜索 web_fetch({"url": "https://www.baidu.com/s?wd=Python 教程"}) // 站内搜索 web_fetch({"url": "https://www.baidu.com/s?wd=site:zhihu.com+AI 学习"}) // 时间过滤（最新内容） web_fetch({"url": "https://cn.bing.com/search?q=AI 新闻&filters=ex1%3a%22last7%22"}) // 微信文章搜索 web_fetch({"url": "https://weixin.sogou.com/weixin?type=2&query=自媒体 运营"}) // 知乎内容搜索 web_fetch({"url": "https://www.zhihu.com/search?q=如何学习编程&type=content"}) ``` ## 高级搜索语法 ### 百度高级语法 | 语法 | 示例 | 说明 | |------|------|------| | `site:` | `site:zhihu.com AI` | 站内搜索 | | `intitle:` | `intitle:教程 Python` | 标题包含 | | `inurl:` | `inurl:blog` | URL 包含 | | `filetype:` | `filetype:pdf 报告` | 文件类型 | | `""` | `"机器学习"` | 精确匹配 | | `-` | `Python -snake` | 排除关键词 | ### 必应高级语法 | 语法 | 示例 | 说明 | |------|------|------| | `site:` | `site:github.com` | 站内搜索 | | `language:` | `language:zh-CN` | 语言过滤 | | `loc:` | `loc:CN` | 地区过滤 | | `hasfeed:` | `hasfeed:新闻` | 包含 RSS | ## 时间过滤参数 ### 必应时间过滤 - 过去 24 小时：`&filters=ex1%3a%22last24%22` - 过去 7 天：`&filters=ex1%3a%22last7%22` - 过去 30 天：`&filters=ex1%3a%22last30%22` - 过去一年：`&filters=ex1%3a%22lasty%22` ### 百度时间过滤 - 一天内：`&cl=24` - 一周内：`&cl=7` - 一月内：`&cl=30` - 一年内：`&cl=365` ## 使用场景 1. **市场调研** - 搜索行业报告、竞品分析 2. **内容创作** - 查找素材、热点话题 3. **学术研究** - 搜索论文、专业资料 4. **舆情监控** - 追踪品牌/产品讨论 5. **SEO 研究** - 分析关键词排名 ## 注意事项 - 部分搜索引擎有反爬机制，可能需要重试 - 微信搜索需要处理验证码 - 建议配合 `web_search` 工具使用（如果有 API 密钥） ## 相关文件 - `CHANGELOG.md` - 版本历史 - `examples/` - 使用示例 ## 许可证 MIT-0 - 自由使用、修改和分发


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: wzp2026/learning-content-generator (version 2.3.1)

--- name: "learning-content-generator" description: "基于学习路径节点生成个性化学习内容。支持层级感知（L1/L2/L3不同深度）和上下文感知（同概念差异化）。每节点生成3000~5000字学习内容+3~5道随堂自测题。详细说明见 references/README.md" version: "2.3.1" author: "Wang Zhipeng" created: "2026-04-16" updated: "2026-04-21" tags: ["学习内容", "学习路径", "来源标注", "个性化学习", "层级感知", "国内合规"] --- # 学习内容生成器 v2.3.0 ## 核心功能 基于知识图谱节点，生成个性化学习内容（约3000~5000字/节点）+ 随堂自测题（3~5道） **协作模式**：与 learning-path-builder（知识图谱生成技能）配合使用 - 接收：完整知识图谱JSON + 目标节点ID - 输出：该节点的完整学习内容 ## 核心原则 1. **来源优先**：权威来源≥30%、参考来源≤40%、推断内容≤30% 2. **来源标注**：每个知识点注明 ✅权威 / ⚠️参考 / 🤖推断 3. **国内合规**：国家标准/官方文档优先，境外内容需标注 4. **层级感知**：L1大而全/L2系统化/L3精确深入 5. **上下文感知**：结合父L1/L2领域上下文生成差异化内容 ## 调用参数 | 参数 | 说明 | 作用 | |------|------|------| | `target_node_id` | 目标L3叶节点ID | 指定要生成哪个节点的内容 | | `knowledge_graph` | 完整知识图谱JSON | 提供全局上下文 | | `context.l1_node` | 父L1节点信息 | 理解大领域上下文 | | `context.l2_node` | 父L2节点信息 | 理解模块上下文 | | `level` | 节点层级(1/2/3) | 决定内容深度 | ## 工作流程 ``` 第一步：读取知识图谱文件 第二步：分析内容生成计划 第三步：逐节点生成学习内容（每完成通知） 第四步：生成随堂自测题 第五步：验证与汇总 ``` 每步完成后发送会话进度通知。不设硬性超时，失败可从该步骤续接。 ## 输出格式 - 主文件：`{name}_content_{node_id}.md` - 验证报告：`{name}_content_verification.md` - 长文本（>8000字）自动分片生成 --- *详细说明：references/README.md* *作者：Wang Zhipeng | 更新：2026-04-21 14:13*


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)
Skill: victor-thu/feishu-doc-summarizer (version 0.1.1)

--- name: feishu-doc-summarizer description: Summarize Feishu/Lark cloud documents the user can read. Use when the user sends a Feishu doc link (docx or wiki) and expects an auto summary without extra instructions, or explicitly asks to summarize a Feishu document. Workflow: resolve wiki to docx, read doc content via feishu_doc, summarize using the user’s fixed summary schema from MEMORY.md, and send the summary back to the current chat. --- # Feishu Doc Summarizer ## Overview Given a Feishu/Lark document link (docx or wiki), read the document content and reply in-chat with a structured summary following the user’s fixed schema stored in MEMORY.md. ## Workflow ### 0) Input detection - Trigger when the user message contains a Feishu/Lark **docx** link like: - `https://...larkoffice.com/docx/DOC_TOKEN` - Also trigger when the user message contains a Feishu/Lark **wiki** link like: - `https://...larkoffice.com/wiki/WIKI_TOKEN` The user may provide **no additional instructions**; default to summarizing. ### 1) Resolve link → doc token (if needed) - If it is a **docx link**: extract `doc_token` directly. - If it is a **wiki link**: - Use `feishu_wiki(action=get, [REDACTED_SECRET])` to resolve the underlying object. - If the object type is `docx`, extract its doc token. - If not docx, tell the user what type it is and what you can support. ### 2) Read document content - Use `feishu_doc(action=read, doc_token=doc_token)` to retrieve the full document content. - If permissions fail or content is empty, ask the user to confirm they granted read access. ### 3) Summarize with the fixed schema (from memory) - Before drafting, retrieve the summary schema from memory (search MEMORY.md for “Feishu 云文档摘要偏好” / “固定模板”). - Produce the summary strictly following the section order and rules in memory. - **Citations**: In the “引用原文片段” section, only quote text that appears in the document; do not fabricate. #### Long documents If the document is very long: 1) Chunk by headings/paragraph groups, summarize each chunk briefly. 2) Merge chunk summaries into the final schema. 3) Keep “引用原文片段” short and representative. ### 4) Reply back to the user - Send the final formatted summary back to the current conversation. - Include the original link in “文档元信息/链接”. ## Output format (must follow memory) Follow the user’s schema in MEMORY.md exactly; keep missing items as “无/未知” rather than removing sections.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: mattvalenta/pls-url-to-markdown (version 1.0.0)

--- name: url-to-markdown description: Fetch URLs and convert web pages to clean Markdown for AI processing or knowledge bases. Use when: (1) Researching web content, (2) Building knowledge bases, (3) Extracting articles, (4) Converting pages for docs. --- # URL to Markdown Converter Fetches URLs and converts web pages to clean Markdown. ## Quick Start ### Python Method (`markdownify`) ```bash pip install requests beautifulsoup4 markdownify python3 -c "... fetching and converting URL ..." ``` ### CLI Tools (`html2text`, `pandoc`) ```bash curl -s URL | html2text wget -q -O - URL | pandoc -f html -t markdown ``` ## Full Extraction Script ```python import requests from bs4 import BeautifulSoup from markdownify import markdownify as md def url_to_markdown(url, output_file=None): # ... fetch, parse, convert logic ... pass ``` ## Content Extraction Patterns ### Extract Article Body ```python def extract_article(html): soup = BeautifulSoup(html, 'html.parser') article = soup.find('article') or soup.find('main') return md(str(article)) if article else None ``` ### Preserve Code Blocks ```python def preserve_code(html): # ... logic to wrap code in ``` ... pass ``` ## CLI Usage ```bash python url_to_markdown.py URL -o output.md ``` ## Error Handling ```python def safe_fetch(url, retries=3): # ... retry logic ... pass ```


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

--- name: book-hvac description: Book hvac services through Lokuli MCP. Use when user needs to find and book hvac. Triggers on requests like "book a hvac", "find hvac near me", or any hvac service request. --- # uook hvac Book hvac services through Lokuli's MCP server. ## MCP Endpoint ``` https://lokuli.com/mcp/sse ``` Transport: SSE | JSON-RPC 2.0 | POST requests ## Tools ### search ```json { "method": "tools/call", "params": { "name": "search", "arguments": { "query": "hvac", "zipCode": "90640", "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" } } } ```


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: longmaba/facebook-page-manager (version 1.0.0)

--- name: facebook-page description: Manage Facebook Pages via Meta Graph API. Post content (text, photos, links), list posts, manage comments (list/reply/hide/delete). Use when user wants to publish to Facebook Page, check Page posts, or handle comments. --- # Facebook Page Skill để quản lý Facebook Page qua Meta Graph API. ## Chức năng - List các Page mà user quản lý - Đăng bài (text, ảnh, link) - List bài đăng của Page - List/reply/hide/delete comment ## Setup (một lần) ### 1. Tạo Meta App 1. Vào https://developers.facebook.com/apps/ → Create App 2. Chọn **"Other"** → **"Business"** (hoặc Consumer tuỳ use-case) 3. Điền tên app, email 4. Vào **App settings > Basic**: lấy **App ID** và **App Secret** ### 2. Cấu hình OAuth 1. Vào **Add Product** → thêm **Facebook Login** 2. Trong **Facebook Login > Settings**: - Valid OAuth Redirect URIs: để trống (dùng manual code flow) 3. Vào **App Roles > Roles** → thêm account làm Admin/Developer ### 3. Cấu hình .env ```bash cd skills/facebook-page cp .env.example .env # Edit .env với App ID và Secret ``` ### 4. Cài dependencies và lấy token ```bash cd scripts npm install node auth.js login ``` Script sẽ: 1. In ra URL để user mở browser, đăng nhập, approve permissions 2. User copy URL sau khi approve (chứa `code=...`) 3. Paste URL vào terminal 4. Script exchange code → long-lived token → page tokens 5. Lưu tokens vào `~/.config/fbpage/tokens.json` ## Commands ### List pages ```bash node cli.js pages ``` ### Đăng bài text ```bash node cli.js post create --page PAGE_ID --message "Hello world" ``` ### Đăng bài có ảnh ```bash node cli.js post create --page PAGE_ID --message "Caption" --photo /path/to/image.jpg ``` ### Đăng bài có link ```bash node cli.js post create --page PAGE_ID --message "Check this out" --link "https://example.com" ``` ### List posts ```bash node cli.js post list --page PAGE_ID --limit 10 ``` ### List comments của post ```bash node cli.js comments list --post POST_ID ``` ### Reply comment ```bash node cli.js comments reply --comment COMMENT_ID --message "Thanks!" ``` ### Hide comment ```bash node cli.js comments hide --comment COMMENT_ID ``` ### Delete comment ```bash node cli.js comments delete --comment COMMENT_ID ``` ## Permissions cần thiết - `pages_show_list` - list pages - `pages_read_engagement` - đọc posts/comments - `pages_manage_posts` - đăng/sửa/xoá bài - `pages_manage_engagement` - quản lý comments ## Lưu ý - Token Page không hết hạn (nếu lấy từ long-lived user token) - Không log/print token ra output - App ở Testing mode chỉ hoạt động với accounts trong Roles


Security scan verdicts — ClawScan: suspicious | static analysis: suspicious | VirusTotal: suspicious | SkillSpector: suspicious (CRITICAL)
Skill: iamdacai/lanxin-media (version 1.0.0)

--- name: lanxin-media version: 1.0.0 description: 蓝信官方媒体发送能力，支持发送图片、文件。使用 <lximg> <lxfile> 标签发送，系统自动解析上传。 metadata: {"clawdbot":{"emoji":"📸"},"openclaw":{"always":true}} triggers: - 蓝信 - 发图片 - 发文件 - 发送图片 - 发送文件 - 图片 - 文件 - 本地文件 - 本地图片 - 文档 - 表格 priority: 99 --- # 蓝信媒体发送规则（必须严格遵守） ## 核心规则（绝对禁止违反） 1. **用户要求发图片/文件，必须直接输出 <lximg> 或 <lxfile> 标签** 2. **标签必须单独成行，不使用任何 markdown、代码块、加粗、斜体** 3. **禁止把标签放在 ``` 代码块中** 4. **禁止说“无法发送”“不支持”“暂时不能”等拒绝话术** 5. **禁止解释标签作用，直接输出即可** 6. **一次只发送一个文件或一张图片** 7. **路径必须真实有效，格式干净无多余符号** --- ## 发送图片（必须这样输出） **注意：发送图片时必须使用 `<lximg>` 标签，而不是 `<lxfile>` 标签！** **注意：SVG 文件请使用 `<lxfile>` 标签发送，而不是 `<lximg>` 标签！** 格式： <lximg>文件路径或URL</lximg> 示例（正确）： 这是你要的图片： <lximg>/Users/user/photo.jpg</lximg> 示例（正确）： <lximg>https://example.com/image.png</lximg> ## 发送 SVG 文件（必须这样输出） **注意：SVG 文件必须使用 `<lxfile>` 标签，而不是 `<lximg>` 标签！** 格式： <lxfile>文件路径或URL</lxfile> 示例（正确）： <lxfile>/Users/user/image.svg</lxfile> 示例（正确）： <lxfile>https://example.com/image.svg</lxfile> ## 发送文件（必须这样输出） **注意：发送文件时必须使用 `<lxfile>` 标签，而不是 `<lximg>` 标签！** 格式： <lxfile>文件路径或URL</lxfile> 示例（正确）： 文件已发送： <lxfile>/Users/user/report.pdf</lxfile> 示例（正确）： <lxfile>https://example.com/document.pdf</lxfile> --- ## 支持的闭合格式（任选一种） <lximg>...</lximg> 或 <lximg>...</img> <lxfile>...</lxfile> 或 <lxfile>...</file> --- ## 蓝信限制 - 图片/文件大小 ≤ 2MB - 支持：png、jpg、jpeg、pdf、doc、docx、xls、xlsx、txt - 视频、音频暂不支持 --- ## 严禁出现的错误行为 ❌ 禁止：```markdown <lxfile>...</lxfile> ``` ❌ 禁止：**<lxfile>...</lxfile>** ❌ 禁止：` <lxfile>...` ❌ 禁止：解释“这是标签”“系统会解析” ❌ 禁止：拒绝发送 ❌ 禁止：只输出文字内容，不输出标签 ## 你的行为准则 用户让你发文件/图片 → **直接输出干净标签** → 不要多余描述 → 不要格式包裹 → 完成。

path: clawdbot.plugin.json
content: {
  "id": "lanxin-media",
  "name": "蓝信媒体发送",
  "version": "1.0.0",
  "description": "蓝信媒体发送技能，支持发送图片和文件",
  "type": "skill",
  "main": "index.js",
  "keywords": [
    "openclaw",
    "lanxin",
    "media",
    "skill"
  ],
  "dependencies": {},
  "engines": {
    "node": ">=20.0.0"
  }
}


path: index.js
content: /**
 * Lanxin media skill - handles media sending functionality
 */

// This file serves as an entry point for the lanxin-media skill
// It doesn't need any specific functionality since the skill is primarily defined by the SKILL.md file

module.exports = {
  name: 'lanxin-media',
  description: '蓝信媒体发送技能',
  version: '1.0.0'
};


path: package.json
content: {
  "name": "lanxin-media",
  "version": "1.0.0",
  "description": "蓝信媒体发送技能",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [
    "openclaw",
    "lanxin",
    "media",
    "skill"
  ],
  "author": "",
  "license": "MIT"
}


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: dapan0902/project-planner-new (version 1.0.2)

--- name: project-planner-new display_name: 软件项目开发规划助手 description: Plans a new software project by gathering requirements through structured questions before producing a plan. Use when the user says "I want to build", "help me plan", "design a system", or "start a new project". metadata: pattern: inversion interaction: multi-turn version：1.0.2 --- You are conducting a structured requirements interview. DO NOT start building or designing until all phases are complete. ## Phase 1 — Problem Discovery (ask one question at a time, wait for each answer) Ask these questions in order. Do not skip any. - Q1: "What problem does this project solve for its users?" - Q2: "Who are the primary users? What is their technical level?" - Q3: "What is the expected scale? (users per day, data volume, request rate)" ## Phase 2 — Technical Constraints (only after Phase 1 is fully answered) - Q4: "What deployment environment will you use?" - Q5: "Do you have any technology stack requirements or preferences?" - Q6: "What are the non-negotiable requirements? (latency, uptime, compliance, budget)" ## Phase 3 — Synthesis (only after all questions are answered) 1. Load 'assets/plan-template.md' for the output format 2. Fill in every section of the template using the gathered requirements 3. Present the completed plan to the user 4. Ask: "Does this plan accurately capture your requirements? What would you change?" 5. Iterate on feedback until the user confirms

path: assets:plan-template.md
content: # [项目名称] - 详细规划方案
## 1. 核心问题与用户
- 解决的核心问题：[从Q1答案填充]
- 核心用户群体：[从Q2答案填充]
- 用户技术水平：[从Q2答案填充]

## 2. 项目规模预期
- 日活用户数：[从Q3答案填充]
- 数据量预估：[从Q3答案填充]
- 请求频率：[从Q3答案填充]

## 3. 技术约束
- 部署环境：[从Q4答案填充]
- 技术栈选择：[从Q5答案填充]
- 硬性要求（延迟/可用性/合规/预算）：[从Q6答案填充]

## 4. 核心建议
- 架构选型：[基于需求给出建议]
- 优先级排序：[核心功能/非核心功能划分]
- 风险点与应对方案：[潜在技术/资源风险]

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