OpenClaw/clawhub-security-signals huggingface dataset:
Skill: mariovallereyes/luma-event-manager (version 2.1.1)

--- name: luma description: Luma Event Manager for Clawdbot — Discover events by topic or location, RSVP, view guest lists, and sync to Google Calendar. No API key required (web scraping), no Luma Plus subscription needed. Repo: github.com/mariovallereyes/luma-skill homepage: https://github.com/mariovallereyes/luma-skill metadata: {"clawdbot":{"emoji":"📅","requires":{"bins":["pass"]},"install":[{"id":"npm","kind":"shell","command":"cd skills/luma && npm install","label":"Install dependencies"}]}} --- # Luma Event Manager Manage Luma events as both **host** and **attendee** via web scraping (no API key required). ## Features ### Public (No Auth) - Discover events near any location - View event details - Geographic filtering ### Authenticated (With Cookies) - View your RSVP'd events - View events you're hosting - Access guest lists - RSVP to events - Sync events to Google Calendar (via `gog` CLI) ## Triggers ### Discover Events (Public) - "luma search AI" — Find events by topic/theme - "luma search startup near San Francisco" — Topic + location - "luma events near San Francisco" - "luma events near Belmont this weekend" - "luma event ai-meetup-sf" ### Host Mode (Auth Required) - "luma host events" — List your hosted events - "luma host guests <slug>" — View guest list ### Attendee Mode (Auth Required) - "luma my events" — Your RSVP'd events - "luma rsvp <slug> <response>" — RSVP yes/no/maybe/waitlist ### Utility - "luma configure" — Set up authentication - "luma status" — Check connection - "luma help" — Show help - "luma add calendar <slug>" — Add event to Google Calendar ## Setup ### Basic (Public Events Only) No setup required. Just use discover commands. ### Full Access (Your Events + Guest Lists) 1. Log into lu.ma in your browser 2. Open DevTools (F12) → Application → Cookies → lu.ma 3. Copy cookie values: `luma_session`, `luma_user_id` 4. Store in pass: ```bash pass insert luma/cookies # Enter: {"luma_session": "value", "luma_user_id": "value"} ``` ### Calendar Sync (Optional) Requires the `gog` CLI with an authorized Google account. ```bash gog auth add [REDACTED_SECRET] ``` Then: ``` "luma add calendar <slug>" "luma add calendar <slug> --account [REDACTED_SECRET]" "luma add calendar <slug> --calendar_id primary" ``` ## Examples ``` "Events near me this weekend" "What's the AI meetup about?" "luma event startup-pitch-night" "Show my upcoming events" ``` ## Notes - Uses web scraping (no paid Luma Plus required) - Exponential backoff with a 1 req/sec floor to respect lu.ma - Fallback selectors + Next.js JSON parsing with warnings when selectors fail - Cookie auth for private data - Public events always accessible


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: suspicious | SkillSpector: suspicious (CRITICAL)
Skill: axelhu/superpowers-subagent-dev (version 1.0.1)

