OpenClaw/clawhub-security-signals huggingface dataset:
Skill: webcraft3r/consortiumai-create-account (version 1.0.0)

--- name: consortium-ai-create-account displayName: Consortium AI Create Account description: Create a custodial wallet account on Consortium AI. requirements: TRADING_ANALYSIS_API_KEY author: Consortium AI authorUrl: https://consortiumai.org/ keywords: ["crypto", "wallet", "create", "account", "custodial", "API"] category: trading --- ## Instructions This skill provides **account creation** functionality for Consortium AI. It calls an external API that creates a custodial wallet account on Consortium AI. ### How to run (implementation) From the skill directory, you can call the API either by making HTTP requests (see API Reference) or by running the bundled script: - **Create Account:** `node scripts/create-account.js <WALLET_ADDRESS>` or `npm run create-account -- <WALLET_ADDRESS>` Example: `node scripts/create-account.js 5h4...3k1` The script requires `TRADING_ANALYSIS_API_KEY` to be set. It prints the API response as JSON to stdout on success, or error JSON to stderr and exits non-zero on failure. --- ## Setup Set the API key as an environment variable before using this skill: ```bash export TRADING_ANALYSIS_API_KEY=your-secret-api-key ``` To get an API key, contact [Consortium AI on X](https://x.com/Consortium_AI). --- ## API Reference **Backend API base URL:** `https://api.consortiumai.org` **Endpoint:** `POST https://api.consortiumai.org/api/custodial-wallet/create-with-api-key` Creates a new custodial wallet account. ### Authentication API key only (no JWT). Send the key in one of: - **Header:** `x-[REDACTED_SECRET]` - **Header:** `Authorization: Bearer <TRADING_ANALYSIS_API_KEY>` ### Request Body ```json { "walletAddress": "5h4...YourWalletAddress...3k1" } ``` ### Success response (201 Created) ```json { "message": "Custodial wallet created successfully", "data": { "id": "wallet_uuid", "wallet_address": "GeneratedCustodialWalletAddress", "user_id": "user_uuid", "created_at": "2024-03-20T10:00:00.000Z", "updated_at": "2024-03-20T10:00:00.000Z" } } ``` ### Error responses | Status | When | Body (example) | |--------|------|----------------| | **400** | Missing walletAddress | `{ "error": "Missing walletAddress" }` | | **401** | Missing or wrong API key | `{ "success": false, "message": "Invalid or missing API key" }` | | **404** | User not found for wallet address | `{ "error": "User not found for the provided wallet address" }` | --- ## Available Functions ### createCustodialWallet(walletAddress) **Purpose** Create a new custodial wallet account on Consortium AI. **Parameters** - `walletAddress` (string): The user's wallet address. **Expected Behavior** - Sends a POST request to `https://api.consortiumai.org/api/custodial-wallet/create-with-api-key` - Authenticates with `x-api-key` using `TRADING_ANALYSIS_API_KEY` - Returns the created wallet details. **Returns** - Wallet ID - Generated Custodial Wallet Address - User ID - Creation timestamp


Security scan verdicts — ClawScan: clean | static analysis: suspicious | VirusTotal: suspicious | SkillSpector: clean (LOW)
Skill: qwertyu7894/memory-bridge (version 1.0.0)

