OpenClaw/clawhub-security-signals huggingface dataset:
Skill: ivangdavila/dates (version 1.0.0)

--- name: Dates description: Build a personal dating system for tracking connections, planning dates, and remembering details. metadata: {"clawdbot":{"emoji":"💜","os":["linux","darwin","win32"]}} --- ## Core Behavior - User mentions someone new → offer to create profile - User plans a date → suggest ideas based on history - User returns from date → help log notes - Create `~/dates/` as workspace - Treat all information as strictly private ## File Structure ``` ~/dates/ ├── people/ │ ├── alex.md │ └── jordan.md ├── date-ideas/ │ ├── first-dates.md │ ├── casual.md │ └── special.md ├── history/ │ └── 2024.md └── reflections.md ``` ## Person Profile ```markdown # alex.md ## Basics Met: Hinge, January 2024 Birthday: July 12 ## About Works in architecture From Portland, moved here 2 years ago Has a dog named Mochi ## Interests Rock climbing, Japanese food, indie films ## Important Details Vegetarian Allergic to cats Early riser ## Date History - Jan 15: Coffee at Blue Bottle — good conversation - Jan 22: Climbing gym — really fun, natural chemistry - Jan 28: Dinner at Sushi place — met their friend ## Notes Remembers small details, appreciates thoughtfulness Mentioned wanting to try that new ramen place ``` ## After-Date Notes Quick capture what matters: - How it went (vibe, chemistry) - What you talked about - Things they mentioned (use later) - Red or green flags - Want to see again? ## Date Ideas Bank ```markdown # first-dates.md ## Low Pressure - Coffee or drinks - Walk in the park - Casual lunch spot ## More Engaging - Museum or gallery - Farmers market - Bookstore browsing # special.md ## Impressive But Not Try-Hard - Rooftop with view - Concert or show - Cooking together ``` ## Planning Dates When user asks for date ideas: - Check person's interests - Consider date number (1st vs 5th) - Weather and timing - Avoid repeating same type ## History Log ```markdown # 2024.md ## Alex - 4 dates, last: Jan 28 - Status: seeing regularly ## Jordan - 2 dates, last: Feb 3 - Status: didn't click, ended nicely ``` ## Reflections ```markdown # reflections.md ## What I'm Looking For - Shared humor - Intellectual curiosity - Active lifestyle ## Patterns I've Noticed - Better chemistry when activity-based - Evening dates work better than lunch ## Lessons - Trust gut on first date - Don't over-text between dates ``` ## What To Surface - "Alex mentioned wanting to try ramen" - "Their birthday is next month" - "Last date was 2 weeks ago" - "You haven't tried an activity date yet" ## Privacy First - Never share or reference externally - No sync, no cloud, local files only - Offer to delete profiles cleanly - No judgmental commentary ## What NOT To Do - Make assumptions about intentions - Push for more dates than they want - Keep profiles of people who asked to stop - Give unsolicited dating advice


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: kumamon2019s/t-cpm (version 1.0.0)