--- name: superpowers-subagent-dev description: Use when executing implementation plans with independent tasks - coordinates task execution by dispatching subagents per task with verification checkpoints, adapted for OpenClaw's isolated session model --- # Superpowers Subagent 开发（OpenClaw 适配版） ## 概述 通过为每个任务 dispatch 独立 subagent 来执行计划，每个任务后进行两阶段审查：先审查规格合规，再审查代码质量。 **为什么用 subagent：** 将任务委托给专门 agent，隔离上下文。通过精确构造指令和上下文，确保它们专注并成功完成。Subagent 不应继承 session 历史——精确构造它们需要的上下文。 **核心原则：** 每个任务新鲜 subagent + 两阶段审查（规格合规 → 代码质量） ## OpenClaw 适配说明 Superpowers 原版设计基于 Claude Code 的 Task/subagent 级联模型。OpenClaw 使用 `sessions_spawn` 创建独立 session，无法做到原生级联。 **OpenClaw 适配方案：** - 主 agent 作为 controller，协调所有工作 - 用 `sessions_spawn(mode="run")` dispatch 一次性任务 subagent - Subagent 结果通过 session 历史或文件系统传递 - 审查在主 session 内 inline 执行（或 spawn 独立审查 session） - 复杂审查任务用 `sessions_spawn` ## 使用条件 ``` 有实现计划？ → 任务大多独立？ → 在本 session 内工作？ → 用 subagent-dev（这个技能） → 并行独立 session？ → 用 sessions_spawn 并行 dispatch → 手动执行或先 brainstorming ``` ## 流程 ### 每次任务 1. **读取计划，提取所有任务** - 读取计划文件一次 - 提取所有任务及其完整文本和上下文 - 创建任务列表 2. **Dispatch 实现者 subagent** ``` 使用 sessions_spawn: - mode: "run"（一次性任务） - task: 完整任务文本 + 上下文 - cwd: 项目目录 ``` 3. **Subagent 提问处理** - 如果 subagent 提问 → 回答问题，提供上下文 - 重新 dispatch 或继续 4. **Subagent 实现、测试、commit、自审** - 实现者完成工作 - 运行测试 - Commit - 自审 5. **规格合规审查（主 session inline 或 spawn）** - 检查实现是否满足计划中的规格 - 发现问题 → 反馈给实现者修复 → 重新审查 - 通过 → 继续 6. **代码质量审查** - 检查代码质量：DRY、命名、测试设计 - 发现问题 → 修复 - 通过 → 继续 7. **标记任务完成，继续下一个** ### 任务后 所有任务完成后： - 做最终代码审查 - 调用 `superpowers-finishing-branch` 完成工作 ## 模型选择 用能处理任务的最弱模型，节省成本增加速度： | 任务类型 | 示例 | 模型 | |---------|------|------| | 机械实现任务 | 孤立函数、清晰规格、1-2 文件 | 快速便宜模型 | | 集成和判断任务 | 多文件协调、模式匹配、调试 | 标准模型 | | 架构设计和审查任务 | 需要设计判断或广泛代码库理解 | 最强模型 | ## 处理 Subagent 状态 Subagent 报告四种状态之一。适当处理： **DONE：** 继续规格合规审查。 **DONE_WITH_CONCERNS：** 实现者完成但标记了疑虑。先读关注点再继续。如果关注点涉及正确性或范围，先解决再审查。 **NEEDS_CONTEXT：** 实现者需要未提供的信息。提供缺失上下文并重新 dispatch。 **BLOCKED：** 实现者无法完成任务。评估阻塞： 1. 如果是上下文问题，提供更多上下文并用相同模型重新 dispatch 2. 如果任务需要更多推理，用更强模型重新 dispatch 3. 如果任务太大，拆成更小的块 4. 如果计划本身有问题，上报给主人 **永远不要**忽略升级或强制相同模型重试而不做变更。 ## Red Flags **永远不要：** - 在 main/master 分支上开始实现（没有主人明确同意） - 跳过审查（规格合规或代码质量） - 有未修复问题时继续 - 同时 dispatch 多个实现 subagent（冲突） - 让 subagent 读计划文件（直接提供完整文本） - 跳过场景设置上下文（subagent 需要理解任务在哪里_fit） - 忽略 subagent 的提问（先回答再让他们继续） - 接受"差不多"的规格合规（审查发现问题 = 没完成） - 跳过审查循环（审查发现问题 = 实现者修复 = 重新审查） - 让实现者自审替代实际审查（两者都需要） - **在规格合规通过前开始代码质量审查**（顺序错误） - 有公开问题时继续下一个任务 ## 集成 **必需的工作流技能：** - `superpowers-writing-plans` — 创建这个技能执行的计划 - `superpowers-finishing-branch` — 所有任务完成后的收尾 - `superpowers-tdd` — Subagent 每个任务遵循 TDD **替代工作流：** - `sessions_spawn` 并行 dispatch — 用于独立问题的并行调查 - 顺序执行 — 在主 session 内按批次执行


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: daniellummis/github-actions-runtime-regression-audit (version 1.0.0)