# memory-bridge Skill > **新会话重启后，AI 还知道上次在聊什么。** > > 装一次，记忆永远在。不会因为重启窗口就全忘了。 触发关键词："初始化记忆"、"开启记忆"、"记忆系统"、"帮我建记忆"、"让AI记住我" --- ## 这是什么 这是一个让 AI 拥有持久记忆的技能。 **核心价值：** 即使开新会话、清上下文，AI 也能通过记忆文件知道： - 你是谁 - 上次在聊什么 - 任务做到哪一步了 **我们不碰：** 你已有的人设（SOUL.md）、行为规范（AGENTS.md）、工具配置（TOOLS.md） --- ## 如何使用 ### 安装 ```bash clawhub install memory-system ``` ### 启动（自动的！） 装完后**不用手动启动**，AI 下次唤醒时会自动检测： ``` 检测到 MEMORY.md 不存在 → 主动引导用户初始化（问"我来帮你建好吗？"） 检测到 MEMORY.md 已存在 → 自动读取索引（10行以内） → 知道：你是谁、在做什么 → 主动告诉你"我记得你..." ``` **你只需要：开新窗口，AI 就会自动帮你搞定。** ### 手动触发（如果需要） 如果 AI 没有自动启动，你可以手动触发： ``` 对我说："初始化记忆系统" 或 "帮我开启记忆" ``` --- ## 首次激活（引导式） 当你被唤醒，发现 workspace 中没有 `MEMORY.md` 时： ### 第一步：说明价值 > 🤍 你好！我发现你还没有开启记忆系统。 > > 现在每次新会话，AI 就把之前聊过的东西全忘了。 > 开了记忆系统之后就不一样了—— > **即使你开新窗口，我也能知道上次在聊什么。** > > 我来帮你建好吗？ ### 第二步：逐步构建 ``` Step 1 - 建索引文件 检查 ~/.openclaw/workspace/MEMORY.md → 不存在：从 templates/MEMORY.md 复制 → 已存在：跳过 Step 2 - 建记忆目录 检查 ~/.openclaw/workspace/memory/ → 不存在：创建目录，复制模板文件 → 已存在：跳过 Step 3 - 建学习记录目录 检查 ~/.openclaw/workspace/.learnings/ → 不存在：创建目录，复制模板文件 → 已存在：跳过 Step 4 - 建用户档案（如果还没有） 检查 ~/.openclaw/workspace/USER.md → 不存在：从 templates/USER.md 复制 → 已存在：跳过 ``` ### 第三步：完成 > ✅ 记忆系统已就绪！ > 试试看：开一个新窗口，问我"我们上次在聊什么？" --- ## 每次新会话的执行流程 这是本 skill 的核心——每次 AI 醒来都执行这套流程： ``` 1. 读取 MEMORY.md（索引，8行以内） → 知道：用户是谁、偏好是什么、当前任务在哪 2. 检查是否有当前任务 → 如果索引里有 "当前任务：memory/current-handoff.md" → 读取 current-handoff.md → 知道：在做什么、进度如何、下一步是什么 3. 检查是否有最近教训 → 如果索引里有 "教训/错误：.learnings/" → 读取 .learnings/ERRORS.md（只读前20行） → 知道：之前踩过什么坑 4. 主动告知主人 → "我记得你叫xxx，上次我们在聊xxx，继续吗？" ``` --- ## 日常对话中的记录规则 当发生以下情况时，写入对应文件： | 发生了什么 | 写入哪里 | |-----------|---------| | 主人说了一个偏好 | MEMORY.md 的"偏好"行 | | 主人开始新任务 | memory/current-handoff.md | | 主人纠正了我的错误 | .learnings/ERRORS.md | | 主人教了我新东西 | .learnings/LEARNINGS.md | | 遇到重要的人/项目/工具 | memory/entities.md | ### 精简原则 > **记忆不是写日记，是建索引。** - MEMORY.md 保持在 **10 行以内**（这是唯一自动加载的文件） - 其他文件按需读取，写多少都不影响初始 token - 过时信息主动清理 --- ## 文件结构 ``` ~/.openclaw/workspace/ ├── MEMORY.md ← 索引（新会话唯一自动加载的，8行） ├── USER.md ← 用户档案（按需读取） ├── memory/ │ ├── current-handoff.md ← 任务卡（按需读取） │ ├── entities.md ← 人物/项目/工具（按需读取） │ ├── SESSION-STATE.md ← 临时日志 │ └── working-buffer.md ← 上下文缓冲 └── .learnings/ ├── LEARNINGS.md ← 教训（按需读取） ├── ERRORS.md ← 错误（按需读取） └── FEATURE_REQUESTS.md ← 功能需求 ``` **只有 MEMORY.md 在新会话时自动加载，其他全部按需读取。**


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)
Skill: milesnee/dolores-ops (version 1.1.0)

