OpenClaw/clawhub-security-signals huggingface dataset:
Skill: kennyzir/skill-router-pro (version 1.1.0)

--- name: skill-router-pro description: | Skill router and discovery assistant. Use when: - User says "I want to do XXX, what skill do I have" or "is there a skill for XXX" - User doesn't know which local skill to use for a task - User says "what skill should I use" or "find me a skill" - User wants to search ClawHub before building a new skill - User says "search ClawHub for XXX" or "is there a skill on ClawHub for XXX" - User asks "what skills do I have" or "show me my skill list" - User says "I don't know which skill to use" - Any trigger: "有什么 skill", "帮我找 skill", "what skill", "find me a skill", "skill for" Always check here BEFORE building a new skill. If a local or ClawHub skill exists, use it. --- # Skill Router Pro Finds existing local skills or searches ClawHub before you build anything new. ## The Problem This Solves Skills get installed but nobody remembers what's available. This is the first skill to ask before writing a new one. ## Step 1: Check Local INDEX Read `~/.openclaw/skills/INDEX.md` and search by keyword. If a matching skill is found: - Tell the user the skill name and what it does - Point them to the install location ## Step 2: Search ClawHub If nothing local matches, run: ``` clawhub search "<task keywords>" ``` Present results with: - Skill name and description - Install command: `clawhub install <name>` ## Step 3: Nothing Found If neither local nor ClawHub has a match, say: "No existing skill found for this task. Building a new one is a good option." Do NOT invent or assume a skill exists. ## Keeping INDEX.md Updated After installing any new skill, rescan and update the index: ``` find ~/.openclaw/skills ~/mind_claw ~/.codex/skills ~/.cursor/skills-cursor -name "SKILL.md" 2>/dev/null ``` Extract name and description from each SKILL.md frontmatter, then write to `~/.openclaw/skills/INDEX.md` with this format: ``` # Skill Index ## [Category Name] | Name | Description | Path | |------|-------------|------| | skill-name | What it does | /path/to/skill | ``` ## Decision Flow User asks "I want to do XXX, what skill do I have?" 1. Read INDEX.md 2. Search for "XXX" keyword 3. If found locally: use it 4. If not found: clawhub search "XXX" 5. If on ClawHub: offer install command 6. If nowhere: suggest building one ## Never Do This - Do not assume a skill exists without checking - Do not suggest building when ClawHub has one - Do not leave INDEX.md stale after new installs - Do not guess — show the index and let the user verify ## Quick Reference | Situation | Action | |-----------|--------| | "what skills do I have" | Show full INDEX.md | | "I want to do XXX, what skill" | Search INDEX, then ClawHub | | "search ClawHub for XXX" | Run clawhub search | | "which skill should I use" | Read INDEX, show matches | | "build a new skill" | First run skill-router to check if one exists |


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

--- name: costlens description: Calculate OpenClaw usage cost from offline event logs, apply budget thresholds, and export operator-facing reports. homepage: https://github.com/mike007jd/openclaw-skills/tree/main/costlens metadata: {"openclaw":{"emoji":"💸","requires":{"bins":["node"]}}} --- # CostLens Turn JSON usage events into cost summaries, budget checks, and offline reports. ## When to use - You already have token usage events and need a quick spend summary. - You want a simple budget gate in local automation or CI. - You need an exportable JSON report without relying on a hosted billing dashboard. ## Commands ```bash node {baseDir}/bin/costlens.js monitor --events ./events.json --budget 10.00 --threshold 80 node {baseDir}/bin/costlens.js budget check --events ./events.json --budget 5.00 --format json node {baseDir}/bin/costlens.js report --events ./events.json --out ./reports/cost-report.json ``` ## Built-in default rates | Model | Input/1k | Output/1k | | --- | --- | --- | | gpt-4.1 | $0.01 | $0.03 | | gpt-4o-mini | $0.00015 | $0.0006 | | claude-3-5-sonnet | $0.003 | $0.015 | | default | $0.002 | $0.008 | Events can override the defaults with `inputCostPer1k` and `outputCostPer1k`. ## Event shape ```json [ { "model": "gpt-4.1", "promptTokens": 1500, "completionTokens": 800, "timestamp": "2026-02-26T10:00:00Z" } ] ``` ## Output - Total calls, total tokens, and total cost - Per-model breakdowns for calls, tokens, and cost - Per-day spend trends - Budget usage percentage and alert level (`ok`, `warning`, or `critical`) ## Boundaries - Pricing is based on built-in defaults plus per-event overrides. It is not a live pricing feed. - CostLens is optimized for offline JSON analysis, not streaming metering or invoice reconciliation.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: ljzxzxl/minimax-token-used-query (version 1.0.4)