--- name: github-actions-runtime-regression-audit description: Compare baseline vs current GitHub Actions run exports to catch workflow/job runtime regressions before CI costs and lead time spike. version: 1.0.0 metadata: {"openclaw":{"requires":{"bins":["bash","python3"]}}} --- # GitHub Actions Runtime Regression Audit Use this skill to detect runtime regressions between historical baseline runs and current runs. ## What this skill does - Reads baseline and current GitHub Actions run JSON exports (`gh run view --json ...`) - Calculates average and p95 runtime per repository + workflow + job - Compares current metrics against baseline and ranks largest regressions - Flags warn/critical regressions by absolute seconds and percent delta - Emits text summary for humans or JSON for automation ## Inputs Required: - `BASELINE_GLOB` (glob for baseline run JSON files) - `CURRENT_GLOB` (glob for current run JSON files) Optional: - `TOP_N` (default: `20`) - `OUTPUT_FORMAT` (`text` or `json`, default: `text`) - `WARN_DELTA_SECONDS` (default: `30`) - `CRITICAL_DELTA_SECONDS` (default: `90`) - `WARN_DELTA_PERCENT` (default: `15`) - `CRITICAL_DELTA_PERCENT` (default: `35`) - `FAIL_ON_CRITICAL` (`0` or `1`, default: `0`) - `WORKFLOW_MATCH` (regex, optional) - `WORKFLOW_EXCLUDE` (regex, optional) - `JOB_MATCH` (regex, optional) - `JOB_EXCLUDE` (regex, optional) - `REPO_MATCH` (regex, optional) - `REPO_EXCLUDE` (regex, optional) ## Collect run JSON ```bash gh run view <run-id> --json databaseId,workflowName,headBranch,headSha,url,repository,jobs \ > artifacts/github-actions/run-<run-id>.json ``` Capture a stable baseline window (for example previous 2 weeks), then current runs from latest commits. ## Run Text report: ```bash BASELINE_GLOB='artifacts/github-actions/baseline/*.json' \ CURRENT_GLOB='artifacts/github-actions/current/*.json' \ TOP_N=15 \ WARN_DELTA_SECONDS=45 \ CRITICAL_DELTA_SECONDS=120 \ bash skills/github-actions-runtime-regression-audit/scripts/runtime-regression-audit.sh ``` JSON output with CI gate: ```bash BASELINE_GLOB='artifacts/github-actions/baseline/*.json' \ CURRENT_GLOB='artifacts/github-actions/current/*.json' \ OUTPUT_FORMAT=json \ FAIL_ON_CRITICAL=1 \ bash skills/github-actions-runtime-regression-audit/scripts/runtime-regression-audit.sh ``` Run with bundled fixtures: ```bash BASELINE_GLOB='skills/github-actions-runtime-regression-audit/fixtures/baseline-*.json' \ CURRENT_GLOB='skills/github-actions-runtime-regression-audit/fixtures/current-*.json' \ bash skills/github-actions-runtime-regression-audit/scripts/runtime-regression-audit.sh ``` ## Output contract - Exit `0` in reporting mode (default) - Exit `1` when `FAIL_ON_CRITICAL=1` and at least one job crosses critical regression thresholds - `text` mode prints summary + top regressions + new jobs without baseline - `json` mode outputs summary, ranked regressions, and newly observed jobs


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector:  ()
Skill: yang1002378395-cmyk/clawmart-price-monitor (version 1.0.0)

--------------------------qAwQUvVPFzhhqp9rj4OUuw Content-Disposition: form-data; name="file"; filename="SKILL.md" Content-Type: application/octet-stream # Price Monitor Skill 实时监控价格变动，自动提醒。 ## 功能 - 监控商品/服务价格 - 价格变动提醒 - 历史价格分析 - 最佳购买时机建议 - 多平台对比 ## 使用方式 ``` 监控 iPhone 15 的价格 ``` ``` 设置 BTC 价格预警：低于 $50,000 提醒我 ``` ``` 对比京东和淘宝的商品价格 ``` ## 配置 ### 监控规则 ```json { "monitors": [ { "name": "iPhone 15", "platforms": ["jd", "taobao", "pdd"], "target_price": 5999, "alert": "below" }, { "name": "BTC", "target_price": 50000, "alert": "below" } ] } ``` ## 输出格式 ``` 📊 价格监控报告 ## iPhone 15 Pro Max（256GB） ### 当前价格 - 京东：¥9,999 - 淘宝：¥9,888 - 拼多多：¥9,599 ⭐ 最低价 ### 价格趋势 - 7 天前：¥10,299 - 30 天前：¥10,599 - 最低价：¥9,599（拼多多） - 最高价：¥10,999（官网） ### 建议 ✅ 拼多多价格最低，建议购买 ### 预警设置 ⚠️ 当价格低于 ¥9,500 时提醒我 --- ## BTC 价格 ### 当前价格 $52,345.67 (+2.3%) ### 价格趋势 - 24h 高：$53,200 - 24h 低：$51,000 - 7d 涨跌：+8.5% - 30d 涨跌：+15.2% ### 预警状态 ✅ 已设置：低于 $50,000 提醒 ``` --- 创建时间：2026-03-11 作者：ClawMart --------------------------qAwQUvVPFzhhqp9rj4OUuw--


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: dinghaibin/markdown-tool (version 1.0.0)