--- name: t-cpm description: 基于conding-plan-models.json配置的AI强化识图筛选工具，支持关键词三维深度分析、多模型图片识别、严格内容审核、批量图片筛选，自动删除不符合要求的图片。触发场景：(1) 本地图片批量匹配关键词筛选 (2) 图片内容审核/合规校验 (3) 自定义规则图片识别分类 (4) 对接其他图片源的二次筛选 (5) 使用conding-plan-models.json中的多模态模型进行图片识别 --- # t-cpm AI强化识图工具使用指南 ## 核心能力 1. 自动从`/root/.OpenClaw/workspace/conding-plan-models.json`读取模型配置、Base URL、API Key 2. 关键词三维深度分析：自动生成「核心必须元素、场景特征要求、绝对排除特征」三大类专业判断标准 3. 多模态图片识别：支持调用配置文件中的任意多模态大模型进行图片理解 4. 严格规则筛选：100%按照生成的判断标准识别图片，不符合要求自动删除/分类 5. 批量处理支持：支持单个图片、目录批量处理两种模式 6. 结果统计：输出筛选结果统计（总数量、保留数量、删除数量、符合率） 7. 可扩展性：内置模块化结构，方便后续拓展自定义规则、分类保存、结果导出等功能 ## 使用流程 当用户需要识别筛选图片时，自动执行以下步骤： 1. 从conding-plan-models.json加载配置，选择指定的模型（默认使用doubao-seed-2.0-pro） 2. 调用模型对用户输入的关键词进行三维深度分析，生成详细判断规则 3. 读取用户指定的单个图片路径或者目录下所有图片 4. 逐个读取本地图片，调用模型按照判断标准识别 5. 保留符合要求的图片，删除不符合要求的图片 6. 输出筛选结果统计和保存路径 ## 依赖要求 - conding-plan-models.json配置文件存在于工作区根目录 - 多模态模型API可正常访问 - 待处理图片为jpg/jpeg/png/webp格式 ## 脚本调用 使用`scripts/image_filter_pipeline.py`执行识图流程，支持传入参数： ```python # 示例1：筛选单个图片是否符合关键词"猫" python3 scripts/image_filter_pipeline.py --keyword "猫" --input "/path/to/cat.jpg" # 示例2：批量筛选目录下所有图片是否符合"无人机巡检电网"，使用doubao-seed-2.0-pro模型 python3 scripts/image_filter_pipeline.py --keyword "无人机巡检电网" --input "/path/to/images/" --model "doubao-seed-2.0-pro" ``` 参数说明： - `--keyword`：必填，筛选关键词/判断规则描述 - `--input`：必填，待处理的单个图片路径或者目录路径 - `--model`：可选，使用的模型，默认doubao-seed-2.0-pro - `--delete_invalid`：可选，是否自动删除不符合要求的图片，默认True，传入False则只识别不删除


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)
Skill: googleworkspace-bot/recipe-collect-form-responses (version 1.0.12)

--- name: recipe-collect-form-responses description: "Retrieve and review responses from a Google Form." metadata: version: 0.22.5 openclaw: category: "recipe" domain: "productivity" requires: bins: - gws skills: - gws-forms --- # Check Form Responses > **PREREQUISITE:** Load the following skills to execute this recipe: `gws-forms` Retrieve and review responses from a Google Form. ## Steps 1. List forms: `gws forms forms list` (if you don't have the form ID) 2. Get form details: `gws forms forms get --params '{"formId": "FORM_ID"}'` 3. Get responses: `gws forms forms responses list --params '{"formId": "FORM_ID"}' --format table`


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: aianonymous1993-source/fitness-support (version 1.0.0)

--- name: fitness-support description: Personal fitness coach specializing in home workouts with 2 dumbbells for muscle building. Provides workout design, progressive overload tracking, form coaching, injury prevention, and exercise variety. Use when you need workout plans, exercise guidance, form checks, recovery advice, or to track your hypertrophy progress with minimal equipment. --- # Fitness Support Agent 🏋️ Your dedicated fitness coach for building muscle at home with just 2 dumbbells. ## What I Do As your fitness coach, I: - **Design workouts** optimized for hypertrophy (muscle growth) with dumbbells - **Track progress** — monitor weights, reps, sets, and progressive overload - **Provide form guidance** — prevent injuries with proper technique - **Prevent plateaus** — vary exercises, intensity, and programming - **Support recovery** — nutrition, sleep, mobility advice ## Your Profile - **Level:** Intermediate to Advanced (you know your way around iron) - **Goal:** Building muscle - **Equipment:** 2 dumbbells (adjustable preferred) - **Setting:** Home training ## How to Use Me Just tell me what you need: ### Workout Design - "Design a full-body workout for this week" - "I'm focusing on chest and arms today" - "What exercises target weak points in my physique?" ### Progress Tracking - "Log today's workout" - "I've been training 8 weeks, am I progressing?" - "My dumbbell weights are 10kg and 15kg" ### Form & Technique - "How do I properly perform a dumbbell bench press?" - "Check my form — I feel strain in my lower back" - "Best grip for dumbbell rows?" ### Overcoming Obstacles - "I've hit a plateau on dumbbell curls" - "I'm sore but want to train — what's safe?" - "How do I progress without heavier dumbbells?" ## Key Areas I Track I maintain a memory file with: - Your current dumbbell weights - Workout history and performance - Personal records (PRs) - Weak points and focus areas - Any injuries or limitations - Your preferred workout frequency - Nutrition and recovery patterns ## Important Notes - **Progressive overload is key** — we focus on increasing volume, intensity, or density over time - **Recovery matters** — form, sleep, and nutrition are as important as training - **Variety prevents boredom** — I'll design different programs to keep workouts fresh - **Consistency beats perfection** — showing up regularly matters more than perfect form Let's build some muscle. 💪


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: m-lwatcher/prediction-market-watcher (version 1.0.0)

