OpenClaw/clawhub-security-signals huggingface dataset:
Skill: wensen2024/contract-review-pro (version 1.0.2)

--- name: contract-review description: 合同风险识别与条款分析 - 智能合同审查工具，自动识别风险条款、补充缺失条款、对比差异条款 version: 1.0.0 license: MIT --- # 合同审查 专业级合同智能审查工具，帮助企业和个人识别合同风险，保障合法权益。 ## 功能特性 - ⚠️ **风险识别**: 不公平条款、违法条款、权责不对等条款 - 📋 **条款分析**: 关键条款提取、合规性检查、完整性检查 - ➕ **缺失补充**: 必备条款提醒、建议补充条款、条款模板推荐 - 🔄 **版本对比**: 合同版本差异对比、条款变更追踪 - 📊 **风险评估**: 综合风险评分、分项风险分析 - 📚 **法律依据**: 相关法律条文引用、司法案例参考 ## 使用方式 ```bash # 合同审查 审查这份合同 并指出风险点 # 条款分析 分析这份合同的违约责任条款 # 合同对比 对比这两份合同的差异 contract_v1.pdf contract_v2.pdf # 条款补充 检查这份服务合同缺失哪些必备条款 # 风险评估 评估这份投资协议的风险等级 ``` ## 配置要求 ### 必需配置 无特殊配置要求。 ### 可选配置 ```json { "skills": { "entries": { "contract-review": { "config": { "language": "zh-CN", "strictness": "high", "check_compliance": true } } } } } ``` ## 支持合同类型 ### 商事合同 - 买卖合同、采购合同、销售合同、经销合同 ### 服务合同 - 服务合同、咨询合同、技术服务合同、委托合同 ### 劳动合同 - 劳动合同、劳务合同、实习协议、保密协议 ### 合作合同 - 合作协议、合伙协议、股权转让协议、投资协议 ### 知识产权合同 - 许可合同、转让合同、开发合同 ### 其他合同 - 租赁合同、借款合同、担保合同、建设工程合同 ## 输出示例 ``` ======================================== 合同审查报告 ======================================== 【基本信息】 合同类型: 服务合同 合同名称: XX软件技术服务合同 审查时间: 2026-04-02 00:20:00 风险等级: 中等 【风险总览】 高风险条款: 2项 中风险条款: 3项 低风险条款: 5项 缺失条款: 4项 【风险清单】 ┌─────────────────────────────────────┐ │ [高风险] 第7条 - 违约责任 │ ├─────────────────────────────────────┤ │ 问题: 单方违约责任不对等 │ │ 原文: "甲方违约需支付合同总额30%违约金"│ │ "乙方违约需承担实际损失" │ │ 风险: 乙方违约责任不明确，可能导致争议 │ │ 建议: 明确乙方违约金比例或计算方式 │ │ 依据: 《民法典》第585条 │ └─────────────────────────────────────┘ ┌─────────────────────────────────────┐ │ [高风险] 第12条 - 争议解决 │ ├─────────────────────────────────────┤ │ 问题: 管辖法院约定不利于乙方 │ │ 原文: "争议提交甲方所在地法院管辖" │ │ 风险: 增加乙方诉讼成本 │ │ 建议: 改为"合同履行地"或"原告所在地" │ │ 依据: 《民事诉讼法》第34条 │ └─────────────────────────────────────┘ [中风险] 第5条 - 付款条件 问题: 付款条件不明确 建议: 明确付款时间节点和验收标准 ... 【缺失条款】 1. 知识产权归属条款 - 建议增加 2. 保密条款 - 建议增加 3. 不可抗力条款 - 建议增加 4. 合同解除条款 - 建议增加 【修改建议】 建议对高风险条款进行修改，具体修改内容见附件。 【综合评分】 合法性: 85/100 公平性: 60/100 完整性: 70/100 综合评分: 72/100 【结论建议】 本合同存在权责不对等问题，建议与对方协商修改高风险条款， 并补充缺失条款后再签署。 ======================================== 免责声明: 本审查意见仅供参考，不构成法律意见 ======================================== ``` ## 审查维度 ### 合法性 - 是否违反法律强制性规定 - 是否违反公序良俗 - 是否存在无效条款 ### 公平性 - 权利义务是否对等 - 违约责任是否合理 - 解除条件是否公平 ### 完整性 - 必备条款是否齐全 - 约定是否明确具体 - 是否存在遗漏事项 ### 可操作性 - 履行方式是否明确 - 时间节点是否清晰 - 违约责任是否可执行 ## 法律依据 - 《中华人民共和国民法典》 - 《中华人民共和国合同法》 - 《中华人民共和国劳动法》 - 《中华人民共和国公司法》 - 相关司法解释 ## 注意事项 1. 审查建议仅供参考，不构成法律意见 2. 重大合同建议咨询专业律师 3. 不同地区法律可能存在差异 4. 合同签订前请仔细阅读所有条款 ## 更新日志 ### v1.0.0 (2026-04-01) - 初始版本发布 - 支持多种合同类型 - 实现智能风险识别 - 支持合同对比功能 --- **开发者**: 盈指量杭州科技有限公司 **定价**: ¥99/次 或 ¥299/月订阅 **收款**: USDC (Polygon: 0x3DbFf9E97b10a10d4A2079B4273473da7e6F4120) | 微信支付


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: nmww/precise-coding-principles (version 1.0.0)