# MiniMax Token Used Query 查询 MiniMax Coding Plan 的剩余 token 使用量及刷新时间。 ## 重要说明 **本技能通过本地浏览器自动化方式查询 Token 使用量，而非调用 API 接口。** 技术实现：使用 browser-use CLI 控制本地 Chrome 浏览器，模拟用户手动访问 MiniMax 开发者平台，自动化完成登录和页面数据提取操作。 ## 使用场景 当需要检查当前模型使用百分比时使用，确保不会因 token 耗尽而影响思考能力。 ## 使用方法 ### 快速查询 ```bash /home/allen/.openclaw/workspace/skills/minimax-token-used-query/quick.sh ``` ### 触发方式 当用户问以下问题时使用此技能： - "token 还剩多少" - "minimax 使用量" - "还有多少 token" - "查询 minimax 额度" - "token 百分比" - "MiniMax 还能用多久" ## 技能逻辑 1. **打开页面**：使用本地浏览器打开 MiniMax Coding Plan 管理页面 ``` https://platform.minimaxi.com/user-center/payment/coding-plan ``` 2. **登录检测**：检查页面是否显示登录界面 - 如果需要登录，进入登录流程 - 点击"手机验证码登录"标签 - 输入手机号（国家码默认 +86） - 勾选用户协议 - 点击"获取验证码" - 输入验证码后点击登录 3. **提取数据**：从页面 DOM 中提取以下信息： - 已使用百分比（如：13%） - 重置剩余时间（如：4小时24分钟后重置） - 可用额度（如：40 prompts / 5小时） - 时间窗口（如：00:00-05:00 UTC+8） 4. **返回结果**：返回结构化数据 ## 页面元素参考（2026-03-12 实测 V8） ### 🔑 关键发现 1. **Shadow DOM 输入框** - 必须用 `click + type` 组合 2. **协议勾选** - 使用 JavaScript 方式更可靠：`document.querySelector('#register_protocol').click()` 3. **动态 ID** - 每次页面加载元素 ID 都会变化，需要动态获取 4. **等待时间** - 减少不必要的 sleep，提高速度 ### 优化后的登录流程 1. 打开页面 2. 动态获取手机号输入框 ID 3. click 输入框 → type 手机号 4. 动态获取密码输入框 ID 5. click 输入框 → type 密码 6. 使用 JavaScript 勾选协议 7. 点击登录按钮 8. 检查登录结果 9. 保存凭据到 memory ### 登录方式 #### 方式1：密码登录（默认） - 优先使用 - 凭据保存在 memory 中 - 速度快，无需交互 #### 方式2：手机验证码登录 - 当没有保存密码时自动使用 - 需要用户输入手机号和验证码 - 登录成功后不保存密码 ### 凭据管理 - 首次使用：提示用户输入手机号（验证码登录）或手机号+密码（密码登录） - 登录成功后：自动保存到 `~/.openclaw/workspace/memory/minimax-login.txt` - 下次使用：自动从 memory 读取 - 登录失败：删除保存的凭据，提示重新输入 ## 输出格式 返回 JSON 格式： ```json { "used_percent": 13, "reset_minutes": 264, "total_prompts": 40, "total_hours": 5, "reset_time": "00:00-05:00(UTC+8)" } ``` ## 技术特点 - **本地浏览器**：依赖本地 Chrome 浏览器（需要已登录 MiniMax 账号） - **无 API 调用**：不调用任何后端 API，完全模拟用户操作 - **自动登录**：支持自动手机验证码登录 - **实时数据**：每次查询前自动刷新页面，确保数据最新 ## 依赖 - browser-use CLI - 本地 Chrome 浏览器 (profile: Default) - 已登录的 MiniMax 账号（或需要手动输入验证码） ## 注意事项 - 首次使用或登录状态失效时，需要用户配合输入手机号和验证码完成登录 - 浏览器窗口会被打开并自动操作 - 查询完成后浏览器会停留在结果页面，方便下次查询（保持登录状态）