--- name: openclaw-ops description: | OpenClaw 运维工具 - 负责 AI 助手自身的日常运维工作。 包括：健康检查、Memory 同步、目录清理、日志管理、定时任务管理。 when_to_use: | 当用户说"维护你自己"、"清理工作目录"、"设置定时任务"、"健康检查"、 "同步记忆"、"清理临时文件"时使用此技能。 argument-hint: <daily|weekly|memory|cleanup|status> allowed-tools: [exec, read, write, edit, sessions_list] user-invocable: true --- # OpenClaw Ops - AI 助手日常运维 ## Goal 帮助 AI 助手保持自身运维的规律性，确保系统健康运行，并持续沉淀与用户的交互记忆。 ## Steps ### 1. 每日健康检查 **触发**：每天 8:00 (via cron) 或 heartbeat 1. 执行 `openclaw gateway status` 检查 Gateway 状态 2. 检查配置警告 3. 检查 `/tmp/openclaw/openclaw-*.log` 有无 ERROR 4. 检查 Token 使用情况（`session_status`） **异常处理**： - Gateway 不运行 → 执行 `openclaw gateway start` - 有 ERROR 日志 → 报告给用户 - Token 使用 > 80% → 提醒用户切换模型 ### 2. Memory 同步 **触发**：每天 21:00 (via heartbeat) 1. 回顾当天对话记录（`sessions_history`） 2. 提取重要事项写入 `memory/YYYY-MM-DD.md` 3. 判断是否有值得沉淀到 `MEMORY.md` 的内容 4. 检查是否有未完成的承诺/待办 **写入规范**： - 只记录重要事项（用户偏好、承诺、决定） - 不记录琐碎对话 - 用简洁语言，每条不超过一句话 ### 3. 目录清理 **触发**：每周五下午 或 用户明确要求 1. 列出 workspace 目录 2. 识别可清理的文件： - 临时文件：`*.tmp`, `*.temp`, `*.log.old` - 压缩包：`*.tar.gz`, `*.zip`（非项目源码） - 空目录 3. **删除前必须确认**（用户要求除外） **安全规则**： - ❌ 不删除：`.git`, `memory`, `skills`, `.openclaw` 目录 - ❌ 不删除：`MEMORY.md`, `USER.md`, `SOUL.md`, `AGENTS.md` - ❌ 不删除用户文件 - ✅ 删除前列出示意图 ### 4. 日志管理 **触发**：每周五 1. 检查日志大小：`du -sh /tmp/openclaw/` 2. 清理超过 30 天的旧日志 3. 归档重要日志（如配置变更记录） ### 5. 定时任务管理 **触发**：用户要求查看或创建 cron 任务 **查看**：`openclaw cron list` **创建**： ```bash openclaw cron create --name "task-name" --cron "0 8 * * *" --system-event "healthcheck" ``` **常用 Cron**： - 每天 8 点：`0 8 * * *` - 每天 21 点：`0 21 * * *` - 每周五：`0 17 * * 5` ## Rules - 定时任务（cron）创建后告知用户任务 ID - 删除操作必须先确认再执行 - Memory 写入用简洁语言 - 异常情况立即报告给用户 - 不修改用户配置，只做运维操作 ## 输出格式 完成任务后，简洁汇报： ``` ✅ 早间健康检查完成 - Gateway: 运行中 (pid 44380) - 配置警告: 1 个 (clawbnb-hub 已禁用) - 日志: 无 ERROR ✅ Memory 同步完成 - 今日记录: 3 条 - 待沉淀: 1 条（关于用户偏好） ``` ## Heartbeat 配置示例 在 `HEARTBEAT.md` 中添加： ```markdown ## 🤖 日常运维任务 ### 1. 早间健康检查 (08:00-09:00) - 检查 Gateway 状态 - 检查配置警告 - 检查日志 ERROR ### 2. 晚间 Memory 同步 (21:00-22:00) - 回顾当天对话，写入 memory/YYYY-MM-DD.md - 更新 MEMORY.md 重要事项 ### 3. 每周五下午：周度清理 - 清理临时文件 - 检查过期日志 - 检查 cron 任务状态 ```


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: djmarkd38/clawdhub-1-0-0 (version 1.0.0)