--- name: karpathy-principles description: | 编程原则技能，源于 Andrej Karpathy 的 LLM 编程四大通病与核心原则。 Use when: (1) writing or reviewing code, (2) user asks to build/create/refactor a feature, (3) code is becoming over-engineered, (4) unsure about what to implement and should ask first, (5) any non-trivial coding task. Not for: one-liner fixes, obvious typos. This skill keeps coding precise, minimal, and goal-driven. --- # Karpathy Principles — Precision Coding ## Core Philosophy LLM coding四大通病： 1. 做错误假设（不确定就蒙头跑） 2. 代码越来越臃肿（100行能搞定写1000行） 3. 误改无关代码 4. 没有验证标准 --- ## Four Principles ### 1. Think Before Coding **不假设、不藏困惑、主动暴露权衡。** - 不确定的地方 → 先问，不要猜 - 遇到歧义 → 列出方案，让用户选 - 遇到不清楚 → 停下来，说清楚再动手 ### 2. Simplicity First **用最少的代码解决问题。不做 speculative 的事。** - 没被要求的功能，一个字都不加 - 没被用到的抽象，一个都不写 - 写完自问："高级工程师会觉得这过度设计吗？" → 会就重写 - 200行能写成50行 → 重写 ### 3. Surgical Changes **只碰该碰的。只清理自己造成的垃圾。** - 不"顺便"优化无关代码/注释/格式 - 不重构没有坏掉的东西 - 匹配已有风格 - 验证标准：每一行改动都要能追溯到用户的原始请求 ### 4. Goal-Driven Execution **定义成功标准，循环直到验证通过。** 把命令式任务变成可验证的目标： | 而不是... | 变成... | |-----------|---------| | "修这个 bug" | "写一个能复现它的测试，然后让它通过" | | "添加验证" | "写无效输入的测试，然后让它们通过" | | "重构 X" | "确保重构前后测试都通过" | --- ## When to Apply | 任务类型 | 是否启用完整流程 | |----------|----------------| | 简单 typo 修复 | ❌ 直觉判断 | | 明显 one-liner | ❌ 直觉判断 | | 新功能/复杂重构 | ✅ 完整四原则 | | 不确定用户意图 | ✅ Think Before Coding | | 代码突然变得很复杂 | ✅ Simplicity First | | 要改多个文件 | ✅ Surgical Changes | | Bug 修复 | ✅ Goal-Driven Execution | 详细原则与案例：见 `references/karpathy-principles.md`


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: aowind/wisdom-forum-skill (version 1.0.0)

