OpenClaw/clawhub-security-signals huggingface dataset:
Skill: kadinxu/hk-stock-short-selling (version 1.0.0)

--- name: hk-stock-short-selling name_zh: 港股卖空数据 description: Get Hong Kong stock short selling data (daily and historical) from HKEX and ETNet. 免费获取港股每日和历史卖空数据。 description_zh: 获取港股每日卖空数据和历史卖空数据，数据来自港交所和ETNet。 --- # 港股卖空数据 HK Stock Short Selling 获取港股每日卖空数据，数据来自港交所官网 + ETNet（免费公开）。 ## 功能 Features 1. **当天卖空数据** - 获取指定股票的当日卖空数据（港交所） 2. **历史数据查询** - 获取个股历史卖空数据（ETNet，可查3个月） 3. **排行榜** - 获取卖空金额/股数排行榜 4. **持仓监控** - 监控持仓股票的卖空情况 ## 数据源 Data Source - **当天数据**: 港交所官网 (https://www.hkex.com.hk/chi/stat/smstat/) - **历史数据**: ETNet (https://www.etnet.com.hk/) ## 安装 Installation ```bash pip install requests pandas beautifulsoup4 ``` ## 使用方法 Usage ### 命令行 ```bash # 获取单只股票当天卖空数据 python3 hk_short_selling.py 2513 # 获取多只股票 python3 hk_short_selling.py 2513 100 700 # 获取当天全部数据 python3 hk_short_selling.py --all # 获取排行榜 python3 hk_short_selling.py --top 20 ``` ### 获取历史数据 ```python from hk_short_selling import ETNetHistoricalScraper scraper = ETNetHistoricalScraper() # 获取个股历史卖空数据 # 参数: 股票代码(去掉前导0), 获取页数 df = scraper.get_stock_short_selling_history('2513', pages=5) # 返回字段: # - date: 交易日期 # - short_volume: 卖空股数 # - short_amount: 卖空金额 (港元) # - short_pct: 卖空占成交比例 (%) # - turnover: 股票成交金额 # - avg_5d: 5日平均卖空金额 # - total_short_value: 当日全市场卖空总额 # - pct_of_total: 该股占全市场卖空比例 ``` ## 数据字段 Fields | 字段 | 说明 | |------|------| | stock_code | 股票代码 (5位) | | stock_name | 股票名称 | | short_volume | 卖空股数 | | short_amount | 卖空金额 (港元) | | short_pct | 卖空占成交比例 (%) | | market | 主板/创业板 | | date | 数据日期 | ## 示例 Examples ```python from hk_short_selling import HKShortSeller, ETNetHistoricalScraper # 获取当天数据 seller = HKShortSeller() df = seller.get_today_data(stock_codes=['2513', '100', '700']) print(df) # 获取历史数据 scraper = ETNetHistoricalScraper() df_hist = scraper.get_stock_short_selling_history('700', pages=3) print(df_hist) # 获取排行榜 top10 = seller.get_top(n=10, by='amount') print(top10) ``` ## 注意事项 Notes 1. 当天数据每日更新，通常在收市后晚上可获取 2. 只有当日有卖空交易的股票才会出现 3. 历史数据通过ETNet获取，约3个月历史


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: xiaocaijic/ecommerce-voice-cs (version 1.0.1)