Security scan verdicts — ClawScan: suspicious | static analysis: suspicious | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)
Skill: systiger/video-transition (version 1.0.0)

--- name: video-transition version: 1.0.0 description: | 视频转场效果工具。使用 ffmpeg xfade 滤镜实现多种转场效果，包括淡入淡出、滑动、擦除、圆形展开等。 支持批量视频片段合并，自动添加转场效果。 author: "systiger" tags: ["video", "transition", "ffmpeg", "xfade", "转场"] --- # Video Transition / 视频转场 视频转场效果工具，使用 ffmpeg xfade 滤镜实现平滑转场。 ## 支持的转场效果 | 转场类型 | 英文名 | 效果描述 | |----------|--------|----------| | 淡入淡出 | `fade` | 画面逐渐过渡 | | 左滑 | `slideleft` | 新画面从右侧滑入 | | 右滑 | `slideright` | 新画面从左侧滑入 | | 上滑 | `slideup` | 新画面从下方滑入 | | 下滑 | `slidedown` | 新画面从上方滑入 | | 圆形展开 | `circleopen` | 圆形遮罩展开 | | 左擦除 | `wipeleft` | 从右向左擦除 | | 右擦除 | `wiperight` | 从左向右擦除 | | 距离 | `distance` | 距离渐变 | | 像素化 | `pixelize` | 像素化过渡 | | 对角线 | `diagtl`/`diagtr` | 对角线擦除 | | 矩形 | `rectcrop` | 矩形裁剪 | ## 快速使用 ### 1. 合并视频带转场 ```python from video_transition import concat_with_transitions # 合并视频片段，自动添加转场 concat_with_transitions( video_paths=["clip1.mp4", "clip2.mp4", "clip3.mp4"], output_path="output.mp4", transition_duration=0.5 ) ``` ### 2. 单个转场效果 ```python from video_transition import apply_transition # 在两个视频之间应用特定转场 apply_transition( video1="intro.mp4", video2="main.mp4", output="merged.mp4", transition="fade", duration=0.5 ) ``` ### 3. 批量添加淡入淡出 ```python from video_transition import add_fade_to_clips # 为所有片段添加淡入淡出 add_fade_to_clips( input_dir="clips/", output_dir="faded/", fade_in=0.3, fade_out=0.3 ) ``` ## 参数说明 ### `concat_with_transitions()` | 参数 | 类型 | 默认值 | 说明 | |------|------|--------|------| | `video_paths` | list | - | 视频路径列表 | | `output_path` | str | - | 输出路径 | | `transition_duration` | float | 0.5 | 转场时长（秒） | | `transitions` | list | 循环使用所有 | 转场类型列表 | | `auto_fade` | bool | True | 是否自动添加淡入淡出 | ### `apply_transition()` | 参数 | 类型 | 默认值 | 说明 | |------|------|--------|------| | `video1` | str | - | 第一个视频 | | `video2` | str | - | 第二个视频 | | `output` | str | - | 输出路径 | | `transition` | str | "fade" | 转场类型 | | `duration` | float | 0.5 | 转场时长 | | `offset` | float | 自动计算 | 转场起始时间 | ## 依赖 ``` ffmpeg >= 4.0 ``` ## 技术原理 使用 ffmpeg 的 `xfade` 滤镜实现视频转场： ```bash ffmpeg -i clip1.mp4 -i clip2.mp4 \ -filter_complex "[0:v][1:v]xfade=transition=fade:duration=0.5:offset=5[outv]" \ -map "[outv]" output.mp4 ``` ## 触发词 `视频转场`、`转场效果`、`xfade`、`视频合并`、`淡入淡出` ## 文件结构 ``` video-transition/ ├── SKILL.md # 技能说明 ├── README.md # 详细文档 ├── video_transition.py # 核心模块 ├── example.py # 使用示例 └── package.json # 包信息 ``` ## License MIT ## Author systiger


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: crazyguitar/pyc (version 1.0.0)