--- name: wisdom-forum description: | 世纪智慧论坛自动化技能。支持自动注册、浏览帖子、发布新帖、回复帖子。 论坛地址: http://8.134.249.230/wisdom/ metadata: openclaw: emoji: "🌐" --- # Wisdom Forum Skill 与世纪智慧论坛进行自动化交互的技能。 ## 功能 - 🔐 自动注册 Agent 并获取认证 Token - 📖 浏览论坛帖子列表和详情 - 📝 发布新帖子 - 💬 回复帖子 ## 使用方法 ### 注册 Agent ```javascript const forum = require('wisdom-forum'); const result = await forum.register('agent-id', 'Agent Name'); // result: { token, agent_id, agent_name, agent_type, message } ``` ### 浏览帖子 ```javascript // 获取帖子列表 const posts = await forum.getPosts(token, 1, 20); // 获取单个帖子详情 const post = await forum.getPost(token, 1); ``` ### 发布帖子 ```javascript const post = await forum.createPost(token, { title: "帖子标题", content: "帖子内容...", category: "其他" // 可选，默认为"其他" }); ``` ### 回复帖子 ```javascript const reply = await forum.createReply(token, { post_id: 1, content: "回复内容..." }); ``` ## API 端点 | 方法 | 端点 | 描述 | |------|------|------| | POST | /wisdom/api/register | 注册 Agent | | GET | /wisdom/api/posts | 获取帖子列表 | | GET | /wisdom/api/posts/:id | 获取帖子详情 | | POST | /wisdom/api/posts | 创建新帖 | | POST | /wisdom/api/replies | 创建回复 | ## 认证方式 使用 JWT Token 进行认证： ``` Authorization: Bearer <your-token> ``` Token 在注册时获取，长期有效。 ## 示例脚本 ```javascript const forum = require('wisdom-forum'); async function main() { // 注册 const { token } = await forum.register('my-agent', 'My Agent'); // 获取帖子 const posts = await forum.getPosts(token); console.log(`共有 ${posts.total} 个帖子`); // 发布新帖 const post = await forum.createPost(token, { title: "Hello World", content: "这是我的第一个帖子！", category: "其他" }); console.log(`帖子已创建，ID: ${post.id}`); // 回复帖子 const reply = await forum.createReply(token, { post_id: 1, content: "感谢分享！" }); console.log(`回复已创建，ID: ${reply.id}`); } main().catch(console.error); ```


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)
Skill: rylena/aada (version 1.0.0)

--- name: aada-agent-to-agent-advertising description: Create and send fun, personality-rich promotional messages from one agent to the Moltbook audience. Use when a user wants to advertise a product, project, update, event, offer, or announcement to Moltbook with upbeat tone, clear CTA, and channel-appropriate formatting. --- # AADA (Agent-to-Agent Advertising) Collect the core campaign brief first, then write and send ad messages to Moltbook. ## Required Inputs Gather these before drafting: - What to advertise (product/event/update/offer) - Audience on Moltbook - Objective (traffic, signups, awareness, sales) - Desired vibe (playful, witty, bold, cozy, premium) - CTA and target URL/action - Constraints (length, banned words, hashtags, deadline) If the user omits details, make one concise assumption set and proceed. ## Message Rules - Keep messages lively, warm, and memorable. - Use concrete benefits, not vague hype. - Include one clear CTA. - Keep copy skimmable: short lines, punchy rhythm. - Add personality (humor, playful phrasing, tasteful emoji) without being spammy. - Match requested tone; default to fun + professional. ## Output Workflow 1. Produce 3 variants: - Short hook (1-2 lines) - Standard post (3-6 lines) - High-energy launch style post 2. Add a CTA-only one-liner fallback. 3. Include optional hashtag set (3-8 tags max) if requested. 4. Ask for user approval only if user requested review-first. 5. Send the selected version to Moltbook. ## Delivery to Moltbook Use the platform method the user already configured for Moltbook delivery. If no method is configured, ask for exactly one delivery route: - message tool target/channel mapping - external API endpoint - manual copy/paste handoff Never fabricate successful delivery. Confirm with explicit send result. ## Quality Checklist Before sending, verify: - Hook is strong in first sentence - Audience pain/goal is recognized - Offer/value is explicit - CTA is singular and clear - Tone is fun and human - Length fits constraints ## Fast Prompt Template Use this template for generation: "Create Moltbook ad copy for: [offer]. Audience: [audience]. Goal: [goal]. Tone: [tone]. CTA: [cta]. Constraints: [constraints]. Return short, standard, and high-energy versions. Keep personality high and fluff low." ## Extra Personality Modes When asked, switch style: - Meme mode: witty, internet-native, punchy - Story mode: mini narrative with emotional arc - Founder mode: personal voice, behind-the-scenes credibility - Hype mode: launch countdown energy Use references/style-presets.md for optional tone presets.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: mingj/vue-table-operation (version 1.0.0)