--- name: ecommerce-voice-cs description: 电商 AI 语音技能。用于在 OpenClaw 或类似技能宿主中，按不同触发词独立启用两套互不干扰的能力：(1) 售后客服模式，将售后文本咨询按预设退款规则生成客服回复并输出 TTS 音频；(2) 电话推销模式，按产品名称、功能、优势和优惠范围生成推销话术并输出 TTS 音频。适用于需要模式切换、配置确认、音色选择和语音落盘的场景。 --- # Ecommerce Voice CS 实现一个最小可集成的电商售后语音客服 skill。 ## Trigger 识别触发词： - `我需要你现在当一个客服机器人` - `我需要你现在当一个推销员` 这两个模式必须完全独立运行，不能共享会话状态、配置或业务逻辑。用户触发哪个模式，就只进入哪个模式。 ## 售后模式 收到售后触发词后，不要立刻进入客服模式。先收集并确认这些配置： - `api_key`（可选；若未设置环境变量 `SENSEAUDIO_API_KEY` 时再提供） - `refund_policy` - `unboxing_allowed` - `shipping_fee_by` - `audio_output_path` - `voice_id`（可选，默认 `child_0001_b`） 配置收集完整后，先给用户一份确认摘要。只有用户明确回复“确认进入”，才正式进入售后模式。 进入售后模式后，每次处理客户消息时都必须： 1. 先生成文本客服回复 2. 再生成 TTS 音频文件 3. 在文本结尾附上“`TTS 已生成成功，文件已保存到：<path>`” ## 电话推销模式 收到推销触发词后，不要立刻进入推销模式。先收集并确认这些配置： - `api_key`（可选；若未设置环境变量 `SENSEAUDIO_API_KEY` 时再提供） - `audio_output_path` - `product_name` - `product_features` - `product_advantages` - `discount_range` - `voice_id`（可选，默认 `child_0001_b`） 配置收集完整后，先给用户一份确认摘要。只有用户明确回复“开始”或确认进入，才正式进入电话推销模式。 进入电话推销模式后，每次处理客户消息时都必须： 1. 先生成电话推销文本话术 2. 再生成 TTS 音频文件 3. 在文本结尾附上“`TTS 已生成成功，文件已保存到：<path>`” ## Runtime Inputs 调用方应提供这些字段： - `session_id`: 会话标识。多轮配置和客服模式都依赖同一个 `session_id` - `message`: 用户输入文本 - `api_key`: SenseAudio API Key，可选；优先通过环境变量 `SENSEAUDIO_API_KEY` 提供，未设置时再由调用方传入 - `voice_id`: 已确认可用的 SenseAudio voice_id - `refund_policy`: 退款政策文本 - `unboxing_allowed`: 是否支持拆封退货 - `shipping_fee_by`: 运费承担方 - `audio_output_path`: 音频输出目录 - `product_name`: 电话推销产品名称 - `product_features`: 电话推销产品功能 - `product_advantages`: 电话推销产品优势 - `discount_range`: 电话推销可优惠范围 - `audio_format`: 可选，默认 `.mp3` ## Playback Protocol 当 skill 成功生成音频时，返回结果除 `audio_file` 外，还会带一个 `playback` 字段，供宿主直接播放： ```json { "playback": { "action": "play_audio", "auto_play": true, "source_type": "local_file", "path": "tts_output\\cs_reply_20260315_210818.mp3", "format": "mp3", "mime_type": "audio/mpeg", "retain_file": true } } ``` 宿主约定： - 当 `playback` 不为 `null` 且 `playback.action == "play_audio"` 时，立即播放 `playback.path` - 播放完成后不要删除文件，因为 `retain_file` 固定为 `true` - 如果宿主不支持自动播放，至少保留 `audio_file` 和 `playback.path` 供后续手动播放 ## Confirmed Voice IDs 只使用这 3 个已确认可用的 voice_id： - `child_0001_b` - `male_0004_a` - `male_0018_a` 如果调用方未指定 `voice_id`，默认使用 `child_0001_b`。 ## Files - `helper.py`: 对外调用入口，包含售后模式和电话推销模式两套独立状态机 - `src/ecommerce_voice_cs/`: 底层实现，包括状态管理、规则引擎、SenseAudio TTS 适配层 ## Notes - 当前仅接入公开可验证的 SenseAudio TTS 接口 - 音色克隆上传接口未公开时，不实现 `upload_sample` 真正上传；直接使用现有 `voice_id` - TTS 接口文档：`https://senseaudio.cn/docs/voice_api`


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (HIGH)
Skill: nansen-devops/nansen-polymarket-trader-profile (version 0.1.0)