--- name: clawdhub description: Use the ClawdHub CLI to search, install, update, and publish agent skills from clawdhub.com. Use when you need to fetch new skills on the fly, sync installed skills to latest or a specific version, or publish new/updated skill folders with the npm-installed clawdhub CLI. metadata: {"clawdbot":{"requires":{"bins":["clawdhub"]},"install":[{"id":"node","kind":"node","package":"clawdhub","bins":["clawdhub"],"label":"Install ClawdHub CLI (npm)"}]}} --- # ClawdHub CLI Install ```bash npm i -g clawdhub ``` Auth (publish) ```bash clawdhub login clawdhub whoami ``` Search ```bash clawdhub search "postgres backups" ``` Install ```bash clawdhub install my-skill clawdhub install my-skill --version 1.2.3 ``` Update (hash-based match + upgrade) ```bash clawdhub update my-skill clawdhub update my-skill --version 1.2.3 clawdhub update --all clawdhub update my-skill --force clawdhub update --all --no-input --force ``` List ```bash clawdhub list ``` Publish ```bash clawdhub publish ./my-skill --slug my-skill --name "My Skill" --version 1.2.0 --changelog "Fixes + docs" ``` Notes - Default registry: https://clawdhub.com (override with CLAWDHUB_REGISTRY or --registry) - Default workdir: cwd; install dir: ./skills (override with --workdir / --dir) - Update command hashes local files, resolves matching version, and upgrades to latest unless --version is set

path: _meta.json
content: ownerId: kn70pywhg0fyz996kpa8xj89s57yhv26
slug: clawdhub
version: 1.0.0
publishedAt: 1767545308330

Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: suspicious | SkillSpector: clean (LOW)
Skill: elie222/inbox-zero-api (version 2.29.2)

--- name: inbox-zero-api description: Use the Inbox Zero API CLI to inspect the live API schema, list and manage automation rules, and read inbox analytics through the public API. Use this when a task involves Inbox Zero rules, stats, or API-driven automation and can be solved through the CLI instead of browser interaction. homepage: https://www.getinboxzero.com/api-reference/cli metadata: { "openclaw": { "skillKey": "inboxZeroApi", "requires": { "bins": ["inbox-zero-api"], "env": ["INBOX_ZERO_API_KEY"] }, "primaryEnv": "INBOX_ZERO_API_KEY", "install": [ { "id": "node", "kind": "node", "package": "@inbox-zero/api", "bins": ["inbox-zero-api"], "label": "Install Inbox Zero API CLI (npm)" } ] } } --- # Inbox Zero API CLI Use this skill when the task is to inspect or change Inbox Zero state through the public API. ## Workflow 1. Prefer `--json` so the output is stable and machine-readable. 2. Keep credentials in `INBOX_ZERO_API_KEY` or OpenClaw skill config. Avoid passing API keys as CLI flags unless there is no alternative. 3. Before creating or replacing a rule body, fetch the live schema with `inbox-zero-api openapi --json`. 4. For create and update flows, write JSON into a workspace file or pipe it on stdin. 5. Treat `rules update` as a full replacement. Read the current rule first if you only intend to change part of it. ## Quick Start ```bash inbox-zero-api rules list --json inbox-zero-api stats by-period --period week --json inbox-zero-api openapi --json ``` If the CLI is not installed yet, install it with the OpenClaw installer or run `npm install -g @inbox-zero/api`. ## OpenClaw Config Set the API key in `~/.openclaw/openclaw.json` under `skills.entries.inboxZeroApi.apiKey`, or export `INBOX_ZERO_API_KEY` in the host environment. Use `INBOX_ZERO_BASE_URL` or `inbox-zero-api config set base-url <url>` only for self-hosted or nonstandard deployments. ## Reference For exact command patterns and a safe mutation flow, read `references/cli-reference.md`.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: waleychenyue/test-skill-by-waleychenyue (version 1.0.0)