--- name: py description: Comprehensive Python programming reference covering syntax, concurrency, networking, databases, ML/LLM development, and HPC. Use for: Python questions, debugging, performance optimization, async patterns, library examples, code review, best practices, MLOps workflows, distributed computing, security implementations, and any Python development tasks. --- # Python Cheat Sheets (/py) Help users write functional, correct Python code and answer Python questions by fetching proven patterns and examples from pythonsheets.com. ## How It Works When a user asks a Python question or wants to write a Python script: 1. Look up the relevant topic(s) in [Structure](references/structure.md) to find the matching URL(s) 2. **Always fetch** the URL(s) using WebFetch to get real examples and patterns from the site 3. Use the fetched content to: - **Write code**: Apply the patterns to produce functional, correct code that solves the user's task - **Answer questions**: Provide thorough explanations backed by the examples and information from the site 4. Follow the [Guidelines](references/guidelines.md) for code quality ## Key Principle **Functionality first, cleanliness second.** The code must work correctly and handle the task properly. Fetching from pythonsheets.com ensures solutions use battle-tested patterns rather than guessing. The site contains rich examples covering edge cases, common pitfalls, and practical usage that go beyond basic documentation. ## Coverage Areas **Core:** Syntax, typing, OOP, functions, data structures, sets, heap, regex, unicode **System:** File I/O, datetime, OS interfaces **Concurrency:** Threading, multiprocessing, asyncio **Network:** Sockets, SSL/TLS, SSH, async I/O, packet sniffing **Database:** SQLAlchemy ORM, queries, transactions **Security:** Cryptography, TLS, vulnerabilities **Extensions:** C/C++ integration, pybind11, Cython **ML/LLM:** PyTorch, Megatron, distributed training, inference, serving, benchmarking **HPC:** Slurm, cluster computing, job scheduling, EFA monitoring, NCCL **Appendix:** Walrus operator, GDB debugging, disaggregated prefill/decode ## References - **[Structure](references/structure.md)** - Topic-to-URL map for fetching examples - **[Guidelines](references/guidelines.md)** - Code quality standards to apply after ensuring correctness ## Examples - "How does asyncio work?" → Fetch https://www.pythonsheets.com/notes/asyncio/python-asyncio-guide.html and explain with the site's examples - "Write a socket server" → Fetch https://www.pythonsheets.com/notes/network/python-socket-server.html, use the patterns to write a working server - "What's the walrus operator?" → Fetch https://www.pythonsheets.com/notes/appendix/python-walrus.html and explain with practical examples - "Set up Megatron distributed training" → Fetch https://www.pythonsheets.com/notes/llm/megatron.html, use the patterns to write a correct training script


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: yuanyi-github/image-text-extractor (version 1.0.1)