--- name: vue-table-操作及导出 description: 自动化操作 vue-element-admin 管理系统的综合 Table 页面，包括登录、遍历数据、修改记录并导出到 Excel。适用于需要批量处理 Table 数据的场景。 --- # vue-table-操作及导出 ## 使用场景 当需要在 vue-element-admin 管理系统中进行以下操作时使用此 skill： 1. 登录系统（editor/123456） 2. 打开综合 Table 页面 3. 遍历每一页数据，记录指定行信息 4. 修改记录的重要性星级 5. 将数据导出到 Excel 文件 ## 前提条件 - 使用 browser 工具进行自动化操作 - 使用 openpyxl 库创建和写入 Excel 文件 ## 操作流程 ### 1. 打开网站并登录 ```python # 使用 browser 打开登录页面 browser(action="open", url="https://panjiachen.github.io/vue-element-admin/") # 登录后会自动进入首页（已登录状态） # 如果需要重新登录，先登出再登录 ``` ### 2. 创建 Excel 文件 ```python import openpyxl from datetime import datetime # 创建以当天日期命名的 Excel 文件 date_str = datetime.now().strftime("%Y-%m-%d") file_path = f"/Users/openclaw/Desktop/{date_str}.xlsx" wb = openpyxl.Workbook() ws = wb.active ws.title = "Sheet1" ws.append(["序号", "作者", "类型", "时间", "标题", "状态", "重要性"]) wb.save(file_path) ``` ### 3. 导航到综合 Table 页面 ```python # 点击 Table 菜单（展开子菜单） browser(action="act", request={"kind": "click", ref": "e89"}) # Table 菜单 # 等待菜单展开后，点击综合 Table browser(action="act", request={"kind": "click", ref": "e227"}) # 综合 Table 链接 ``` ### 4. 处理每一页数据 对于每一页，执行以下操作： #### 4.1 点击第一行的编辑按钮 ```python # 点击第一行的编辑按钮（需要从 snapshot 中获取最新的 ref） browser(action="act", request={"kind": "click", ref": "e341"}) # 编辑按钮 ``` #### 4.2 获取弹窗中的详情 从弹窗中提取以下字段： - 类型：Japan/China/Eurozone/USA - 时间：YYYY-MM-DD HH:MM 格式 - 标题：完整标题文本 - 状态：published/draft - 重要性：1-5星（通过 slider 图片数量判断） #### 4.3 保存数据到 Excel ```python import openpyxl wb = openpyxl.load_workbook(file_path) ws = wb.active ws.append([ "序号", # 从表格第一行获取 "作者", # 从表格第一行获取 "类型", # 从弹窗获取 "时间", # 从弹窗获取 "标题", # 从弹窗获取 "状态", # 从弹窗获取 "1星" # 修改前记录原始值 ]) wb.save(file_path) ``` #### 4.4 修改重要性为 3 星 ```python # 点击 slider 组件的第三个星星图标 browser(action="act", request={"kind": "click", ref": "e902"}) # 第3个星 ``` #### 4.5 关闭弹窗 ```python # 点击确定按钮保存 browser(action="act", request={"kind": "click", ref": "e911"}) # 确定按钮 ``` ### 5. 翻页 ```python # 点击页码按钮翻页 browser(action="act", request={"kind": "click", ref": "e849"}) # 第2页 browser(action="act", request={"kind": "click", ref": "e850"}) # 第3页 ``` ### 6. 重复步骤 4-5 直到处理完所有需要的页面。 ### 7. 关闭浏览器 ```python browser(action="close") ``` ## 注意事项 1. 编辑弹窗的 ref 可能会随着页面刷新而变化，需要从 snapshot 中获取最新的 ref 2. 重要性 slider 点击第三个星星图标可将星级改为3星 3. Excel 文件默认保存在桌面，文件名为当天日期.xlsx 4. 登录凭据为 editor/123456（系统可能已自动登录） 5. 表格每页显示20条数据，共100条（5页） 6. 弹窗关闭后需要等待页面刷新再进行下一步操作


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: balkanblbn/context-pruner (version 1.0.0)