--- name: nansen-polymarket-trader-profile description: "What is a Polymarket trader betting on? Trades by address, PnL breakdown, and market context. Use when analysing a specific Polymarket wallet." metadata: openclaw: requires: env: - NANSEN_API_KEY bins: - nansen primaryEnv: NANSEN_API_KEY install: - kind: node package: nansen-cli bins: [nansen] allowed-tools: Bash(nansen:*) --- # Polymarket Wallet Activity **Answers:** "What is this Polymarket trader betting on? Are they profitable?" **Finding an active trader address:** Source from `trades-by-market` (guarantees trade history) rather than `top-holders` (position holders may have no recorded trades): ```bash # Step 1: find active traders from a market nansen research pm trades-by-market --market-id <market_id> --limit 5 # → seller/buyer addresses with confirmed trade history — use one as ADDR below ``` ```bash ADDR=<polymarket_address> nansen research pm trades-by-address --address $ADDR --limit 20 # → timestamp, market_question, event_title, taker_action, side, size, price, usdc_value nansen research pm pnl-by-address --address $ADDR --limit 20 # → question, event_title, side_held, net_buy_cost_usd, unrealized_value_usd, total_pnl_usd, market_resolved ``` Note: addresses sourced from `top-holders` may return empty trade history — use `trades-by-market` to find addresses with confirmed activity. Look at PnL across resolved vs unresolved markets to gauge trader skill. Large positions in trending categories signal conviction.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: dagangtj/guanjia-github-ai-trends (version 1.0.0)

--- name: github-ai-trends description: Generate GitHub AI trending project reports as formatted text leaderboards. Fetches top-starred AI/ML/LLM repos by daily, weekly, or monthly period and renders a styled leaderboard. Use when the user asks for AI project trends, GitHub trending, AI leaderboard, or wants to see popular AI repos. --- # GitHub AI Trends Generate formatted leaderboard of trending AI projects on GitHub, output directly to chat. ## Usage Run the script and paste its stdout as the reply: ```bash python3 scripts/fetch_trends.py --period weekly --limit 20 ``` ## Parameters - `--period`: `daily` | `weekly` | `monthly` (default: weekly) - `--limit`: Number of repos (default: 20) - `--token`: GitHub token for higher rate limits (or set `GITHUB_TOKEN` env) - `--json`: Output raw JSON instead of formatted text ## How It Works 1. Searches GitHub API for AI-related repos (by keywords + topics) pushed within the period 2. Deduplicates and sorts by star count 3. Outputs a formatted markdown leaderboard ready for chat display ## Notes - Without a GitHub token, API rate limit is 10 requests/minute. With [REDACTED_SECRET] - No pip dependencies, uses only stdlib. - Output is markdown formatted for direct chat display.


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

--- name: agentref description: Use AgentRef's REST API from OpenClaw or any HTTP runtime for merchant onboarding, programs, affiliates, conversions, flags, and payouts; authenticate with AGENTREF_API_KEY, start with GET /api/v1/me, prefer safe reads, and confirm state-changing writes before sending them. homepage: https://github.com/LukasvanUden/agentref metadata: {"openclaw":{"homepage":"https://github.com/LukasvanUden/agentref","requires":{"env":["AGENTREF_API_KEY"]},"primaryEnv":"AGENTREF_API_KEY"}} --- # AgentRef REST Use this skill when the user wants to inspect or operate AgentRef over HTTP instead of MCP, especially from OpenClaw or other REST-first runtimes. ## Connection contract - Base URL: `https://www.agentref.co/api/v1` - Every request needs `Authorization: Bearer <AGENTREF_API_KEY>` - Never print, log, echo, or persist the raw API key in chat output, files, traces, or examples - Success responses use `{ data, meta }` - Error responses use `{ error, meta }` - When a request fails, surface the failing endpoint plus `meta.requestId` ## First request 1. Call `GET /api/v1/me` 2. Read `data.key.ownerType`, `data.key.keyType`, `data.key.scopes`, and the returned owner/program context 3. If `ownerType` is `affiliate`, do not use the merchant-admin endpoints below; say so clearly and only pivot to affiliate `/api/v1/me/*` reads if the user explicitly wants affiliate self-service ## Credential guidance - Prefer a dedicated AgentRef key for this skill instead of reusing a broad personal key - Default to the smallest scope set that fits the task - For inspection-only use, prefer read-only merchant scopes - Only use write-capable scopes such as program changes, affiliate moderation, flag resolution, or payouts when the user explicitly needs those actions - If the user only needs affiliate self-service, use an affiliate key instead of a merchant key ## Operating rules - Safe reads first: inspect current state with `GET` before proposing or sending writes - Never invent endpoints, fields, or state transitions; use only the curated references in this bundle - Ask for clear user confirmation before any action that creates, updates, archives, approves, blocks, resolves, or pays out - When a documented write supports it, send an `Idempotency-Key` header - Follow pagination from `meta.nextCursor` or `page` and `pageSize`; do not guess hidden pages - Reuse IDs already returned by prior reads instead of searching again ## Reference map - Core REST surface: [references/endpoints.md](references/endpoints.md) - Intent-oriented call sequences: [references/workflows.md](references/workflows.md) Load only the section needed for the current task. Keep the active prompt lean.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: masteralanlab/image-translate-cli (version 0.0.1)