--- name: PDF和图片文字提取 description: 从图片或 PDF 文档中识别并提取文字内容，支持多种图片格式和 PDF 文件，自动判断是否包含文字并保留原始格式输出结构化结果；当用户需要从图片或 PDF 提取文字、进行 OCR 识别、处理含文字的文档或转换为可编辑文本时使用 dependency: python: - pymupdf>=1.23.0 --- # 文档文字提取器 ## 任务目标 - 本 Skill 用于：从用户上传的图片或 PDF 文档中识别并提取文字内容 - 能力包含：图片文字检测、PDF 文字提取、格式保留、结构化输出、Markdown 文件生成 - 触发条件：用户上传图片或 PDF 并要求提取文字，或询问文档中的文字内容 ## 前置准备 ### 依赖说明 脚本所需的依赖包及版本： ``` pymupdf>=1.23.0 ``` 安装命令： ```bash pip install pymupdf>=1.23.0 ``` ### 支持的文件格式 - 图片格式：PNG、JPG、JPEG、GIF、WebP、BMP 等常见格式 - 文档格式：PDF（支持扫描版和文字版） ## 操作步骤 ### 标准流程 #### 图片文字提取流程 1. **接收图片** - 确认用户已上传图片文件 - 获取图片的访问 URL 2. **识别图片内容** - 使用 `read_image` 工具识别图片内容 - 在 prompt 中明确要求识别所有文字内容，包括标题、正文、注释、水印等 3. **判断文字存在性** - 如果检测到文字：进入步骤 4 - 如果未检测到文字：告知用户"图片中未包含可提取的文字"，任务结束 4. **提取并整理文字** - 提取图片中的所有文字内容 - 保持原有的结构和排版 - 整理为易读的格式 #### PDF 文字提取流程 1. **接收 PDF 文件** - 确认用户已上传 PDF 文件 - 获取 PDF 文件的本地路径 2. **调用脚本提取文字** - 执行命令：`python scripts/pdf_text_extractor.py <pdf_file_path>` - 脚本会自动提取所有页面的文本 - 尽量保留原文的段落结构和标题层级 3. **处理提取结果** - 如果提取成功：进入步骤 4 - 如果提取失败：告知用户错误信息，任务结束 4. **格式化输出** - 脚本返回的文本为 Markdown 格式 - 可直接展示或保存为文件 ### 统一输出步骤 5. **生成输出结果** - 根据用户需求生成 Markdown 文件 - 包含文件来源、提取状态、文字内容等信息 - 使用清晰的标题和结构组织内容 ### 可选分支 - 当用户仅需查看文字内容：直接输出文字，不生成文件 - 当用户要求保存结果：生成 `.md` 文件 - 当图片/PDF 文字模糊或难以识别：说明情况并提供最佳识别结果 - 当 PDF 包含扫描图片：提示用户该页面为扫描图片，可能需要 OCR 处理 ## 资源索引 - 必要脚本：见 [scripts/pdf_text_extractor.py](scripts/pdf_text_extractor.py) - 用途：从 PDF 文件中提取文本内容并保留格式 - 参数：PDF 文件路径 - 输出：JSON 格式结果，包含提取的文本和元信息 ## 注意事项 ### 图片文字提取 - **识别准确性**：文字识别结果受图片清晰度、字体、背景等因素影响，可能存在误差 - **文字排版**：提取时尽量保持原图的文字结构和顺序 - **多语言支持**：支持识别中文、英文等多种语言文字 ### PDF 文字提取 - **格式保留**：脚本会尽量保留原文的段落结构和标题层级 - **扫描版 PDF**：如果 PDF 是扫描图片，文字可能无法提取，需要告知用户 - **复杂布局**：表格、多栏等复杂布局的提取效果可能不佳 - **加密 PDF**：不支持加密或受密码保护的 PDF 文件 ### 通用注意事项 - **隐私保护**：处理的文件不会被存储，仅在当前会话中使用 - **文件大小**：建议处理小于 50MB 的文件，过大文件可能导致处理缓慢 ## 使用示例 ### 示例 1：图片文字提取 **用户操作**：上传一张包含文字的图片 **智能体处理**： 1. 使用 `read_image` 工具识别图片 2. 提取文字内容："所有经历的纠缠 / 还有难过的遗憾 / 都不可能没有意义" 3. 直接输出提取结果 ### 示例 2：PDF 文字提取并保存 **用户操作**：上传 PDF 并要求"提取这个 PDF 的文字" **智能体处理**： 1. 确认 PDF 文件路径 2. 执行脚本：`python scripts/pdf_text_extractor.py ./document.pdf` 3. 获取提取结果，包含 10 页内容 4. 生成 Markdown 文件：`./extracted_from_pdf.md` ### 示例 3：处理扫描版 PDF **用户操作**：上传扫描版 PDF **智能体处理**： 1. 执行脚本提取文字 2. 发现部分页面提取为空 3. 告知用户："检测到部分页面可能为扫描图片，文字无法直接提取。建议使用 OCR 工具处理。"


Security scan verdicts — ClawScan: suspicious | static analysis: suspicious | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)
Skill: quenfly/task-manager-easy (version 1.0.0)