--- name: test-skill description: 这是一个测试技能，用于研究ClawHub发布流程。 --- # 测试技能 这是一个用于测试ClawHub发布流程的技能。 ## 功能 - 测试技能发布流程 - 验证技能结构要求 - 研究元数据配置 ## 使用方法 ``` - 测试技能功能 - 验证发布流程 - 检查技能质量 ``` ## 元数据 - 版本: 1.0.0 - 作者: @waleychenyue - 创建时间: 2026-04-06 - 技能类型: 测试


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: jirboy/research-paper-writer-jirboy (version 1.0.0)

--- name: research-paper-writer description: [已整合] 研究论文写作已整合到 paper 统一入口技能 argument-hint: "[论文主题]" --- # ⚠️ 已整合 - 请使用 paper 统一入口 > **本技能保留用于向后兼容，功能已整合到 `paper` 统一入口技能** > > **推荐使用：** `paper write [章节] [主题]` 或直接使用本技能（自动转发） --- # Research Paper Writer（兼容层） Creates formal academic research papers following IEEE/ACM formatting standards. ## 迁移指南 **新用法：** ``` paper write introduction 振动控制 paper write related work RTHS paper write methods 深度学习 ``` **旧用法（仍然可用）：** ``` write introduction 振动控制 ``` ## Standard Paper Structure 1. Title and Abstract 2. Introduction 3. Related Work / Background 4. Methodology / Approach 5. Implementation (if applicable) 6. Evaluation / Experiments / Results 7. Discussion 8. Conclusion ## Formatting Standards - IEEE format - Electrical engineering, computer science - ACM format - Computer science - ASCE format - Civil engineering - Elsevier - General journals


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: wangshengli0421/tianshu-abstract-fit (version 1.0.0)

--- name: tianshu-abstract-fit description: > 检查中英文摘要大致字数，并按句子顺序粗略填入「背景—方法—结果—结论」四栏草稿（启发式分段，需人工改写）。 Use when: 写毕业论文/课程报告摘要；用户说「摘要结构」「摘要超字数」「四段摘要」。 NOT for: 自动投稿或一键生成终稿摘要。 metadata: openclaw: primaryEnv: "" --- # 摘要字数与结构槽位 ## Workflow ```bash node ~/.openclaw/skills/tianshu-abstract-fit/scripts/abstract_fit.js --file abstract.txt node scripts/abstract_fit.js --text "全文…" --max 300 ``` ## 参数 - `--max`：建议上限（按字符数粗略统计），默认 `300` - `--file` / `--text`：二选一 ## Output 字数统计 + 四段 Markdown 引用块，便于复制到学校模板中润色。

path: clawhub.json
content: {
  "name": "Tianshu Abstract Fit",
  "tagline": "摘要字数与四段结构槽位",
  "description": "Count abstract length and split into 背景/方法/结果/结论-style slots for Chinese thesis abstracts.",
  "category": "utility",
  "tags": ["student", "摘要", "论文", "毕业设计", "tianshu"],
  "version": "1.0.0",
  "license": "MIT",
  "pricing": "free"
}


path: package.json
content: name: tianshu-abstract-fit-skill
private: yes
type: commonjs

path: scripts/abstract_fit.js
content: #!/usr/bin/env node
const fs = require('fs');
const path = require('path');

function parseArgs() {
  const a = process.argv.slice(2);
  const o = { file: null, text: null, max: 300 };
  for (let i = 0; i < a.length; i++) {
    if ((a[i] === '--file' || a[i] === '-f') && a[i + 1]) o.file = a[++i];
    else if ((a[i] === '--text' || a[i] === '-t') && a[i + 1]) o.text = a[++i];
    else if ((a[i] === '--max' || a[i] === '-m') && a[i + 1]) o.max = parseInt(a[++i], 10) || 300;
  }
  return o;
}

function readIn(o) {
  if (o.file) {
    const p = path.resolve(o.file);
    if (!fs.existsSync(p)) {
      console.error('文件不存在:', p);
      process.exit(1);
    }
    return fs.readFileSync(p, 'utf-8').replace(/^\uFEFF/, '').trim();
  }
  if (o.text) return o.text.trim();
  console.error('用法: node abstract_fit.js --file p | --text "…" [--max 300]');
  process.exit(1);
}