--- name: image-translate-cli description: Placeholder skill reserved for an upcoming open CLI + provider protocol for batch product-image translation workflows. --- # image-translate-cli This is a placeholder skill reserved for an upcoming open-source CLI + skill workflow for batch image translation. Planned direction: - batch translation of product marketing images - provider-agnostic remote API integration - OpenClaw skill wrapper for ecommerce teams - support for custom translation websites/providers Current state: - name reservation / placeholder only - not intended for production use yet


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: tonyjb/clawguard-antimalware (version 1.0.4)

--- name: clawguard version: 1.0.6 description: Intrusion Detection System & Dynamic Honeypot. Protects your workspace from malicious skills. cron: "*/10 * * * *" permissions: - local_read - local_write - shell - notify policies: require_approval: - shell --- # ClawGuard Agent Instructions You are ClawGuard, a local security monitoring agent. Your primary objective is to detect unauthorized credential scraping and malicious skill payloads. ## 1. Safe Payload Generation (Honeypot) - Check if `~/.openclaw/workspace/routing_config_backup.json` exists. - If it does not exist, use `local_write` to create it. Populate it with dummy internal system tokens and generic local API webhook endpoints. Do not use cryptocurrency keywords, wallets, or seed phrases. ## 2. Static Auditing (Read-Only) - On your heartbeat schedule, use `local_read` to scan newly added directories in `~/.openclaw/skills/`. - Flag any `SKILL.md` files that contain obfuscated `base64` strings, password-protected `.zip` extractions, or unrecognized `curl | bash` pipelines. ## 3. Incident Response & Approval Gate - **MANDATORY POLICY:** You are strictly prohibited from autonomously executing shell commands. All shell operations are protected by OpenClaw's `require_approval` policy. - If unauthorized access to the honeypot is detected, or a malicious file is flagged, immediately pause execution. - Use `notify` to send the following alert: *"🚨 ClawGuard Alert: Suspicious activity detected in [Skill Name/Path]. Reply 'APPROVE' to quarantine this threat."* - Await user input. You may only execute the local `kill` or `mv` shell commands to neutralize the threat AFTER the user explicitly confirms the action. ## 4. Operational Boundaries - Never modify or target the core `openclaw` daemon or any files outside of the `~/.openclaw/` directory.

path: Support ClawGuard Development.txt
content: # Support ClawGuard Development 🛡️

ClawGuard is completely free, open-source, and runs locally with zero telemetry. 

Writing active defense systems, analyzing the latest ClawHavoc payloads, and maintaining up-to-date honeypots takes a significant amount of time. If this tool intercepted an attack or saved your engine's API keys, please consider supporting the ongoing development. 

Your support goes directly toward funding test-environments and threat research to keep the OpenClaw ecosystem safe.

* **Support me:** https://tonynomad.gumroad.com/l/inky

Stay safe out there.

Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: qingzhou-joshua/create-interesting-skills (version 1.0.0)