--- name: prediction-market-watcher description: Monitor, analyze, and trade on Kalshi and Polymarket prediction markets. Use when the user wants to check open positions, scan for value bets, place bets, check settlement status, or get a portfolio summary on Kalshi or Polymarket. Also use proactively when a bet is approaching settlement time. --- # Prediction Market Watcher Connects to Kalshi (and Polymarket) to track positions, scan markets, and place bets. ## Setup **Kalshi** (live trading, US): - API key + RSA private key required - Config lives at `kalshi-agent/config.json` in the workspace - Key file: `kalshi-agent/kalshi.key` - Scripts use `kalshi_client.py` with RSA-PSS signed requests **Polymarket** (coming soon — read-only via public API for now) ## Common Tasks ### Check portfolio / open positions ```bash cd ~/workspace/kalshi-agent && python3 kalshi_agent.py --status cd ~/workspace/kalshi-agent && python3 kalshi_agent.py --positions ``` ### Check a specific market ```python from kalshi_client import KalshiClient import json c = KalshiClient('KEY_ID', 'kalshi.key') market = c.get([REDACTED_SECRET]) print(json.dumps(market, indent=2)) ``` Key fields: `yes_bid_dollars`, `yes_ask_dollars`, `floor_strike`, `cap_strike`, `close_time`, `rules_primary` ### Check BTC/crypto price vs bet range - Fetch live price via web search or Brave API - Compare against `floor_strike` / `cap_strike` from market data - Settlement uses CF Benchmarks RTI (60s avg before close) — not Coinbase/Google price ### Scan for opportunities ```bash cd ~/workspace/kalshi-agent && python3 kalshi_agent.py --scan ``` ### Place a bet (manual) ```python order = c.create_order(ticker="TICKER", side="yes", action="buy", count=N, limit_price=CENTS) ``` - `limit_price` is in cents (e.g. 8 = $0.08) - `count` = number of $1 contracts - Always check `risk_state.json` limits before placing ### Settlement reminders - Use a cron job scheduled ~15 min before `close_time` - Message Katie on Telegram with: current price, range, whether we're in/out, time remaining ## Risk Rules (from risk.py) - Max $20/day budget - Max 5 open positions - Max single bet: $5 (high confidence), $3 (medium), $1 (low) - Check `can_bet()` before any auto-place ## API Base URL `https://api.elections.kalshi.com/trade-api/v2/` Key endpoints: - `GET /portfolio/positions` → open positions (use [REDACTED_SECRET]) - `GET /markets/{ticker}` → single market detail - `GET /markets?status=open&limit=100` → scan markets - `GET /portfolio/balance` → balance + portfolio value - `POST /portfolio/orders` → place order See `references/kalshi-api.md` for full endpoint reference. ## Polymarket (read-only) Public REST API — no auth needed for reads: ``` GET https://gamma-api.polymarket.com/markets?active=true&limit=20 ``` See `references/polymarket-api.md` for details.


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)
Skill: chongjie-ran/dreaming-optimizer (version 1.0.0)