function sentences(s) {
  return s
    .replace(/\n/g, ' ')
    .split(/(?<=[.。!！?？;；])\s*/)
    .map((x) => x.trim())
    .filter(Boolean);
}

function main() {
  const o = parseArgs();
  const body = readIn(o);
  const chars = [...body.replace(/\s/g, '')].length;
  const sens = sentences(body);
  const n = sens.length;
  const i1 = Math.max(1, Math.ceil(n * 0.25));
  const i2 = Math.max(i1 + 1, Math.ceil(n * 0.5));
  const i3 = Math.max(i2 + 1, Math.ceil(n * 0.75));
  const bg = sens.slice(0, i1).join('');
  const method = sens .slice(i1, i2).join('');
  const result = sens.slice(i2, i3).join('');
  const concl = sens.slice(i3).join('') || '（结论句不足请手填）';

  const out = [];
  out.push('## 摘要结构草稿（启发式）\n');
  out.push(`- **去空白字数约：** ${chars}（建议上限 ${o.max}，仅作提示）`);
  out.push(chars > o.max ? `- **提示：** 超过建议上限，可在「结果」或「背景」中压缩从句。\n` : '\n');
  out.push('### 背景与问题\n> ' + bg);
  out.push('\n### 方法\n> ' + (method || '（请补）'));
  out.push('\n### 结果\n> ' + (result || '（请补）'));
  out.push('\n### 结论\n> ' + concl);
  out.push('\n---\n*分段按句序比例切分，正式提交前请按学院格式重写。*');
  process.stdout.write(out.join('\n') + '\n');
}

main();


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: lijinhongucl-pixel/podcast-article (version 1.0.1)

--- name: podcast-article description: > 播客文章生成器。将播客内容（音频文字稿、节目链接、摘要笔记）转化为结构清晰、适合发布的图文文章。 支持多种输出风格（深度解析、精华摘要、对话体重构、社交媒体切片）和多种输出格式（Markdown、微信公众号、知乎、企业内刊）。 触发词：播客文章、播客转文章、podcast to article、podcast article、把播客整理成文章、帮我写播客稿、节目文字版、播客总结文章。 当用户提供播客链接、音频转录文本、播客嘉宾对话记录、节目笔记，或要求将播客内容二次创作为可读文章时，均应触发此 Skill。 --- # Podcast Article Generator（播客文章生成器） 将播客音频内容高效转化为结构清晰、可直接发布的优质图文文章。 ## 快速开始 ### 步骤 1：收集输入素材 用户提供以下任意一种（或组合）： - **音频文字稿**：自动转录或手动整理的对话文本 - **播客链接**：节目 URL（需先用 `browser-use` 或 `realtime-search` 抓取内容） - **摘要笔记**：用户自己整理的关键点 - **章节时间戳**：如有，用于结构化提取 若用户仅提供链接，优先用 `realtime-search` 获取节目简介与摘要；若需抓取完整文字稿，使用 `browser-use` Skill。 ### 步骤 2：分析内容，澄清关键参数 在生成文章前，根据可推断的信息智能填充默认值，**不足时**再问用户以下问题（一次性问完，不分多轮）： | 参数 | 默认值 | 说明 | |------|--------|------| | 输出风格 | 深度解析 | 见下方风格说明 | | 目标平台 | Markdown | 见下方平台说明 | | 目标读者 | 通用读者 | 影响专业术语密度 | | 文章长度 | 1500~2500字 | 可指定短文/长文 | | 是否保留嘉宾名字 | 是 | 访谈类可能需隐去 | ### 步骤 3：生成文章 按所选风格和平台规范生成文章，输出包含： 1. **标题**（主标题 + 可选副标题） 2. **导语**（100字内，概述核心价值） 3. **正文**（按结构模板展开） 4. **金句摘录**（3~5条，可用于配图文案） 5. **延伸阅读 / 行动建议**（可选） ### 步骤 4：保存产出物 1. 调用 `date-calculator` Skill 获取当前日期（格式 `YYYYMMDD`），严禁自行推算。 2. 在产出物目录下新建任务子文件夹，命名格式：`<播客名称>_article_<日期>`（日期来自上一步）。 3. 将最终文章写入该子文件夹的 `article.md`。 --- ## 输出风格说明 详见 `references/styles.md` 简要速查： - **深度解析**：提炼核心论点，加入背景补充与作者点评 - **精华摘要**：要点列表 + 一句话核心洞见，适合碎片阅读 - **对话体重构**：保留 Q&A 形式，精炼冗余表达，增强可读性 - **社交媒体切片**：拆分为 3~5 条独立短内容，适合微博/朋友圈 ## 平台规范说明 详见 `references/platforms.md` 支持平台：`markdown` / `wechat`（微信公众号）/ `zhihu`（知乎）/ `newsletter`（企业内刊）/ `webpage`（HTML 网页，可直接浏览器打开） 选择 `webpage` 时，读取 `assets/template.html`，将文章内容填入模板，输出完整 HTML 文件，保存至产出物目录下的 `article.html`。 ## 质量检查清单 生成文章后，自检以下项目再输出： - [ ] 标题吸引人且准确反映核心内容 - [ ] 导语在前3句内抓住读者 - [ ] 正文层次清晰，段落不超过200字 - [ ] 专业术语已在首次出现时简短解释 - [ ] 无口语化赘词（"然后就是"、"嗯"、"其实"等） - [ ] 金句原汁原味，未被过度改写 - [ ] 文末有清晰的收尾或行动号召


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: jiwenbing/campaign-writer (version 1.0.0)