--- name: markdown-tool description: Convert Markdown text to HTML and other formats. Use for documentation generation, content formatting, and text transformation. --- # Markdown - Document Format Converter Convert Markdown-formatted text to HTML with support for headings, lists, code blocks, tables, and inline formatting. ## Usage ```bash markdown-tool [options] <file> ``` ## Features - Full CommonMark spec support - Syntax highlighted code blocks - Table of contents generation - GitHub Flavored Markdown (GFM) extensions ## Examples ```bash markdown-tool README.md > index.html markdown-tool --toc doc.md echo "# Hello" | markdown-tool ```


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: diudiuhuang/stock-qdata (version 1.0.1)

\###技术支持：微信名quant_village_dog | QQ:13620658 ###技术社区：QQ群：1057968391 ，自行下载因clawhub限制无法上传的资源文件 \--- --- name: stock-qdata description: "下载A股历史行情数据（基于QMT量化交易平台），支持自然语言指令和网页实时监控界面" Use when: 用户需要获取A股交易数据。 --- ## When to Run * 触发条件1：用户说“下载日线数据，最近200天，使用网页监控模式” * 触发条件2：用户说“下载30分钟线数据，最近100天，每批30个，后台模式” * 触发条件3：用户说 “下载5分钟线，500天，每批50，网页" * 触发条件3：用户说“下载交易数据” * 触发条件4：用户说“获取历史数据” * 触发条件5：用户说“下载历史数据” # 股票数据下载技能 (Stock-QData) 基于QMT量化交易平台，下载A股历史行情数据，支持日线、30分钟线、5分钟线、1分钟线等多种周期。 ## 功能特性 - **自然语言指令**：支持中文自然语言描述下载任务 - **网页监控界面**：实时显示下载进度、速度、错误信息 - **多种数据周期**：支持1d（日线）、30m、5m、1m等周期 - **智能错误处理**：自动重试失败股票，记录错误日志 - **实时状态更新**：每2秒自动更新进度，Socket.IO实时通信 - **暂停/恢复**：支持暂停和恢复下载任务 ## 系统要求 1. **QMT量化交易平台**：必须安装并配置好QMT 2. **Python环境**：Python 3.7+—3.12，安装必要依赖 3. **网络连接**：需要连接QMT服务器下载数据 ## 安装依赖 ```bash pip install -r requirements.txt ``` ## 使用方法 ### 1. 自然语言指令模式 ```bash # 下载日线数据，最近200天，使用网页监控模式 python main.py "下载日线数据，最近200天，使用网页模式" # 后台下载30分钟线数据，最近100天，每批30个 python main.py "后台下载30分钟线数据，最近100天，每批30个" # 下载5分钟线，500天，每批50，网页监控 python main.py "下载5分钟线，500天，每批50，网页" ``` ### 2. 命令行参数模式 ```bash # 网页监控模式（默认） python main.py --period=1d --days=200 --mode=web # 纯后台模式 python main.py --period=30m --days=100 --batch_size=30 --mode=background ``` ### 3. 参数说明 | 参数 | 说明 | 默认值 | 可选值 | |------|------|--------|--------| | period | 数据周期 | 1d | 1d（日线）, 30m, 5m, 1m | | days | 回溯天数 | 500 | 1-9999 | | batch_size | 每批处理数量 | 50 | 1-1000 | | mode | 运行模式 | web | web（网页监控）, background（纯后台） | ## 配置文件 `config.json` 包含基本配置： ```json { "base_path": "d:\\data\\", // 数据保存路径 "qmt_path": "D:\\QMT\\bin.x64", // QMT安装路径 "batch_size": 50, // 默认批次大小 "download_days": 500, // 默认下载天数 "download_period": "1d", // 默认数据周期 "host": "127.0.0.1", // Web服务器主机 "port": 5000 // Web服务器端口 } ``` ## 网页监控界面 启动网页模式后，访问 `http://127.0.0.1:5018`（端口可能自动调整）打开监控界面： - **实时进度**：显示总体进度、处理速度、预计完成时间 - **股票列表**：显示正在处理和已完成的股票 - **错误日志**：显示下载过程中出现的错误和警告 - **控制按钮**：开始、暂停、恢复、停止下载任务 - **参数调整**：可在界面上调整批次大小 ## 数据存储 数据按以下结构保存： ``` {base_path}/ └── k_data/ └── {period}/ ├── 000001.SZ.csv ├── 000002.SZ.csv └── ... ``` ## 注意事项 1. **QMT要求**：必须正确安装QMT，且`qmt_path`配置正确 2. **首次使用**：需要登录QMT客户端并保持运行 3. **网络连接**：下载过程需要稳定的网络连接 4. **磁盘空间**：确保数据保存路径有足够空间 5. **自动超时**：网页界面5分钟无操作会自动关闭服务器 ## 故障排除 - **QMT未启动**：系统会自动尝试启动QMT，如失败请手动启动 - **端口冲突**：系统会自动寻找可用端口（5018-5038） - **字体缺失**：字体文件已包含在技能包中，无需额外下载 - **依赖缺失**：运行 `pip install -r requirements.txt` 安装所有依赖