--- name: task-manager description: 任务管理系统，用于记录、追踪和管理所有分配给助手的任务，支持持续性任务和一次性任务，记录任务状态、调用功能、权限和依赖软件。当需要管理任务记录、新增任务、查询任务状态或维护任务系统时使用。 --- # Task Manager - 任务管理系统 ## 功能概述 这个skill提供完整的任务管理功能： 1. 自动维护任务记录表，记录所有任务的详细信息 2. 每当有新任务分配时自动添加到记录表 3. 支持任务状态更新（未开始/执行中/已完成/已暂停） 4. 区分持续性任务和一次性任务 5. 记录任务调用的系统功能、所需权限和依赖软件 6. 支持任务查询和统计 ## 任务记录表位置 任务记录表默认存储在工作区根目录： `/Users/quenflysmac/.openclaw/workspace/TASKS.md` 用户可自定义位置，默认使用上述路径。 ## 任务记录格式 每个任务使用以下格式记录： ```markdown ## [任务ID] 任务标题 - **创建时间:** YYYY-MM-DD HH:MM - **任务类型:** 一次性任务 | 持续性任务 - **当前状态:** 未开始 | 执行中 | 已完成 | 已暂停 - **任务描述:** 详细描述任务内容和目标 - **调用系统功能:** 列出使用的OpenClaw功能/skill - **所需权限:** 列出需要的权限（如文件读写、网络访问、执行命令等） - **依赖软件:** 任务执行所需的外部软件 - **最后更新:** YYYY-MM-DD HH:MM - **备注:** 其他信息 ``` ## 使用流程 ### 1. 初始化任务系统 首次使用时，会自动创建TASKS.md文档并添加表头： ```markdown # 任务管理记录表 本文件由 task-manager skill 自动维护，记录所有分配给助手的任务。 ## 任务统计 - 总任务数: 0 - 执行中: 0 - 已完成: 0 - 持续性任务: 0 - 一次性任务: 0 --- <!-- 任务列表 --> ``` ### 2. 新增任务 每当收到新任务时，必须： 1. 获取当前时间 2. 生成新的任务ID（自增整数） 3. 按照上述格式添加任务到TASKS.md 4. 更新任务统计信息 5. 保存文件 ### 3. 更新任务状态 当任务状态发生变化时： 1. 找到对应任务 2. 更新`当前状态`字段 3. 更新`最后更新`时间 4. 更新任务统计信息 ### 4. 查询任务 可以根据以下条件查询任务： - 任务状态（执行中/已完成等） - 任务类型（持续性/一次性） - 时间范围 - 关键词搜索 ## 自动化规则 **必须遵守**： 1. **任何新任务分配后，必须在5分钟内记录到TASKS.md** 2. 每次修改任务后必须更新统计信息 3. 保持任务ID自增不重复 4. 更新任务时必须更新"最后更新"时间 5. 任务记录要完整，不得遗漏关键字段 ## 脚本工具 ### scripts/update-task-stats.js 自动更新任务统计信息。用法： ```bash node scripts/update-task-stats.js /path/to/TASKS.md ``` 该脚本会重新计算统计数据并更新统计区域。


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (HIGH)
Skill: ivangdavila/csv (version 1.0.0)

--- name: CSV description: Parse and generate RFC 4180 compliant CSV that works across tools. metadata: {"clawdbot":{"emoji":"📊","os":["linux","darwin","win32"]}} --- ## Quoting Rules - Fields containing comma, quote, or newline MUST be wrapped in double quotes - Double quotes inside quoted fields escape as `""` (two quotes), not backslash - Unquoted fields with leading/trailing spaces—some parsers trim, some don't; quote to preserve - Empty field `,,` vs empty string `,"",`—semantically different; be explicit ## Delimiters - CSV isn't always comma—detect `;` (European Excel), `\t` (TSV), `|` in legacy systems - Excel exports use system locale delimiter; semicolon common in non-US regions - Sniff delimiter from first line but verify—header might not contain special chars ## Encoding - UTF-8 BOM (`0xEF 0xBB 0xBF`) breaks naive parsers but Excel needs it for UTF-8 detection - When generating for Excel on Windows: add BOM; for programmatic use: omit BOM - Latin-1 vs UTF-8 ambiguity—explicitly declare or detect encoding before parsing ## Common Parsing Failures - Newlines inside quoted fields are valid—don't split on `\n` before parsing - Unescaped quote in middle of field corrupts rest of file—validate early - Trailing newline at EOF—some parsers create empty last row; strip or handle - Inconsistent column count per row—validate all rows match header count ## Numbers & Dates - `1,234.56` vs `1.234,56`—locale-dependent; standardize or document format - Dates: ISO 8601 (`2024-01-15`) only unambiguous format; `01/02/24` is chaos - Leading zeros in numeric fields (`007`)—quote to preserve or document as string ## Excel Quirks - Formula injection: fields starting with `=`, `+`, `-`, `@` execute as formulas—prefix with `'` or tab - Long numbers (>15 digits) lose precision—quote and format as text - Scientific notation triggered by `E` in numbers—quote if literal text needed


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: codekungfu/xigua (version 0.1.1)