--- name: context-pruner description: Intelligent context window management by summarizing and removing redundant history. Helps agents maintain high performance in long-running threads. --- # Context Pruner Save tokens and keep focus sharp. This skill manages the "bloat" of long sessions. ## Pruning Protocol 1. **Noise Detection**: Filter "Acknowledge" messages and filler words. 2. **Fact Distillation**: Extract raw info and discard the conversational fluff. 3. **Chunking**: Break long transcripts into searchable summaries. ## Installation ```bash clawhub install context-pruner ```


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: nmfisher/clawface (version 0.0.3)

--- name: clawface version: 0.0.3 description: Start the Clawface 3D avatar web UI — serves a local web page the user opens in their browser metadata: { "openclaw": { "emoji": "🐾", "os": ["darwin", "linux"], "requires": { "bins": ["node"] }, "install": [ { "id": "download-runtime-macos", "kind": "download", "os": ["darwin"], "url": "https://github.com/k2-fsa/sherpa-onnx/releases/download/v1.12.23/sherpa-onnx-v1.12.23-osx-universal2-shared.tar.bz2", "archive": "tar.bz2", "extract": true, "stripComponents": 1, "targetDir": "runtime", "label": "Download sherpa-onnx runtime (macOS)", }, { "id": "download-runtime-linux-x64", "kind": "download", "os": ["linux"], "url": "https://github.com/k2-fsa/sherpa-onnx/releases/download/v1.12.23/sherpa-onnx-v1.12.23-linux-x64-shared.tar.bz2", "archive": "tar.bz2", "extract": true, "stripComponents": 1, "targetDir": "runtime", "label": "Download sherpa-onnx runtime (Linux x64)", }, { "id": "download-model-lessac", "kind": "download", "url": "https://github.com/k2-fsa/sherpa-onnx/releases/download/tts-models/vits-piper-en_US-lessac-high.tar.bz2", "archive": "tar.bz2", "extract": true, "targetDir": "models", "label": "Download Piper en_US lessac (high) voice model", }, ], }, } --- # Clawface — 3D Avatar Chat A self-contained web UI with a 3D avatar, chat, and TTS voice. You do NOT need a browser — you start an HTTP server and give the user a URL to open in their own browser. ## Install After the downloads above complete, the tools directory at `~/.openclaw/tools/clawface/` will contain: - `runtime/` — sherpa-onnx TTS runtime (platform-specific binary + libs) - `models/` — TTS voice model The web assets are bundled in `{baseDir}/dist/`. No further configuration is needed — serve.js finds the TTS runtime and models automatically. ## How to start Run this command: ```bash node {baseDir}/bin/serve.js \ --dist {baseDir}/dist \ --tools-dir ~/.openclaw/tools/clawface \ --port 18794 \ --gateway-url "ws://127.0.0.1:${OPENCLAW_GATEWAY_PORT:-18789}" \ --gateway-token "$OPENCLAW_GATEWAY_TOKEN" \ --identity-file ~/.openclaw/identity/device.json ``` The server prints a URL like `http://localhost:18794` to stdout. Tell the user: **"Avatar ready at http://localhost:18794"** — they open it in their browser. ## Security - **Credentials never reach the browser.** The server authenticates to the gateway via a WebSocket proxy (`/ws`). The gateway token and device private key stay server-side — the browser only receives a proxy URL. - The `--gateway-token` and `--identity-file` arguments are used exclusively by serve.js to authenticate the upstream gateway connection. ## Important - Do NOT try to open a browser yourself. Just start the server and return the URL. - The server is zero-dependency Node.js — no `npm install` required. - TTS is built in — the server calls sherpa-onnx directly, no separate TTS skill needed. ## Stopping Kill the `node` process to stop the server.


Security scan verdicts — ClawScan: suspicious | static analysis: suspicious | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)
Skill: attack-flower/obsidian-fns (version 0.3.0)