path: requirements.txt
content: flask>=2.0.0
flask-socketio>=5.0.0
pandas>=1.3.0
psutil>=5.8.0

Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: roseknife520/email-mail-master-rose (version 1.0.0)

--- name: email-mail-master 万能邮箱助手 description: 通过阿里云邮箱、QQ邮箱或163邮箱等发送和接收邮件。支持发送普通邮件、带附件邮件、接收邮件、检查新邮件。当用户要求发送邮件、查看邮件、检查新邮件时使用。 --- # 邮件管理 通过阿里云邮箱、QQ邮箱或163邮箱等发送和接收邮件。 ## 配置 编辑 `skills/email/scripts/config.json`，填写邮箱地址和授权码（非登录密码）。 授权码获取： - QQ 邮箱：设置 > 账户 > 开启 IMAP/SMTP > 生成授权码 - 163 邮箱：设置 > POP3/SMTP/IMAP > 开启服务 > 设置授权密码 可通过 `default_mailbox` 字段设置默认邮箱（`"qq"` 或 `"163"`）。 ## 命令行调用 ```bash # 发送邮件 python3 skills/email/scripts/mail.py send --to [REDACTED_SECRET] --subject "主题" --content "内容" # 发送带附件 python3 skills/email/scripts/mail.py send --to [REDACTED_SECRET] --subject "报告" --content "请查收" --attach report.pdf # 接收最新邮件 python3 skills/email/scripts/mail.py receive --limit 5 # 接收邮件（JSON 输出，推荐 AI 使用） python3 skills/email/scripts/mail.py receive --limit 5 --json # 检查新邮件（最近 N 天） python3 skills/email/scripts/mail.py check-new --since 1 # 检查新邮件（JSON 输出） python3 skills/email/scripts/mail.py check-new --since 1 --json # 删除邮件（移到已删除文件夹，QQ邮箱可恢复） python3 skills/email/scripts/mail.py delete --ids 123 # 批量删除 python3 skills/email/scripts/mail.py delete --ids 123 124 125 # 彻底删除（不可恢复） python3 skills/email/scripts/mail.py delete --ids 123 --permanent # 指定邮箱类型 python3 skills/email/scripts/mail.py --mailbox 163 send --to [REDACTED_SECRET] --subject "测试" ``` ## 删除邮件说明 - QQ 邮箱（IMAP）：默认移到「已删除」文件夹，可以从已删除中恢复。加 `--permanent` 彻底删除。 - 163 邮箱（POP3）：POP3 协议不支持文件夹操作，删除始终是永久的，不可恢复。