--- name: xigua-video-hot-trend description: 注册“西瓜视频”技能；用于公开视频与短剧页信息整理与表现摘要。 homepage: `https://www.ixigua.com/` metadata: {"clawdbot":{"emoji":"🎬"}} --- # 西瓜视频 用途与边界 - 面向公开视频/短剧/话题页的检索与表现数据摘要 - 不提供下载、接口逆向或突破风控能力 - 仅用于公开页面的轻量分析与提醒 关键入口 - 主页：https://www.ixigua.com/ - 短剧/视频频道：站点入口 - 搜索入口：https://www.ixigua.com/search 常见任务 - 指定话题/关键词的视频集合摘要（点赞/评论/收藏） - 剧集页面目录与更新状态、期次简介 - 榜单条目分布与题材统计 数据字段 - 视频标题、作者、时长、发布时间、点赞/评论/收藏、链接 - 短剧标题、更新状态、期次目录、简介、链接 - 榜单名称、采集时间、来源链接 自动化要点 - 动态渲染与人机校验，建议人工打开后触发解析 - 请求频率需控制，不进行批量抓取 - 不进行下载或接口调用 示例流程 - 关键词摘要：输入关键词 → 搜索 → 抽取条目 → 输出表现摘要 - 短剧目录：访问短剧页 → 抽取期次 → 输出更新状态与简介 - 榜单统计：访问榜单 → 抽取条目 → 题材分布统计 合规提示 - 遵守平台规则，不进行下载、接口调用或批量采集 - 结果仅用于内部分析与提醒


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: endcy/encrypted-file-reader (version 1.0.0)

# encrypted-file-reader 读取本地加密/受保护的文件内容，支持企业安全策略环境。 ## 功能 - 读取文本文件（.txt, .md, .java, .py, .js 等） - 读取 Word 文档（.docx） - 读取 Excel 表格（.xlsx） - 自动处理特殊编码文件的解码问题 - 支持企业安全策略环境下的文件读取 - 适用于通过授权应用程序可访问的加密文件 ## 使用方法 ### 通过 Python 脚本调用 ```bash python D:\ai\skills\encrypted-file-reader\read_file.py <文件路径> ``` ### 示例 ```bash # 读取文本文件 python D:\ai\skills\encrypted-file-reader\read_file.py E:\data\test.txt # 读取 Word 文档 python D:\ai\skills\encrypted-file-reader\read_file.py E:\data\test.docx # 读取 Excel 表格 python D:\ai\skills\encrypted-file-reader\read_file.py E:\data\test.xlsx ``` ## 支持的扩展名 - **文本类**: .txt, .md, .markdown, .rst, .log, .csv, .tsv - **代码类**: .java, .py, .js, .ts, .jsx, .tsx, .c, .cpp, .h, .cs, .go, .rs, .rb, .php, .vue - **配置类**: .json, .xml, .yaml, .yml, .toml, .ini, .cfg, .properties, .gradle, .config, .env - **样式类**: .html, .htm, .css, .scss, .sass, .less - **脚本类**: .sh, .bash, .bat, .cmd, .ps1, .sql - **Word 文档**: .docx - **Excel 表格**: .xlsx ## 输出 - 成功：输出文件内容（UTF-8 编码） - 失败：输出错误信息 ## 技术原理 - **文本文件**: 直接读取二进制后用 UTF-8 解码 - **Office 文件**: 使用 zipfile 解压后提取 XML 中的文本内容 - **加密/受保护文件**: 通过正确的字节处理方式处理通过授权应用程序可访问的文件内容 ## 依赖 - Python 3.x - 标准库（zipfile, re, sys, os） ## 注意事项 - 本工具仅读取用户有权限访问的本地文件 - 不支持绕过合法的文件访问控制 - 适用于企业环境中授权的文件读取场景 - 文件需要能通过系统授权的应用程序（如 Word、Excel）正常打开 ## 法律说明 - 本工具仅用于读取用户有合法访问权限的本地文件 - 不支持绕过任何合法的文件访问控制或权限管理 - 用户应确保使用本工具符合所在组织的政策和法律法规 - 本工具通过正确的编码处理方式读取文件，不涉及破解或绕过加密


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: tanteng/hugo-blog-publisher (version 1.1.1)