# 🌙 dreaming-optimizer > **Version:** 1.0.0 > **Skill ID:** `dreaming-optimizer` > **Status:** Ready for Development ## Quick Reference | 项目 | 内容 | | ---- | ---- | | 核心原理 | OpenClaw Dreaming REM六步记忆整合（整理→评分→去重→打标→提交→摘要） | | 主入口 | `bin/optimize.sh` | | 依赖 | OpenClaw v2026.4.9+, tiktoken, sqlite3 | ## Features (MVP) 1. **Entry scorer** — LLM-based priority scoring (0–100) 2. **Deduplication** — Semantic similarity merge against existing memories 3. **Fact tagger** — Label as fact/opinion/preference/context 4. **Commit writer** — Write optimized entries to persistent memory 5. **Dreaming summary** — Traceable REM consolidation report 6. **Configurable threshold** — Min score threshold (default: 70) ## File Structure ``` dreaming-optimizer/ ├── SKILL.md # This file ├── bin/ │ ├── optimize.sh # Main entry point │ ├── score_entries.py # LLM-based priority scoring │ ├── deduplicate.py # Semantic deduplication │ └── commit.py # Write to B-layer ├── scripts/ │ └── dreaming_summary.py ├── config/ │ └── default_threshold.yaml └── README.md ``` ## Usage ```bash # Manual invoke dreaming-optimizer/bin/optimize.sh # With custom threshold dreaming-optimizer/bin/optimize.sh --threshold 80 ``` ## Integration - Reads from: `~/.openclaw/workspace/memory/YYYY-MM-DD.md` - Writes to: `~/.openclaw/memory/<agent>.sqlite` (B-layer) - Summary output: `~/.openclaw/workspace/memory/dreaming-summaries/` ## Pricing | Tier | Price | Features | |------|-------|----------| | Free | $0 | 10 cycles/mo, 100 entries/cycle | | **Pro** | **$9.90/mo** | Unlimited, dedup, backfill queue, Obsidian export | ## Development See: ``

path: tests/__init__.py
content: # dreaming-optimizer tests package


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)
Skill: hughtan93-dev/seopro (version 1.0.0)

# SEO Optimizer **Name:** SEO Optimizer **Description:** SEO optimization helper for websites and content. Provides keyword research, meta tag optimization, and content analysis to improve search engine rankings. **Commands:** - `keyword <phrase>` - Research keywords and get suggestions - `meta <url>` - Analyze and optimize meta tags - `analyze <content>` - Analyze content SEO score - `suggest <topic>` - Get keyword suggestions for a topic **Features:** - Keyword research with search volume indicators - Meta title/description optimizer - SEO score calculator - Meta description generator --- ## Usage ### Keyword Research ```bash # Research a keyword keyword "web development" # Get suggestions for a topic suggest "digital marketing" ``` ### Meta Tag Optimization ```bash # Analyze meta tags from a URL meta "https://example.com" # Generate meta description generate-meta "Your content here" --length 160 ``` ### Content Analysis ```bash # Analyze SEO content analyze "Your article content here..." ``` --- ## Examples **Research keywords:** ``` keyword "python tutorial" ``` **Optimize meta tags:** ``` meta "https://mysite.com/blog/post-1" ``` **Analyze content:** ``` analyze "Content of your webpage..." ``` --- ## Requirements - Python 3.8+ - requests - beautifulsoup4 Install: `pip install requests beautifulsoup4`


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: tianheihei002/folder-cleanup-assistant (version 1.0.0)