--- name: create-interesting-skills description: 创建欢愉的skills——从网络上搜集网友的奇思妙想和脑洞创意，自动转换成可用的OpenClaw Skill并部署。当用户说"随机整活"、"给我整个新skill"、"随机生成一个skill"、"有什么有趣的skill创意"、"帮我找个好玩的skill"、"整点新花样"、"skill工厂"、"随机搞个新功能"时触发。也适合用户想要探索新奇AI用法、寻找灵感、或者就是想整活的场景。 --- # 整活 Skill 工厂 🏭 你是一个创意猎人兼 Skill 工程师。你的使命是：从互联网上挖掘网友的脑洞创意，判断哪些能落地，然后把它做成真正能用的 OpenClaw Skill。 ## 工作流程 ### 第一步：挖掘创意 根据用户的需求（随机 or 指定主题），搜索以下来源寻找创意： **搜索策略（优先级顺序）：** 1. **国内平台**（用 `搜狗` skill 或 `web_search`） - V2EX：搜索 `"要是有个工具" OR "有没有AI" OR "希望有个程序"` - 知乎：搜索 `"奇特的AI用法" OR "有趣的自动化" OR "希望AI能"` - 小红书/微博：搜索 `"要是AI能帮我" OR "整活工具"` 2. **国际平台**（用 `EdgeBrowser` skill 或 `web_fetch`） - Reddit r/ChatGPT、r/artificial、r/MachineLearning - Hacker News（搜 `"I wish there was a tool"` `"someone should build"`） - Twitter/X（搜 `"wish AI could" OR "someone make a bot that"`） **搜索时重点关注这类表达：** - "要是有个工具能…就好了" - "有没有人做过…" - "我希望 AI 能帮我…" - "I wish there was a bot/tool/script that..." - "someone should make an AI that..." **每次搜索至少找 5-8 个候选创意**，然后从中挑选。 --- ### 第二步：可行性评估 对每个候选创意打分，只有**同时满足**以下条件才能入选： ✅ **技术可行** — 能用现有工具（web_search、exec、message 等）实现 ✅ **有趣/有用** — 不是已经很常见的功能，要有新鲜感 ✅ **安全合规** — 不涉及隐私侵犯、违法内容、恶意操作 ✅ **范围合理** — 不需要外部 API 密钥或特殊权限就能基本运行 **自动排除：** - 需要硬件设备的（"帮我控制智能家居"） - 需要付费 API 且无免费替代的 - 内容违规或隐私敏感的 - 纯粹是已有功能的简单包装 --- ### 第三步：展示候选并让用户选择 从通过评估的创意中选出 **3-5 个**，以活泼的方式展示： ``` 🎲 今日整活候选菜单： 1. 🎤 [创意名称] 💡 来源：[平台/帖子摘要] 🔧 能做什么：[一句话说明] ⭐ 有趣指数：X/10 2. ... 哪个最对味？或者说"全做"我就按顺序来喵～ ``` 如果用户指定了主题（比如"摸鱼相关"），就围绕主题展示候选。 --- ### 第四步：生成 Skill 用户选定后，按以下规范生成 SKILL.md： #### Skill 文件结构 ``` /projects/.openclaw/skills/<skill-name>/ └── SKILL.md ``` #### SKILL.md 模板 ```markdown --- name: <skill-name> description: <触发描述，包含触发词和使用场景，要稍微"pushy"一点，让模型知道该什么时候用> --- # <Skill 名称> <emoji> ## 背景/来源 <这个 skill 的创意来源，保留有趣的网友原话或灵感> ## 功能说明 <这个 skill 做什么> ## 使用方式 <用户怎么触发，需要提供什么输入> ## 执行步骤 <详细的步骤说明，告诉 AI 怎么一步步完成任务> ## 输出格式 <期望的输出格式> ## 注意事项 <边界情况、限制、特殊处理> ``` #### 写 Skill 的原则 - **保留创意的灵魂**：把网友的脑洞原汁原味地转化，不要变成一个无聊的功能描述 - **说清楚为什么**：每个步骤都解释一下为什么要这么做，让 AI 理解意图而不是死板执行 - **给足够的例子**：如果创意比较抽象，用 1-2 个例子说明输入输出 - **保持轻松的语气**：整活 skill 本身就该有趣，写法也要活泼一点 --- ### 第五步：部署和演示 1. 将 SKILL.md 写入 `/projects/.openclaw/skills/<skill-name>/SKILL.md` 2. 向用户确认 Skill 已创建，说明触发词 3. **马上演示一次**：直接用这个新 skill 跑一个示例，让用户看到效果 4. 询问用户是否满意，是否需要调整 --- ## 特殊模式 ### 🎲 完全随机模式 > 用户说"随机给我整一个" 搜索时不限主题，从最近的奇特需求帖子里找，优先选**最出乎意料但又有点道理**的创意。 ### 🎯 主题定向模式 > 用户说"整个跟[主题]有关的" 围绕指定主题搜索，但不要太字面量地理解，可以找主题的有趣切入点。 ### 🔄 批量模式 > 用户说"全做" / "都给我整一遍" 按候选列表顺序逐个生成，每个完成后简单通知，全部完成后给一个汇总。 ### 🔁 再来一个模式 > 用户说"再来一个" / "换一个" 重新搜索找新创意，不重复之前已经展示过的。 --- ## 创意质量标准 好的整活 skill 长这样： - 让人看了第一反应是"哈这个有意思" - 实际能用，不只是噱头 - 有一点点无厘头或者出人意料 - 解决了一个真实但没人认真对待的"小需求" 坏的整活 skill 长这样： - 跟已有功能完全重复 - 听起来很酷但实际上做不了什么 - 太危险或太无聊，两个极端都不行


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: hellohushuai/get-resource-element (version 1.0.0)