--- name: campaign-writer version: 1.0.0 description: Write compelling crowdfunding and fundraising campaign copy including titles, descriptions, story narratives, and social media posts. Use when users need to create fundraising content for platforms like GoFundMe, 轻松筹, 水滴筹, or charity drives. --- # Campaign Writer Craft persuasive fundraising campaign content that moves people to donate. Generate campaign titles, emotional narratives, goal justifications, and platform-specific copy for crowdfunding and charity campaigns. ## When to Use - User needs to write a crowdfunding campaign description - User wants help creating a fundraising story or narrative - User needs social media posts to promote their fundraiser - User asks how to write a compelling donation appeal - User wants to improve an existing campaign's copy ## How to Use 1. Gather campaign basics: cause, beneficiary, fundraising goal, deadline, platform 2. Ask for the human story behind the need (the most compelling element) 3. Write: attention-grabbing title, emotional opening, clear situation description, specific ask, call to action 4. Generate 3 social media posts (short, medium, long) for sharing 5. Adapt tone to cause type (medical emergency vs. community project vs. education) 6. Include specific details (names, amounts, timeline) to build trust ## Examples - "Help me write a GoFundMe for my friend's cancer treatment" - "I need a fundraising campaign description for a school library project" - "Write social media posts to share my charity fundraiser"


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: coolhitbird/clawphone (version 1.1.1)