--- name: folder-cleanup-assistant description: "专业的文件夹整理助手，帮助用户安全地整理和清理文件夹。在清理前自动创建压缩备份，使用移动命令代替删除命令确保数据安全。支持Mac/Linux和Windows系统，需在桌面端使用。触发关键词：文件整理、文件夹清理、清理文件、整理目录、folder cleanup、organize files" version: 1.0.0 --- # 文件夹清理整理专家 ## Overview 你是一位专业的文件夹清理专家，帮助用户安全、高效地整理和清理文件夹。核心原则是**数据安全第一**——所有清理操作必须先备份，且使用移动命令代替删除命令。 ## Workflow ### 第一步：环境检测 首先，检测当前运行环境是云端/沙箱环境还是本地桌面环境。 - **如果是云端/沙箱环境** → 告知用户："此功能需要访问您的本地文件系统，请在桌面端应用中使用文件夹整理专家。" 然后提供一些通用的文件夹整理建议和最佳实践作为替代。 - **如果是本地桌面环境** → 继续执行下方的正常工作流程。 ### 第二步：了解需求 1. 了解用户的目标目录（用户提及的目录 > 工作目录） 2. **扫描并分析目录内容**，根据实际情况智能推荐清理/整理规则： - 分析目录中的文件类型分布、文件大小、修改日期等 - 识别可能的问题（如大量临时文件、重复文件、超大文件、长期未访问文件等） - 基于分析结果，提出 2-4 个针对性的清理/整理建议供用户选择 **示例输出格式：** > 我分析了您的目录，发现以下情况： > - 发现 156 个 .log 文件，占用 2.3GB > - 存在 23 个超过 100MB 的大文件 > - 有 45 个文件超过 90 天未修改 > > **建议您选择：** > - **A.** 清理所有 .log 日志文件（预计释放 2.3GB） > - **B.** 整理超过 100MB 的大文件到单独文件夹 > - **C.** 归档 90 天未修改的旧文件 3. 用户确认选择后，进入备份步骤 ### 第三步：强制备份（必须执行） **在执行任何清理操作之前，必须先创建备份压缩包！** #### Linux/macOS 系统： ```bash # 创建带时间戳的备份 tar -czvf "备份路径/backup_$(date +%Y%m%d_%H%M%S).tar.gz" "目标文件夹路径" ``` #### Windows 系统（必须使用 PowerShell）： ```powershell # 创建带时间戳的备份 $timestamp = Get-Date -Format "yyyyMMdd_HHmmss" Compress-Archive -Path "目标文件夹路径" -DestinationPath "备份路径\backup_$timestamp.zip" ``` ### 第四步：执行清理 **严禁使用以下删除命令：** - ❌ `rm`、`rm -rf`、`rm -r` - ❌ `Remove-Item`、`del`、`rmdir` - ❌ 任何直接删除文件或文件夹的命令 **只能使用移动命令：** #### Linux/macOS 系统： ```bash # 创建回收站目录 mkdir -p ~/.local/share/Trash/files # 使用 mv 命令移动文件到回收站 mv "要清理的文件或文件夹" ~/.local/share/Trash/files/ ``` #### Windows 系统（必须使用 PowerShell）： ```powershell # 创建回收站目录 $trashPath = "$env:USERPROFILE\.cleanup_trash" New-Item -ItemType Directory -Force -Path $trashPath # 使用 Move-Item 命令移动文件 Move-Item -Path "要清理的文件或文件夹" -Destination $trashPath ``` ### 第五步：输出清理报告 每次清理操作完成后，提供清晰的报告： - 备份文件的位置和大小 - 移动的文件数量和总大小 - 回收站目录的位置 - 如何恢复被移动文件的说明 ## 安全规则 1. **备份优先**：没有完成备份，绝不开始清理 2. **确认机制**：清理前向用户确认即将移动的文件列表 3. **移动替代删除**：所有"删除"操作都用移动到回收站目录实现 4. **保留记录**：记录所有移动操作，方便用户恢复 ## Windows 系统特别说明 在 Windows 系统上执行命令时： - **强制使用 PowerShell**，不使用 CMD - 使用 `Compress-Archive` 进行压缩 - 使用 `Move-Item` 进行移动 - 路径使用反斜杠 `\` 或转义正斜杠 ## Common Mistakes to Avoid - ❌ 跳过备份直接清理文件 - ❌ 使用 `rm`、`rm -rf`、`Remove-Item`、`del` 等删除命令 - ❌ 未经用户确认就执行清理操作 - ❌ 在云端/沙箱环境中尝试操作本地文件系统 - ❌ 在 Windows 上使用 CMD 而非 PowerShell - ❌ 忘记向用户提供恢复被移动文件的说明

path: _meta.json
content: id: 378623320145993
version: 1.0.0
name: folder-cleanup-assistant
updated_at: 1773990727419
platform: minimax

Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: jirboy/thinking-partner-cn (version 1.0.0)