path: _meta.json
content: ownerId: kn7amrtkn0tjk2r2yxf3hjgp0s7zn6g4
slug: email-mail-master-rose
version: 1.0.0
publishedAt: 1772888109581

path: scripts/requirements.txt
content: # 邮箱管理所需的 Python 包
# 注意: imaplib, smtplib, email 是 Python 标准库，无需安装


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

--- name: skill-learner description: Identify repeated workflows, recurring user asks, common failures, and reusable procedures that should become new skills or improvements to existing skills. Use when patterns repeat, when the user corrects the same kind of mistake, or when a task keeps requiring the same instructions, docs, or tool flow. --- # Skill Learner ## Overview Use this skill to turn repeated work into reusable skill knowledge. Focus on extracting patterns, not doing the underlying task again. ## Learning workflow ### 1. Identify the pattern Look for repeated signals such as: - the same type of task happening multiple times - the same correction from the user more than once - repeated tool sequences - repeated failures or omissions - repeated project workflows that should be standardized ### 2. Decide the right outcome Choose one: - create a new skill - improve an existing skill - add a reference file or script to an existing skill - record a smaller local operating rule instead of creating a full skill ### 3. Extract the reusable pieces Capture only what is worth reusing, such as: - triggers for when the skill should be used - the core workflow - decision rules - scripts or references that would prevent repetition - common pitfalls and corrections ### 4. Recommend the smallest useful skill shape Prefer the lightest structure that solves the repeated problem: - SKILL.md only - SKILL.md + references - SKILL.md + scripts ### 5. Report clearly Use this structure: ### Pattern observed - what keeps repeating ### Why it should become skill knowledge - what waste/error it prevents ### Recommended action - new skill / improve existing skill / local rule only ### Minimal skill shape - what files/resources are actually needed ## Rules - Do not create a skill unless the pattern is real and reusable. - Prefer improving an existing skill over creating duplicates. - Keep recommendations lean. - Avoid auxiliary documentation clutter. - If a local workspace rule is enough, say so instead of forcing a new skill.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: jbauman-26/openclaw-self-heal (version 1.0.0)

--- name: openclaw-self-heal description: Diagnose and self-resolve OpenClaw system breakage autonomously. Use when: the Control UI / webchat is broken or unreachable, a channel (Discord, Telegram) goes offline or stops responding, the gateway crashes or won't start, memory/plugins report errors, pairing fails, or any OpenClaw component appears broken. Also use proactively during heartbeats when `openclaw status` shows errors. Resolves issues without asking Jake unless the fix requires destructive action or manual intervention. --- # openclaw-self-heal Diagnose and fix OpenClaw issues autonomously. Fix first, report after (unless destructive). ## Quick Triage (run first) ```bash openclaw status 2>&1 openclaw logs --limit 100 2>&1 ``` Parse output for: `error`, `warn`, `SIGTERM`, `failed`, `pairing required`, `disconnected`, `crash`. See `references/diagnostics.md` for symptom → fix mappings. ## Fix Philosophy 1. **Try the safe fix first** — restart gateway, reload config, clear cache 2. **Fix → verify → report** — don't ask Jake until you've tried 3. **Escalate only for:** data loss risk, credential resets, config changes Jake must approve, or repeated failure after 2 attempts 4. **Always log what you did** to `memory/YYYY-MM-DD.md` ## Common Commands ```bash # Gateway control openclaw gateway status openclaw gateway restart openclaw gateway stop && sleep 3 && openclaw gateway start # Status + logs openclaw status openclaw status --deep openclaw logs --limit 200 openclaw logs --follow # use briefly, then kill # Security audit openclaw security audit ``` ## Verification After any fix, confirm resolution: ```bash openclaw status 2>&1 | grep -E "(Gateway|Channel|Error|CRITICAL|WARN)" ``` If still broken after restart, consult `references/diagnostics.md` for deeper fixes. ## Reporting After resolving: brief summary to Jake — what broke, what you did, current state. If you couldn't fix it: tell Jake what you found + what you tried, with the exact error.


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: dadaniya99/xiaolongxia-eudic-vocab (version 1.0.0)