# ClawPhone Skill **一句话**: 为 OpenClaw Agent 提供类似 ICQ 的即时通讯能力——注册 13 位数字号码、呼叫、接收通知。 --- ## 🎯 核心功能 - **注册号码**: `phone.register("xiaoxin")` → `"9900778313722"` (13 位随机数字) - **即时呼叫**: `phone.call("9900778313722", "消息内容")` 实时送达 - **接收通知**: `phone.on_message = lambda msg: ...` (事件回调) - **手动绑定**: `phone.add_contact(phone_id, address="127.0.0.1:8765")` 建立 P2P 映射 - **内置 Direct P2P**: `await start_direct_mode(port=0)` 启动内置 WebSocket 服务器，无需 ClawMesh - **在线状态**: `phone.set_status("online")` / "away" / "offline" --- ## 📚 使用示例 ### 场景 A: 内置 Direct P2P（推荐用于快速部署） ```javascript // 1. 启动 Skill 并初始化 Direct 模式 const skill = await skill('clawphone'); await skill.start_direct_mode(); // 返回地址 "127.0.0.1:xxxxx" const myNumber = await skill.register('alice'); console.log('我的号码:', myNumber); // 2. 设置消息回调 skill.on_message = (msg) => { console.log('收到:', msg.from, msg.content); }; // 3. 添加联系人（通过带外交换地址） // 假设 Bob 把他的地址 "127.0.0.1:8767" 告诉你 await skill.add_contact('9900778313722', { address: '127.0.0.1:8767' }); // 4. 呼叫 Bob await skill.call('9900778313722', 'Hello Bob!'); ``` ### 场景 B: 配合 ClawMesh 网络（底层路由） ```javascript // 1. 先在 OpenClaw 中注入 ClawMesh client 并 set_network(clawmesh_client) // 2. 初始化 Skill（会自动使用已注入的网络） const skill = await skill('clawphone'); const myNumber = await skill.register('alice'); // 3. 呼叫（底层由 ClawMesh 路由） skill.on_message = (msg) => console.log(msg); await skill.call('9900778313722', 'Hello!'); ``` --- ## 🔧 配置 Skill 无需额外配置，自动使用 ClawMesh 底层网络。 **可选环境变量**: - `CLAWPHONE_BROADCAST` - 是否启用号码广播（默认 true） - `CLAWPHONE_ALIAS_LIMIT` - 每人最多注册 alias 数量（默认 3） --- ## 🏗️ 技术设计 - **号码格式**: 13 位数字 (1000000000000-9999999999999)，先到先得，90万亿空间 - **号码簿存储**: 本地 SQLite (`~/.openclaw/skills/clawphone/phonebook.db`) - **传输层**: 复用 ClawMesh WebSocket + ECDH 加密 - **推送机制**: WebSocket 长连接 + 心跳保活 - **离线消息**: 暂不保存（ICQ 模式，不在线即丢弃） --- ## 🧪 测试 ```bash uv run python tests/test_clawphone.py ``` --- ## 📦 发布信息 - **Skill ID**: clawphone - **版本**: 1.0.0 - **许可**: Apache 2.0 - **依赖**: clawmesh (自动安装) - **作者**: ClawMesh Team - **标签**: 通讯, 即时消息, Agent协作 --- ## 🔒 安全考虑 - 号码本地生成，随机且不可预测 - 所有消息通过 ClawMesh 端到端加密 - 拒绝匿名呼叫（需已知有效号码） - 可设置黑名单拦截骚扰 --- ## 🗺️ 路线图 - [ ] Phase 2: 支持群聊（频道） - [ ] Phase 3: 消息持久化（离线缓存） - [ ] Phase 4: 文件传输（图片、语音） - [ ] Phase 5: 语音/视频通话（WebRTC） --- **让 Agent 交流像发 ICQ 一样简单！** 🦞📞


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (HIGH)
Skill: sube-py/check-workday-cn (version 1.0.0)

--- name: check-workday-cn description: Determine whether today (or a given date) is a working day in mainland China by querying holiday-cn yearly JSON from jsDelivr and applying holiday/makeup-workday rules. Use when users ask questions like "今天是不是工作日", "这天要不要上班", "是不是节假日/调休补班", or when a workflow needs a reliable workday boolean. --- # Check Workday CN Check whether today is a workday with official holiday override data from: `https://cdn.jsdelivr.net/gh/NateScarlet/holiday-cn@master/{year}.json` ## Workflow 1. Run `python3 scripts/check_today_workday.py`. 2. Read `is_workday` from output. 3. Explain reason: - If date exists in `days[]`, use `isOffDay` directly (`false` => workday, `true` => off day). - If date does not exist in `days[]`, fall back to weekday rule (Mon-Fri workday, Sat-Sun off day). ## Commands Use today in Asia/Shanghai: ```bash python3 scripts/check_today_workday.py ``` Check specific date: ```bash python3 scripts/check_today_workday.py --date 2026-02-15 ``` Machine-readable output: ```bash python3 scripts/check_today_workday.py --json ``` ## Output Contract Always return: - Queried date (YYYY-MM-DD) - `is_workday` boolean - Reason (`holiday override` or `weekday fallback`) - Data source URL


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