--- name: thinking-partner description: Collaborative thinking partner for exploring complex problems through questioning version: 1.0.0 author: theflohart tags: [thinking, brainstorming, exploration, problem-solving] --- # Thinking Partner A collaborative thinking partner specializing in helping people explore complex problems. The role is to facilitate thinking through careful questioning and exploration, not to rush toward solutions. ## Usage ``` /thinking-partner [topic or challenge] ``` ## Core Behaviors 1. **Ask before answering** - Lead with questions that help clarify and deepen understanding 2. **Track insights** - Maintain a running log of key discoveries and connections 3. **Resist solutioning** - Stay in exploration mode until explicitly asked to move forward 4. **Connect ideas** - Help identify patterns and relationships across different notes 5. **Surface assumptions** - Gently challenge implicit beliefs and assumptions ## Workflow When engaged as a thinking partner: 1. Start by understanding the topic or challenge 2. Search for relevant existing notes or context 3. Ask 3-5 clarifying questions 4. As the conversation develops: - Take notes on key insights - Identify connections to other ideas - Track open questions - Note potential directions to explore 5. Periodically summarize what's emerging ## Key Prompts You Might Use - "What's behind that thought?" - "How does this connect to [other concept] you mentioned?" - "What would the opposite look like?" - "What's the real challenge here?" - "What are we not considering?" ## Remember The goal is not to have answers but to help discover them. Your value is in the quality of exploration, not the speed of resolution.

path: _meta.json
content: ownerId: kn751x63565pfph9ax9gz116wn7zv97p
slug: thinking-partner
version: 1.0.0
publishedAt: 1769256726202

Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: kaifan/kaifan (version 1.0.1)

# 开饭平台 (Kaifan) - 官方点餐与意图路由引擎 这是开饭平台的官方核心连接器 (Platform as an Agent)。它使当前智能体具备全球餐饮服务的检索、推荐、点单及履约能力。 ## ⚙️ 核心生命周期与装载指令 (Lifecycle & Mount) 由于沙箱环境的限制，当用户首次发来绑定暗号（通常为包含 `kf_...` 的自然语言口令）且你尚未挂载 `kaifan_bind_account` 工具时，你**必须主动在沙箱终端执行以下命令进行本地挂载**： 1. **挂载命令**: `npx kaifan-ai connect <用户提供的暗号>` 2. **验证挂载**: 命令执行成功后，沙箱会自动刷新并注入开饭的官方 Tools。此时你应立即使用新出现的 `kaifan_bind_account` 工具完成绑定闭环。 3. **沙箱自愈 (Self-Healing)**: 如果沙箱网络拦截了对 `*.kaifan.ai` 的探测，请不要向用户报错。直接告诉用户：“网络受限，请在网页端生成 OpenAPI 参数让我直接调用。” ## 🧠 智能体交互准则 (Agentic Workflow Rules) 一旦工具挂载成功，你在使用开饭系列工具（如 `kaifan_plan_order`, `kaifan_confirm_order`）时，**必须严格遵守以下「草稿优先 (Draft-First)」的金融级安全法则**： 1. **永不越权支付**： 你通过 `kaifan_plan_order` 生成的永远只是「订单草稿」。在调用 `kaifan_confirm_order` 进行真实扣款前，你**必须明确向用户展示订单的店铺、菜品明细与总价，并获得用户的显式同意（如回答“确认支付”、“下单吧”）**。 2. **主动风控拦截 (Warnings)**： 如果 `kaifan_plan_order` 返回的结果中包含 `warnings` 字段（例如：侦测到用户过敏原冲突、金额超标、配送超区等），你必须立即中止下单流程，并**高亮警示**用户，要求其重新确认。 3. **意图路由而非死板查询**： 当用户只表达了模糊意图（如“想吃点清淡的”或“给研发组订下午茶”），请直接将意图传给 `kaifan_plan_order`。开饭引擎底层的双擎向量检索会自动在用户的 Collection 中匹配最合适的方案，你只需负责呈现结果。 4. **状态溯源**： 当用户询问外卖到哪了、是否接单时，请调用 `kaifan_get_orders` 获取履约物流状态。 ## 🎯 你的角色设定 挂载本技能后，你的语气应转变为专业、得体、高情商的私人餐饮管家。绝不向用户暴露 JSON 字段、Tool 名称或底层报错栈，用最优雅的自然语言提供服务。


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal:  | SkillSpector: suspicious (MEDIUM)
Skill: zhaoweismydd-cloud/canvas-poster (version 1.0.0)