--- name: eudic-vocab description: 欧路词典生词本管理与每日测试技能。支持自动从欧路词典收藏夹出题、管理单词、删除已掌握词汇。适合每日背单词使用。 --- # 欧路词典每日词汇测试 📚 ## 功能 - **每日自动出题** - 从欧路词典生词本随机抽取单词生成测试 - **智能选项生成** - 自动创建干扰项，只显示释义不暴露答案 - **答题核对** - 自动批改并解析错题 - **单词管理** - 支持删除已掌握的单词 ## 配置 ### 1. 获取欧路词典 API Token 1. 访问 https://my.eudic.net/OpenAPI/Authorization 2. 登录后复制 Token（格式：`NIS xxxxx`） 3. 将 Token 保存到环境变量或配置文件 ### 2. 设置每日测试（Cron） ```bash # 每天早上 9:00 自动发送5道题 0 9 * * * cd /path/to/eudic-vocab && python3 scripts/daily_quiz.py --token <YOUR_TOKEN> --count 5 ``` ## 使用方法 ### 手动生成测试题 ```bash python3 scripts/quiz_generator.py --token <TOKEN> --count 5 ``` ### 删除已掌握的单词 ```bash python3 scripts/vocab_manager.py --token <TOKEN> --action delete --word-id <ID> ``` ### 查看所有单词 ```bash python3 scripts/vocab_manager.py --token <TOKEN> --action list ``` ## 工作流程 1. **早上 9:00** - 自动收到 5 道词汇测试题 2. **答题** - 回复 A/B/C/D 3. **核对** - 查看得分和错题解析 4. **删除** - 告诉龙虾哪些词记住了，自动从生词本删除 ## API 信息 - **Base URL**: `https://api.frdic.com/api/open/v1` - **认证**: `Authorization: NIS <token>` - **限制**: 每次最多获取 233 个单词（API 限制） ## 依赖 ```bash pip install requests ```

path: scripts/daily_quiz.py
content: #!/usr/bin/env python3
"""
欧路词典每日词汇测试 - 用于 Cron 定时任务
每天早上自动发送测试题
"""

import argparse
import json
from quiz_generator import QuizGenerator

def main():
    parser = argparse.ArgumentParser(description="欧路词典每日词汇测试")
    parser.add_argument("--token", help="API Token，如不填则从环境变量 EUDIC_TOKEN 读取")
    parser.add_argument("--count", type=int, default=5, help="题目数量")
    parser.add_argument("--output", default="quiz_output.json", help="输出文件")
    
    args = parser.parse_args()
    
    # 优先从参数获取，其次环境变量
    [REDACTED_SECRET] or os.environ.get("EUDIC_TOKEN")
    if not [REDACTED_SECRET]"❌ 错误: 请提供 --token 或设置环境变量 EUDIC_TOKEN")
        sys.exit(1)
    
    generator = QuizGenerator(token)
    quiz = generator.generate_quiz(args.count)
    
    if not quiz:
        print("❌ 生成测试题失败")
        return
    
    # 保存到文件供后续使用
    with open(args.output, 'w', encoding='utf-8') as f:
        json.dump(quiz, f, ensure_ascii=False, indent=2)
    
    # 打印测试题（用于飞书发送）
    print("📚 今日欧路词典词汇测试\n")
    
    for q in quiz:
        print(f"第{q['no']}题: {q['question']}")
        if q['phon']:
            print(f"音标: {q['phon']}")
        print()
        for j, (exp, is_correct) in enumerate(q['options'], 1):
            label = chr(64 + j)
            print(f"{label}) {exp}")
        print()
    
    print("请回复答案（如：A B C D E）")
    
    # 保存答案
    answers = []
    for q in quiz:
        for j, (exp, is_correct) in enumerate(q['options'], 1):
            if is_correct:
                answers.append({
                    "no": q['no'],
                    "word": q['word'],
                    "answer": chr(64 + j),
                    "exp": exp
                })
                break
    
    with open(args.output + '.answers.json', 'w', encoding='utf-8') as f:
        json.dump(answers, f, ensure_ascii=False, indent=2)

if __name__ == "__main__":
    main()


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