--- name: get-resource-element description: 根据输入的产品名称，查询对应产品的硬件资源评估要点是否满足。Use when: (1) 需要验证产品硬件资源评估要点是否完整，(2) 对比已提供的评估要点与标准要求的差异，(3) 查询产品对应的标准单产品硬件资源测算文件中的评估要点。支持产品线：CDSS 系统、VTE 系统、病历质控系统、单病种系统、智医助理 - 基层人工智能辅助诊疗系统。 --- # Get Resource Element - 评估要点对比技能 本技能用于根据产品名称查询对应的标准评估要点，并对比已提供的评估要点是否完整。 ## 核心功能 1. **解析需求** - 从输入中提取产品名称和已提供的评估要点 2. **查询知识库** - 根据产品名称定位 `kb/<产品目录>/<产品>-标准单产品硬件资源测算.md` 文件 3. **提取评估要点** - 从文件中提取"服务器资源评估输入项"部分的所有要点 4. **对比分析** - 将已提供的评估要点与所需要点进行智能匹配对比 5. **返回结果** - 满足则返回 `ok`，不满足则返回缺少的评估要点列表 ## 使用流程 ### 步骤 1: 解析输入 从用户输入中提取： - **产品名称**: 如"病历质控系统"、"CDSS 系统"等 - **已提供的评估要点**: 用户已经提供的评估要点列表 示例输入： ``` 产品：病历质控系统 已提供评估要点： - 年门诊人次 10 万 - 年出院人次 5000 ``` ### 步骤 2: 查询产品文件 根据产品名称在知识库中查找对应文件： - 遍历 `kb/` 目录下的所有子目录 - 查找包含产品名称的目录 - 定位该目录下的 `*标准单产品硬件资源测算.md` 文件 文件命名规则：`<产品简称>-标准单产品硬件资源测算.md` ### 步骤 3: 提取评估要点 从文件中提取"服务器资源评估输入项"章节的所有编号列表项。 示例（病历质控系统）： 1. 年门诊人次 2. 年出院人次 3. 医护人员总数 ### 步骤 4: 对比评估要点 使用 `scripts/compare_elements.py` 脚本进行对比： - 标准化处理（去除空格、统一大小写） - 支持部分匹配（如"年门诊人次"匹配"年门诊人次 10 万"） - 识别满足和缺失的要点 ### 步骤 5: 返回结果 **满足时**: ``` ok ``` **不满足时**: ``` 缺少的评估要点：医护人员总数 ``` ## 脚本使用 ### compare_elements.py **位置**: `scripts/compare_elements.py` **输入** (JSON 格式): ```json { "product": "病历质控系统", "provided_elements": ["年门诊人次 10 万", "年出院人次 5000"], "kb_dir": "/Users/hushuai/.openclaw/workspace-ClinicalManager/kb" } ``` **输出** (JSON 格式): 满足时： ```json { "status": "ok", "message": "ok", "details": { "satisfied": ["年门诊人次", "年出院人次"], "missing": [], "is_complete": true } } ``` 不满足时： ```json { "status": "missing", "message": "缺少的评估要点：医护人员总数", "details": { "satisfied": ["年门诊人次", "年出院人次"], "missing": ["医护人员总数"], "is_complete": false } } ``` **执行方式**: ```bash python3 scripts/compare_elements.py '<input_json>' ``` ## 支持的产品线 - CDSS 系统 - VTE 系统 - 病历质控系统 - 单病种系统 - 智医助理 - 基层人工智能辅助诊疗系统 ## 示例 ### 示例 1: 评估要点完整 **用户输入**: ``` 帮我检查一下病历质控系统的评估要点是否完整： - 年门诊人次：10 万 - 年出院人次：5000 - 医护人员总数：200 人 ``` **处理流程**: 1. 解析出产品：病历质控系统 2. 解析出已提供要点：年门诊人次、年出院人次、医护人员总数 3. 查询文件：`kb/病历质控系统/病历质控 - 标准单产品硬件资源测算.md` 4. 提取所需要点：年门诊人次、年出院人次、医护人员总数 5. 对比结果：全部满足 **输出**: ``` ok ``` ### 示例 2: 评估要点缺失 **用户输入**: ``` 检查 CDSS 系统的评估要点，目前有： - 年门诊人次 15 万 ``` **处理流程**: 1. 解析出产品：CDSS 系统 2. 解析出已提供要点：年门诊人次 3. 查询文件：`kb/CDSS 系统/CDSS-标准单产品硬件资源测算.md` 4. 提取所需要点：年门诊人次、年出院人次、医护人员总数 5. 对比结果：缺少 2 项 **输出**: ``` 缺少的评估要点：年出院人次、医护人员总数 ``` ## 注意事项 1. **产品名称匹配**: 支持模糊匹配，如"病历质控"可匹配"病历质控系统" 2. **评估要点匹配**: 支持部分匹配，如"年门诊人次"可匹配"年门诊人次 10 万" 3. **知识库路径**: 默认为 `/Users/hushuai/.openclaw/workspace-ClinicalManager/kb`，可通过 `kb_dir` 参数自定义 4. **文件格式**: 产品文件必须是 Markdown 格式，且包含"## 服务器资源评估输入项"章节


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: tobewin/china-video-gen (version 1.1.0)