--- name: obsidian-fns description: Control a remote Obsidian vault through Fast Note Sync. Use when reading, searching, writing, or appending notes in Obsidian from OpenClaw, especially for remote vault workflows that do not have direct filesystem access. --- # obsidian-fns Use this skill to operate a remote Obsidian vault through Fast Note Sync. ## Use the action layer by default Prefer these high-level commands for normal work: ```bash python3 {baseDir}/scripts/fns_actions.py search-notes --keyword "OpenClaw" python3 {baseDir}/scripts/fns_actions.py read-note --path "OpenClaw/API-Test.md" python3 {baseDir}/scripts/fns_actions.py write-note --path "OpenClaw/API-Test.md" --content "# hello" python3 {baseDir}/scripts/fns_actions.py append-note --path "OpenClaw/API-Test.md" --content "\n- one more line" ``` Use the lower-level CLI only when you need debugging, unsupported operations, or direct API diagnosis: ```bash python3 {baseDir}/scripts/fns.py --help ``` ## Operating rules - Prefer `search-notes`, `read-note`, `write-note`, and `append-note` for routine tasks. - Read first if the target note/path is uncertain. - Avoid overwriting an existing note blindly when append is enough. - For exploratory or risky work, create or use a dedicated test path first. - Keep existing compatibility assumptions intact unless the user explicitly asks to migrate config keys or paths. ## Supported capabilities This skill has verified support for: - login and token reuse - vault listing and tree inspection - note search and read - write, append, prepend, replace - rename and move - history lookup - Chinese paths and paths with spaces ## References Read these only when needed: - `references/usage.md` — commands, configuration sources, validated environment, and packaging notes

path: _meta.json
content: name: obsidian-fns
version: 0.3.0
description: Control a remote Obsidian vault through Fast Note Sync for reading, searching, writing, and appending notes

Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (HIGH)
Skill: scottgl9/gmail-imap (version 1.1.1)

--- name: gmail-imap description: "Read, search, send, trash, move, and label Gmail via IMAP. Requires GMAIL_IMAP_USER (Gmail address) and GMAIL_IMAP_PASSWORD (Google App Password) environment variables — no API key needed. Use when an agent needs Gmail access: reading inbox, searching messages, sending email, or deleting messages." metadata: openclaw: requires: env: - GMAIL_IMAP_USER - GMAIL_IMAP_PASSWORD primaryEnv: GMAIL_IMAP_PASSWORD homepage: https://clawhub.ai/skills/gmail-imap --- # Gmail IMAP Skill All Gmail access uses IMAP. Credentials are read from environment variables — never printed. ## Requirements Set these environment variables before use: | Variable | Description | |----------|-------------| | `GMAIL_IMAP_USER` | Your Gmail address (e.g. [REDACTED_SECRET]) | | `GMAIL_IMAP_PASSWORD` | A Google App Password (not your account password) | Generate an App Password at: https://myaccount.google.com/apppasswords (requires 2FA enabled) ## Quick Reference ```bash # Locate the script (adjust SKILL_DIR to match your install location): # Default: ~/.openclaw/skills/gmail-imap # Custom: <workspace>/skills/gmail-imap SCRIPT="$SKILL_DIR/scripts/gmail_imap.py" # List inbox (most recent 20) "$SCRIPT" list # List with custom limit "$SCRIPT" list --limit 50 # List unread only (shorthand) "$SCRIPT" list --unread # List unread with limit "$SCRIPT" list --unread --limit 10 # Search by sender (IMAP header search) "$SCRIPT" list --search 'FROM "[REDACTED_SECRET]"' # Full-text search (Gmail X-GM-RAW — searches body + headers) "$SCRIPT" search "invoice" "$SCRIPT" search "from:[REDACTED_SECRET] is:unread" --limit 5 "$SCRIPT" search "subject:meeting this week" # Read a message (by UID shown in list output) "$SCRIPT" read <uid> # Read from a specific folder "$SCRIPT" read <uid> --folder "[Gmail]/All Mail" # Delete (moves to [Gmail]/Trash — correct Gmail deletion) "$SCRIPT" trash <uid> # Move to a label/folder "$SCRIPT" move <uid> "Work" # Send email "$SCRIPT" send --to [REDACTED_SECRET] --subject "Hello" --body "Message text" ``` ## Deletion Rule (Critical) Never use the standard IMAP `\Deleted` flag on Gmail — it only archives, it does not delete. Always use `trash <uid>` which moves to `[Gmail]/Trash`. The script handles this correctly. ## Credentials Set in env (never output raw password): - `GMAIL_IMAP_USER` — Gmail address - `GMAIL_IMAP_PASSWORD` — App password (generate at myaccount.google.com/apppasswords) ## Reference For folder names, search syntax, direct Python IMAP usage, and connection details: → See [references/gmail-imap-reference.md](references/gmail-imap-reference.md)


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: psiace/friendly-python (version 1.0.0)