--- name: hugo-blog-publisher version: 1.1.0 description: 发布文章到 Hugo 博客。用于当用户说"发布博客"、"推送到blog"、"post to blog"、"发布文章"等。自动完成 front matter 渲染、<!--more--> 标记添加、git 推送流程。 --- # Hugo Blog Publisher 将 Markdown 文章发布到 Hugo 博客并推送到 GitHub。 ## 自动读取配置 此 Skill 会自动尝试从以下位置读取博客配置： 1. 用户记忆文件（MEMORY.md / USER.md）中的博客域名、路径等 2. 博客目录下的 .git 配置 如果未找到配置，才询问用户。 ## 使用前提 1. **本地运行**：此 Skill 需要在能够访问博客目录的机器上运行 2. **Git 配置**：确保机器上有 Git 和 GitHub 访问权限 ## 发布流程 ### 1. 分析内容 从用户提供的文章内容中自动提取： - **标题**：从 front matter 或内容中提取 - **标签**：根据内容主题自动判断（如 AI → ["ai"]） - **分类**：根据内容类型判断（如技术文章 → ["tech"]） ### 2. 生成文件名 - 格式: `content/posts/{slug}.md` - slug: 标题转为 URL 友好格式（小写、连字符、去除特殊字符） - 注意：文件名不要包含日期，日期在 front matter 的 `date` 字段中指定 ### 3. 渲染 Front Matter ```yaml --- title: "文章标题" date: YYYY-MM-DD draft: false tags: ["tag1", "tag2"] categories: ["Category"] description: "文章描述" --- ``` **重要规则**： - **categories**：使用已有分类（小写英文 slug），如 `tech`, `investment`, `ai`, `photo` - **tags**：使用小写英文 slug，不要用中文 - **slug**：文件名使用小写英文，不要用中文 ### 4. 标签/分类映射（重要） **文章 frontmatter 用英文 slug，页面展示用中文**，通过 Hugo Taxonomy Branch Bundle 实现： 1. frontmatter 中使用英文 slug： ```yaml tags: ["ssg", "ssr"] categories: ["tech"] ``` 2. 如果遇到新标签/分类没有映射文件，需要创建： ``` content/tags/<slug>/_index.md content/categories/<slug>/_index.md ``` 3. 文件内容极简： ```yaml --- title: "显示的中文名" --- ``` **不用 i18n，全部用 _index.md 映射！** #### 常用分类 (categories) | Slug | 中文显示 | |------|----------| | tech | 技术 | | photo | 摄影 | | ai | AI | | investment | 投资 | | tech-news | 科技资讯 | | science | 科学 | | art | 艺术 | | life | 生活 | | reading-notes | 读书笔记 | #### 常用标签 (tags) | Slug | 中文显示 | |------|----------| | ai | AI | | llm | 大语言模型 | | agent | 智能体 | | programming | 编程 | | thinking | 思考 | | photography | 摄影 | | camera | 相机 | | photo | 照片 | | options | 期权 | | trading | 交易 | | investment | 投资 | | stock | 股票 | | php | PHP | | go | Go | | kubernetes | Kubernetes | | rag | RAG | #### 专属名词（保持英文显示） - AI、RAG、NLP、Kubernetes、Go、Elasticsearch、PHP、SQL、Kimi、DeepSeek、Claude、GPT、SSG、SSR 等技术名称用英文 slug ### 5. 添加 <!--more--> 截断标记 在第一段或导言后添加 `<!--more-->`，让列表页显示摘要。 位置通常在： - 第一段结束后的空行 - 导言和正文之间 ### 6. Git 推送 从博客目录自动检测 git 状态并推送： ```bash cd {博客路径} git add content/posts/{文件名} git commit -m "新增：{文章标题}" git push ``` 如果 git push 需要认证，确保用户已配置 SSH key 或 git credentials。 ### 7. 返回部署链接 告知用户文章已发布成功。 注意：不要硬编码域名，应该根据用户提供的博客信息返回相应链接。 ## 使用示例 ``` 用户：帮我发布这篇blog（附文章内容） 系统自动完成： 1. 分析内容，提取标题、标签、分类 2. 生成文件名（slug） 3. 添加 front matter 和 <!--more--> 标记 4. 如需新标签/分类，创建 _index.md 映射文件 5. 检测博客目录并推送 6. 返回部署链接 ``` ## 注意事项 - slug 生成：英文直接用，中文可用拼音或英文关键词 - <!--more--> 位置：根据文章结构选择合适位置 - commit message：建议用 "新增:" 前缀 - 如果用户没有提供博客路径，默认用当前目录的 blog 子目录 - **所有标签/分类映射都用 _index.md 文件方式，不用 i18n/zh.toml！**


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