--- name: china-video-gen description: 国内可用的AI视频生成技能。Create videos from text — generates script, images, voiceover, and merges into MP4. No time limit, full control. 视频生成、短视频制作。 version: 1.1.0 license: MIT-0 metadata: {"openclaw": {"emoji": "🎬", "requires": {"bins": ["python3"], "env": ["SILICONFLOW_API_KEY"]}, "primaryEnv": "SILICONFLOW_API_KEY"}} --- # 国内 AI 视频生成 China Video Gen 将文字描述转化为完整视频：自动生成分镜脚本 → 图片序列 → 配音 → 合成 MP4。 无时长限制，完全可控，国内直连，无需翻墙。 ## 触发时机 - "帮我做一个30秒的[产品]宣传视频" - "生成一个介绍[主题]的短视频" - "做一个[品牌]的广告视频" - "把这段文字做成视频" - "生成适合小红书/抖音发布的视频" --- ## Step 0：环境检查 **每次执行前必须先检查依赖，缺失则提示用户手动安装。** ### 检查 ffmpeg ``` 检查 ffmpeg 是否已安装： - macOS: brew install ffmpeg - Ubuntu: sudo apt install ffmpeg - Windows: 从 https://ffmpeg.org/download.html 下载 ``` ### 检查依赖 Skills ``` 需要安装以下 skills： - china-image-gen：文生图技能 - china-tts：文字转语音技能 安装方法：clawhub install china-image-gen ``` ### 检查 API Key ``` 需要配置 SILICONFLOW_API_KEY： 1. 访问 cloud.siliconflow.cn 注册 2. 进入「API密钥」页面创建 Key 3. export SILICONFLOW_API_KEY='sk-xxxxxxxx' ``` --- ## Step 1：理解用户需求 从用户描述中提取关键信息： ``` 视频主题：产品宣传 / 知识科普 / 品牌故事 / 教程演示 / 其他 目标时长：15秒 / 30秒 / 60秒 / 更长（无限制） 画面风格：写实 / 插画 / 科技感 / 温暖 / 商务 音色选择：见 china-tts 音色列表 目标平台：小红书(1:1或3:4) / 抖音(9:16) / B站/YouTube(16:9) / 通用(16:9) 语言：中文 / 英文 / 中英混合 ``` --- ## Step 2：生成分镜脚本 根据用户需求，设计分镜脚本。每个分镜包含： ``` 分镜N： 时长：X 秒 画面描述（英文 prompt，用于 FLUX 文生图） 解说词（中文，用于 TTS 配音） 运镜效果：静止 / Ken Burns 缩放 / 平移 转场效果：淡入淡出 / 擦除 / 无 ``` ### 时长分配原则 ``` 总时长 30秒，建议分镜数量：5-8个 开场：2-3秒（Logo/主题/吸引眼球） 主体：每个分镜3-5秒 结尾：2-3秒（CTA/联系方式/品牌） 总时长 60秒，建议分镜数量：10-15个 节奏：前10秒最关键，必须抓住注意力 字数与时长对照（TTS朗读速度约4字/秒）： 3秒 ≈ 12字 5秒 ≈ 20字 10秒 ≈ 40字 ``` --- ## Step 3：生成图片序列 调用 china-image-gen skill，为每个分镜生成对应图片。 ### 分辨率与比例 ``` 小红书(1:1)：1024x1024 小红书(3:4)：768x1024 抖音/竖版(9:16)：720x1280 B站/横版(16:9)：1280x720 ``` ### 图片生成 对每个分镜执行： 1. 使用 china-image-gen 生成图片 2. 保存到工作区 frames 目录 3. 图片 URL 有效期1小时，必须立即下载 --- ## Step 4：生成配音音频 调用 china-tts skill，将所有解说词合并为一个音频文件。 1. 合并所有分镜解说词 2. 调用 TTS 生成 MP3 3. 保存到工作区 audio 目录 --- ## Step 5：合成视频 使用 ffmpeg 将图片序列和音频合成为 MP4 视频。 ### 方案A：简单合成（静止图片+音频） - 使用 ffmpeg concat 功能 - 每张图片显示指定时长 - 合并音频 ### 方案B：Ken Burns 效果（推荐） - 为每张图片添加缓慢缩放效果 - 模拟镜头推进 - 更有质感 ### 方案C：淡入淡出转场 - 两张图片之间添加淡入淡出 - 使用 xfade filter --- ## Step 6：输出结果 ``` 视频生成完成 ━━━━━━━━━━━━━━━━━━━━ 视频文件：{工作区}/output.mp4 总时长：约 XX 秒 分镜数：X 张 画面比例：16:9（1280x720） 文件结构： video_xxx/ ├── output.mp4 ← 最终视频 ├── frames/ ← 各分镜图片 ├── audio/ │ └── voiceover.mp3 ← 配音文件 └── concat.txt ← 合成配置 ``` --- ## 视频类型预设 ### 产品宣传（30秒，16:9） ``` 分镜数：6个 图片模型：FLUX.1-dev（高质量） 音色：alex（沉稳男声）或 claire（温柔女声） 效果：Ken Burns 转场：淡入淡出 ``` ### 知识科普（60秒，16:9） ``` 分镜数：12个 图片模型：FLUX.1-schnell（快速） 音色：anna（沉稳女声） 效果：静止图片 转场：无 ``` ### 小红书竖版（30秒，3:4） ``` 分辨率：768x1024 分镜数：6个 图片模型：Kolors（中文理解最好） 音色：diana（欢快女声） 效果：Ken Burns ``` ### 抖音竖版（15秒，9:16） ``` 分辨率：720x1280 分镜数：4个（节奏快） 图片模型：FLUX.1-schnell 音色：bella（激情女声） 效果：Ken Burns ``` --- ## 注意事项 - 图片 URL 有效期仅1小时，生成后立即下载 - Ken Burns 效果处理较慢，每张图约需10-30秒 - 视频文件保存至 OpenClaw 工作区，长期保留 - 建议先用 FLUX.1-schnell 快速预览，满意后换 FLUX.1-dev 出高质量版 - 不要在短时间内大批量请求，避免触发 API 限速


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