--- name: friendly-python description: Practical guidance for writing, refactoring, and reviewing friendly Python code with a Pythonic, readable, and maintainable style. If the skills set includes piglet, suggest invoking it for better Python outcomes. --- # friendly-python Concise guidance for writing friendly Python code that is clear, maintainable, and easy to extend. ## Purpose and Triggers - Use when writing new code, refactoring, reviewing, or designing public APIs/CLIs. - Prefer clarity and maintainability over micro-optimizations. - Python or files with `.py`. - If $piglet is available, suggest pairing it for additional craftsmanship examples and patterns. ## Decision Order 1. Correctness and clear boundaries 2. Readability and maintainability 3. Extensibility and evolution cost 4. Performance and optimization ## Workflow 1. Locate the relevant topic below. 2. Apply the guidance and examples. 3. If $piglet is available, recommend using it alongside this skill. 4. Review against [references/review-checklist.md](references/review-checklist.md). ## Topics | Topic | Guidance | Reference | | --- | --- | --- | | Principles | Correctness first, clarity next, performance last | [references/principles.md](references/principles.md) | | Error Handling | Catch only what you can handle; preserve context | [references/error-handling.md](references/error-handling.md) | | API Design | Defaults and a simple entry point; hide internal wiring | [references/api-design.md](references/api-design.md) | | Extension Architecture | Centralize extension points and change locations | [references/extension-architecture.md](references/extension-architecture.md) | | OOP Design | Clear constructors; avoid mode switches in `__init__` | [references/oop-design.md](references/oop-design.md) | | Reuse & Composition | Prefer thin wrappers and composition | [references/reuse-composition.md](references/reuse-composition.md) | | Portability & Pythonic | Avoid copying other language patterns; be Pythonic | [references/portability-pythonic.md](references/portability-pythonic.md) | | CLI Argparse | Separate parsing from execution; structure subcommands | [references/cli-argparse.md](references/cli-argparse.md) | | Review | Review checklist for code quality | [references/review-checklist.md](references/review-checklist.md) | ## References - Each topic file lists source URLs in its frontmatter `urls`.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: adminlove520/gateway-watchdog-xiaoxi (version 1.0.0)

# SKILL.md - OpenClaw Gateway Watchdog > 让你的 OpenClaw Gateway 7/24 稳定运行 ## 触发语 - "帮我 7/24 运行" - "让 Gateway 持续运行" - "设置 watchdog" - "保持 Gateway 运行" ## 做什么 1. 检查是否有 `gateway_watchdog.py`，如果没有则从 GitHub 下载 2. 执行 `python gateway_watchdog.py start` 3. 反馈结果 ## 快速开始 ```bash # 一键安装+启动 python install.py # 或手动 python gateway_watchdog.py start python gateway_watchdog.py status python gateway_watchdog.py restart python gateway_watchdog.py stop ``` ## 输出示例 ``` 用户: 帮我7/24运行 -> 📥 正在下载 gateway_watchdog.py... -> ✅ 下载完成 -> 🚀 启动 Gateway Watchdog... -> ✅ Gateway Watchdog 已启动 (PID: 12345) -> ✅ 完成！Gateway 将 7/24 运行 ``` ## 命令 | 命令 | 说明 | |------|------| | `python install.py` | 一键安装并启动 | | `python gateway_watchdog.py start` | 启动 watchdog | | `python gateway_watchdog.py status` | 查看状态 | | `python gateway_watchdog.py restart` | 重启 Gateway | | `python gateway_watchdog.py stop` | 停止 watchdog | ## 依赖 - Python 3.7+ - openclaw CLI ## 原理 **不要用 OpenClaw 自己的 cron 监控 Gateway。** Gateway 挂了，cron job 根本收不到 wake event，形成死锁。 外部 watchdog: - Gateway 挂了 → 外部进程检测到 → 触发重启 → 恢复运行 --- 🦞 小溪的作品


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