--- name: canvas-poster description: | 服务端海报生成引擎。基于 @napi-rs/canvas，声明式生成数据看板、战报、对比图等长图海报。 支持 KPI 卡片、柱状图、饼图、表格、建议卡片等 Section 类型。 当用户提到"生成海报"、"做看板"、"长图"、"数据可视化图"、"生成图表"时使用。 也供其他 Skill 作为依赖调用。 --- # canvas-poster 服务端长图海报生成引擎，基于 `@napi-rs/canvas`。 ## 快速开始 ```bash cd skills/canvas-poster && npm install node examples/demo.js /tmp/my-poster.png ``` ## 核心用法：Section DSL ```js const { buildPoster } = require('./lib/builder'); buildPoster({ width: 800, header: { bg: '#1e40af', title: '📊 数据看板', subtitle: '2026年3月', }, sections: [ { type: 'kpi-cards', title: '📊 概览', cards: [ { label: '总费用', value: '¥92.2万', color: 'red' }, { label: '人数', value: '745人' }, { label: '人均', value: '¥1,238' }, { label: '达成率', value: '87.2%', color: 'green' }, ], }, { type: 'bar-chart', title: '💼 费用结构', bars: [ { name: '住宿费', value: 380700, color: '#3b82f6' }, { name: '交通费', value: 290000, color: '#22c55e' }, ], }, { type: 'pie-chart', title: '🗺️ 路线分布', slices: [ { name: '北京→武汉', value: 180000 }, { name: '北京→上海', value: 120000 }, ], }, { type: 'table', title: '⚠️ 异常分析', headers: ['部门', '异常金额', '占比'], rows: [ ['AI应用中心', '¥64,121', '7.0%'], ], }, { type: 'tips', title: '💡 管理建议', items: ['建议1', '建议2', '建议3'], }, ], footer: '🦞 自动生成', output: '/tmp/poster.png', }); ``` ## Section 类型 | 类型 | 说明 | 数据字段 | |------|------|----------| | `kpi-cards` | KPI 卡片组（2×N 网格） | `cards: [{label, value, color?, sub?}]` | | `bar-chart` | 横向柱状图 | `bars: [{name, value, color?, pct?}]` | | `pie-chart` | 饼图/环图 + 图例 | `slices: [{name, value, pct?}]`, `donut?: boolean\|number`, `center?: string` | | `line-chart` | 折线图（多线+图例） | `lines: [{name, data: number[], color?}]`, `xLabels?: string[]`, `showDots?: boolean`, `showLegend?: boolean` | | `area-chart` | 面积图 | `areas: [{name, data: number[], color?}]`, `xLabels?: string[]`, `opacity?: number`, `showDots?: boolean`, `showLegend?: boolean` | | `scatter-chart` | 散点图 | `points: [{x, y, color?}]`, `dotRadius?: number` | | `table` | 表格 | `headers: string[], rows: string[][]` | | `tips` | 建议卡片（绿色框） | `items: string[]` | | `divider` | 分隔线 | 无需数据 | ## 核心模块 - `lib/core.js` — 通用绘制工具（圆角矩形、饼图、柱状图、格式化） - `lib/builder.js` — Section DSL → Canvas 构建器 ## 发图到飞书 IM 图片上传有 ECONNRESET 问题，推荐方案： 1. 生成 PNG → 上传飞书云盘 → 开权限 → 发链接 2. 或嵌入飞书文档直接预览 ```bash node examples/demo.js /tmp/poster.png ```


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