OpenClaw/clawhub-security-signals huggingface dataset:
Skill: marjoriebroad/jtbd-analyzer-2 (version 1.0.0)

--- name: jtbd-analyzer description: Uncover the real "job" customers hire your product to do. Goes beyond features to understand functional, emotional, and social motivations. Use when user says "jobs to be done", "jtbd", "why do customers", "what job", "customer motivation", "what problem", "user needs", "why do people buy". --- # Jobs-To-Be-Done Analyzer ## The Core Concept Customers don't buy products. They HIRE products to do a job. "People don't want a quarter-inch drill. They want a quarter-inch hole." Actually: They want a shelf → to display photos → to feel proud of family. ## The Three Job Dimensions | Dimension | Question | Format | |-----------|----------|--------| | **Functional** | What task needs doing? | "Help me [verb] [object]" | | **Emotional** | How do I want to feel? | "Make me feel [emotion]" | | **Social** | How do I want to be seen? | "Help me be seen as [quality]" | ## The Process 1. **Job Statement:** "When [situation], I want to [motivation], so I can [outcome]" 2. **Map all 3 dimensions** for each user type 3. **Find real competition:** What ELSE could do this job? 4. **Prioritize:** Which jobs are most critical and underserved? ## Output Format ``` PRODUCT: [What you're analyzing] For [User Type]: JOB: "When [situation], I want [motivation], so I can [outcome]" 📋 FUNCTIONAL: [Task to accomplish] 💜 EMOTIONAL: [Feeling desired] 👥 SOCIAL: [Perception desired] ALTERNATIVES: [What else could do this job?] UNDERSERVED: [What part isn't done well?] PRIORITY: Critical / Important / Nice-to-have ``` ## Key Questions 1. "What were you trying to accomplish when you [action]?" 2. "Walk me through the last time you needed to [job]" 3. "What would you do if [product] didn't exist?" 4. "What's frustrating about how you currently [job]?" ## Integration Compounds with: - **first-principles-decomposer** → Decompose job to atomic need - **cross-pollination-engine** → Find how others solve similar jobs - **app-planning-skill** → Use JTBD to inform features --- See references/examples.md for Artem-specific JTBD analyses


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: ycz87/wbs-planner (version 1.1.0)

--- name: wbs-planner description: "Work Breakdown Structure for multi-agent project management. Organize work as Roadmap → Epic → Task hierarchy with templates and granularity standards. Use when: (1) planning project work and breaking features into tasks, (2) creating or updating roadmaps, epics, or task specs, (3) reviewing task granularity before dispatch, (4) organizing project documentation structure. Triggers: roadmap, epic, task breakdown, WBS, work breakdown, project planning, task spec." --- # WBS Planner 将项目工作从宏观到微观逐层分解：Roadmap → Epic → Task。 ## 三层结构 | 层级 | 定义 | 负责人 | |------|------|--------| | Roadmap | 产品路线图，规划所有 Epic 的优先级和时间线 | 创始人 / PM | | Epic | 大功能模块，包含多个 Task | PM 规划 | | Task | 可分配给单人、1-2 个工作周期内完成的具体任务 | PM 创建，Dev 执行 | ## 项目目录结构 在项目根目录下创建 `roadmap/` 目录： ``` roadmap/ ├── roadmap.md ├── epic-001-feature-name/ │ ├── epic.md │ ├── task-001-name.md │ ├── task-002-name.md │ └── task-003-name.md ├── epic-002-feature-name/ │ ├── epic.md │ └── task-001-name.md └── ... ``` 命名规则： - Epic 目录：`epic-NNN-简短英文名` - Task 文件：`task-NNN-简短英文名.md` - 编号在各自层级内递增 模板文件见 [templates/](templates/) 目录。 ## Task 粒度标准 这是整个体系的核心。Task 拆得不够细，验收就容易失败。 一个合格的 Task 必须同时满足： 1. **单一交付物** — 只做一件事，只验收一件事 2. **验收可量化** — 条件具体到操作步骤，不是"看起来不错" 3. **体量可控** — 预计 1-2 个工作周期完成，超过则继续拆 4. **独立可测** — 不依赖未完成的其他 Task 判断示例： - ❌ "实现农场系统" → 这是 Epic，不是 Task - ❌ "优化页面" → 没有验收标准 - ❌ "完成种植和收获" → 两件事，应拆两个 Task - ✅ "实现 7 块农田网格布局，点击地块高亮" - ✅ "接入 Google OAuth，登录后显示用户头像" → 更多拆解指导见 [references/breakdown-guide.md](references/breakdown-guide.md) ## 角色工作流 详细操作流程按角色拆分，按需加载： - **PM（产品经理）**：[references/pm-workflow.md](references/pm-workflow.md) — 规划、拆解、派发、验收、结案 - **Dev（开发工程师）**：[references/dev-workflow.md](references/dev-workflow.md) — 接收、评估、执行、交付 ## 与团队协作协议的关系 本 skill 管"做什么"：层级、拆解、模板、文档结构。 团队协作协议（如 agent-team-orchestration）管"怎么协作"：状态流转、交接协议、评审规则。 两者互补，不重叠。


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: suspicious | SkillSpector: clean (LOW)
Skill: mrnsmh/supervisorclaw (version 1.0.0)

# Skill: Supervisor Superviseur autonome des ressources et des connexions. ## Usage - **/supervisor status** : Affiche un bilan complet (CPU, RAM, Docker, Sites). - **/supervisor restart <nom>** : Relance un service spécifique. ## Fonctionnement L'agent scanne le serveur toutes les 5 minutes et tente une auto-guérison si un site tombe ou si un conteneur s'arrête.

path: monitor.py
content: import subprocess
import requests
import os
import psutil
import json

TARGETS = [
    {"name": "AIFlowHub", "url": "https://aiflowhub.online"},
    {"name": "ProspectX", "url": "https://prospectx.aiflowhub.online/api/health"},
    {"name": "MarocPromo", "url": "https://marocpromo.insightops.online"}
]

def check_resources():
    cpu = psutil.cpu_percent(interval=1)
    ram = psutil.virtual_memory().percent
    disk = psutil.disk_usage('/').percent
    return {"cpu": cpu, "ram": ram, "disk": disk}

def check_http():
    results = []
    for t in TARGETS:
        try:
            r = requests.get(t['url'], timeout=10)
            status = "UP" if r.status_code < 400 else f"DOWN ({r.status_code})"
        except Exception as e:
            status = f"ERROR ({str(e)})"
        results.append({"name": t['name'], "status": status})
    return results

def get_docker_status():
    try:
        res = subprocess.run(['docker', 'ps', '--format', '{{.Names}}|{{.Status}}'], capture_output=True, text=True)
        return res.stdout.strip().split('\n')
    except:
        return []

if __name__ == "__main__":
    report = {
        "resources": check_resources(),
        "http": check_http(),
        "docker": get_docker_status()
    }
    print(json.dumps(report, indent=2))


path: _meta.json
content: name: supervisor
description: Superviseur de ressources et de santé des services avec auto-guérison.
version: 1.0.0
author: Jack
entrypoint: SKILL.md

path: README.md
content: # Skill: Supervisor

Superviseur autonome des ressources et des connexions.

## Usage
- **/supervisor status** : Affiche un bilan complet (CPU, RAM, Docker, Sites).
- **/supervisor restart <nom>** : Relance un service spécifique.

## Fonctionnement
L'agent scanne le serveur toutes les 5 minutes et tente une auto-guérison si un site tombe ou si un conteneur s'arrête.


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: suspicious | SkillSpector: suspicious (MEDIUM)
Skill: bdonglobal/tokenview-address-balance (version 1.0.5)

# SKILL: getAddressBalance ## Description A skill for querying the balance of a specified blockchain address using the Tokenview API. The default supported coin is **BTC**, and the API Key must be provided through the environment variable `TOKENVIEW_API_KEY`. ## Triggers - "What is the balance of BTC address `<address>`?" or "How much BTC does `<address>` have?" - Any conversation where an address is detected and interpreted as a balance query ## API Endpoint and Secret Handling - Tokenview API：`https://services.tokenview.io/vipapi/addr/b/{lowercase-coin-abbr}/{address}?[REDACTED_SECRET]` - Using environment variable `TOKENVIEW_API_KEY` to config API Key。 - Parameters：`lowercase-coin-abbr` is coin abbreviation in lowercase (default: `btc`)，`address` blockchain address extracted from the conversation - Output format：The script returns JSON ## Parameters - address:The Blockchain address - coin:Coin abbreviation, default is btc ## Output Format - Success:The script returns JSON , and the user sees："Balance is {balance} {COIN}" - Failure:Example raw Tokenview API JSON: ```json { "code": 1, "msg": "404", "data": "NONE" } ``` will be like: "Balance query failed：Code=1, Msg=404, Data=NONE" ## Implementation (execution plan) - The skill executes the tokenview_api.py script to perform the API call: - Example command (BTC): ```bash python $OPENCLAW_STATE_DIR/workspace/skills/tokenview_balance_checker/tokenview_api.py <address> --coin btc ``` - Script information: - Path: `$OPENCLAW_STATE_DIR/workspace/skills/tokenview_balance_checker/tokenview_api.py` - Inputs: address (required)，coin (optional, default is btc) - Dependencies: requests - API Key: Provided via environment variable TOKENVIEW_API_KEY - Output: JSON printed to stdout, e.g.:`{"code":1,"msg":"success","data":"0.123 BTC"}` ## Parameters (payload-driven) - address: blockchain address to query - coin: currency abbreviation (default: btc) ## Output Mapping (to user-facing text) - Success: "Balance is {balance} {COIN}" - Failure: "Code={code}, Msg={msg}, Data={data}" ## Example - Input: "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa 余额多少？" - Script output: {"code":1, "msg":"成功", "data":"0.12345678 BTC"} - User visible: 余额为 0.12345678 BTC


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: tinadu-ai/vbti (version 0.1.0)

--- name: vbti description: Vibe-coding Type Indicator — 扫你 vibe coding 历史记录，把你审判为 16 型 vibe coder 中的一种，生成一张诊断书风格的 HTML 卡片到桌面，可直接截图发小红书。当用户输入 /vbti、说"测一下我的 vibe coding 人格"、"我是哪型 vibe coder"、"生成我的 VBTI"时触发。 --- # VBTI · Vibe-coding Type Indicator 把用户的 vibe coding 使用习惯审判为 16 型 vibe coder 之一，生成诊断书卡片。 ## 触发 - 用户输入 `/vbti` - 用户说"测我的 VBTI"、"我是哪型 vibe coder"、"vibe coding 人格" ## 怎么跑 直接调用（按用户实际安装路径选一个）： ```bash python3 ~/.claw/skills/vbti/run.py # OpenClaw / Claw python3 ~/.claude/skills/vbti/run.py # Claude Code ``` 它会： 1. 扫 `~/.claude/projects/*/` 下所有 transcript JSONL 2. 统计 16 个维度的信号（关键词词频、Bash 命令分布、文件操作类型、时间分布等） 3. 给 16 个类型打分，挑分数最高的 4. 把真实数据填进诊断书模板，输出 HTML 到 `~/Desktop/我的-VBTI-{TYPE}.html` 5. 自动 open 在浏览器里 ## 16 个类型一览 SOON · MONK · SHOW · VIBE · BLAM · YEET · GHST · LOOP · MOSS · SORY · NODE · DUMP · TOYS · TIDY · LERN · TEST 详细定义见 `vbti_types.py`。 ## 跑完之后 告诉用户： - TA 是哪个型（中文名 + emoji） - 一句话 tagline - 桌面文件路径 - 让 TA 截图发小红书时 #VBTI 不要解释信号怎么算的（破坏魔性）。


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal:  | SkillSpector: suspicious (CRITICAL)
Skill: ggyybb/baidu-mapbox-isochrone (version 1.0.3)

--- name: baidu-mapbox-isochrone description: 生成等时圈（isochrone）。通过百度地理编码API将地址转为BD-09坐标，转换为WGS84后，调用Mapbox Isochrone API生成等时圈SHP文件和Python预览图。当用户需要：给定地址生成等时圈地图、百度坐标转WGS84后做等时圈分析、生成等时圈shapefile并提供预览图时使用此技能。 --- # 等时圈生成器 通过百度地理编码 + 坐标转换 + Mapbox Isochrone API 生成等时圈 SHP 文件和预览图。 ## 工作流程 执行 `scripts/generate_isochrone.py`，分 6 步完成： ``` [Step 1] 百度地理编码 (BD-09) → 地址 → 百度AK → BD-09 经纬度 [Step 2] 坐标转换 (BD-09 → WGS84) → coord_convert.bd2wgs() [Step 3] Mapbox 等时圈 API → WGS84 坐标 + 出行模式 + 时间 → GeoJSON 等时圈面 [Step 4] 保存 Shapefile → point.shp（起点） + isochrone.shp（等时圈面） [Step 5] 获取 WGS84 底图 → ESRI 卫星影像瓦片 → rasterio 重投影为 WGS84 GeoTIFF [Step 6] 生成预览图 → matplotlib 叠加渲染（alpha=0.38半透明等时圈 + 卫星底图） ``` ## ⚡ 自动发送流程（必须执行） 脚本成功后将触发自动发送，agent 必须执行以下步骤： ### Step A: 打包所有产物 ```bash cd <output_dir> zip <名称>.zip point.shp point.shx point.dbf point.prj point.cpg \ isochrone.shp isochrone.shx isochrone.dbf isochrone.prj isochrone.cpg \ base_map_wgs84.tif isochrone_preview.jpg ``` ### Step B: 发送预览图（通过 message 工具） ``` action: send channel: feishu message: 📍 <地址> · <N>分钟<出行模式>等时圈\n\n🗺️ WGS84坐标：<lng>, <lat>\n覆盖范围：<描述> media: <preview_jpg路径> ``` ### Step C: 发送 ZIP 文件包（通过 message 工具） ``` action: send channel: feishu message: 📦 SHP全套文件包（含.shp/.shx/.dbf/.prj/.cpg + 底图TIFF + 高清预览图） filePath: <zip路径> ``` ## 参数（按顺序） | 序号 | 参数 | 说明 | 示例 | |------|------|------|------| | 1 | 地址 | 任意百度地图可识别的地址 | `天津市南楼煎饼` | | 2 | 百度 AK | 百度地图开放平台 AK | MEMORY.md 中已存储 | | 3 | Mapbox AK | Mapbox 访问令牌 | MEMORY.md 中已存储 | | 4 | 出行模式 | driving / walking / cycling | `walking` | | 5 | 时间(分钟) | 等时圈时长 | `15` | | 6 | 输出目录 | 可选，默认为 `/root/.openclaw/workspace/isochrone_output` | 可省略 | ## 输出文件（默认路径） 生成在 `/root/.openclaw/workspace/isochrone_output/` 下： | 文件 | 说明 | CRS | |------|------|-----| | `point.shp` | 起点（经纬度点） | EPSG:4326 | | `isochrone.shp` | 等时圈面 | EPSG:4326 | | `isochrone_preview.jpg` | 预览图（卫星底图 + 半透明等时圈） | — | | `base_map_wgs84.tif` | WGS84 重投影底图（EPSG:4326 GeoTIFF） | EPSG:4326 | ## 使用示例 ``` 请帮我生成等时圈： - 地址：天津市南楼煎饼 - 出行模式：walking - 时间：15分钟 ``` Agent 应执行： ```bash python3 /root/.openclaw/workspace/skills/baidu-mapbox-isochrone/scripts/generate_isochrone.py "天津市南楼煎饼" "<百度AK>" "<MapboxAK>" "walking" 15 ``` 然后按"自动发送流程"打包并发送所有文件给用户。 ## API 密钥 - 百度 AK：MEMORY.md → `百度AK` 字段 - Mapbox AK：MEMORY.md → `Mapbox AK` 字段 ## 错误处理 | 错误 | 原因 | 处理 | |------|------|------| | `百度地理编码失败` | AK 无效或地址无法识别 | 检查 AK / 换用更精确的地址 | | `Mapbox API 认证失败` | Mapbox AK 错误 | 核对 AK | | `Mapbox API 参数错误 (422)` | 坐标超出支持区域 | 确认地址在支持范围内 | | 依赖缺失 | 包未安装 | `pip install coord_convert geopandas shapely pyshp matplotlib --break-system-packages` | ## 依赖 系统需安装中文字体（matplotlib 使用的字体名为 `Noto Sans CJK JP`，来自 NotoSansCJK-Regular.ttc）。 Python 依赖： ``` coord_convert, geopandas, shapely, pyshp, matplotlib, rasterio, scipy, pykdtree ```


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)
Skill: sdk-team/alibabacloud-sdk-client-initialization-for-golang (version 0.0.1-beta)

--- name: alibabacloud-sdk-client-initialization-for-golang description: > Initialize and manage Alibaba Cloud SDK clients in Go. Covers sync.Once singleton, goroutine safety, endpoint vs region configuration, VPC endpoints, and debug mode. Use when the user creates Go SDK clients, configures endpoints, asks about goroutine safety, singleton patterns, or VPC endpoint setup in the Alibaba Cloud Go SDK. version: 0.0.1-beta --- # Client Initialization Best Practices (Go) ## Core Rules - **Client is goroutine-safe** — safe to share across goroutines without additional synchronization. - **Use singleton pattern** — do NOT create new client instances per request. Frequent client creation wastes resources. - Prefer **explicit endpoint** over region-based endpoint resolution. ## Recommended Client Creation ```go import ( "os" "sync" openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client" ecs "github.com/alibabacloud-go/ecs-20140526/v3/client" "github.com/alibabacloud-go/tea/tea" ) var ( ecsClient *ecs.Client ecsClientOnce sync.Once ) func GetEcsClient() *ecs.Client { ecsClientOnce.Do(func() { config := &openapi.Config{ [REDACTED_SECRET]"ALIBABA_CLOUD_ACCESS_KEY_ID")), [REDACTED_SECRET]"ALIBABA_CLOUD_ACCESS_KEY_SECRET")), Endpoint: tea.String("ecs.cn-hangzhou.aliyuncs.com"), } var err error ecsClient, err = ecs.NewClient(config) if err != nil { panic(err) } }) return ecsClient } ``` ## Endpoint Configuration Priority: explicit `Endpoint` > region-based resolution via `RegionId`. ```go // Preferred: explicit endpoint config.Endpoint = tea.String("ecs.cn-hangzhou.aliyuncs.com") // Alternative: SDK resolves endpoint from region config.RegionId = tea.String("cn-hangzhou") ``` ### VPC Endpoints Use VPC endpoints when running inside Alibaba Cloud VPC: ```go config.Endpoint = tea.String("ecs-vpc.cn-hangzhou.aliyuncs.com") ``` ### File Upload APIs (Advance) Set **both** `RegionId` and `Endpoint` to the same region for file upload APIs: ```go config.RegionId = tea.String("cn-shanghai") config.Endpoint = tea.String("objectdet.cn-shanghai.aliyuncs.com") // VPC file upload [REDACTED_SECRET] = tea.String("openplatform-vpc.cn-shanghai.aliyuncs.com") client.EndpointType = tea.String("internal") ``` ## SDK Components | Component | Description | |-----------|-------------| | Core SDK (`darabonba-openapi`) | Generic calls, no product dependency | | Product SDK (e.g., `ecs-20140526`) | Typed client, models, convenience methods | ## Debugging Enable debug mode via environment variable to log all requests: ```bash export DEBUG=tea ```


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: sunnyhot/hot-topics-daily (version 2.2.0)

--- name: hot-topics-daily description: 每日热搜速览推送 - 自动抓取微博、知乎、百度、B站、抖音、今日头条热搜并发送到 Discord。支持配置平台开关和显示条数。 version: 2.0.0 metadata: openclaw: requires: bins: ["node"] --- # 每日热搜速览推送 v2.0 自动抓取 6 个国内主流平台热搜，定时推送到 Discord。 ## 支持平台 | 平台 | Emoji | 数据 | |------|-------|------| | 微博热搜 | 🔥 | 热度值 | | 知乎热榜 | 💡 | 热度值 | | 百度热搜 | 🔍 | 热度值 | | B站热门 | 📺 | 标题 | | 抖音热点 | 🎵 | 热度值 | | 今日头条 | 📰 | 标题 | ## 使用方式 ### 手动推送 ```bash node ~/.openclaw/workspace/skills/hot-topics-daily/scripts/push.cjs ``` ### 自动推送（Cron） - **时间**: 每天 8:35 - **目标**: Discord 子区 `1482246566055120898` ## 配置 (`config.json`) ```json { "discord": { "threadId": "1482246566055120898" }, "api": { "baseUrl": "https://60s.viki.moe/v2", "timeout": 10000 }, "platforms": [ { "name": "微博热搜", "key": "weibo", "emoji": "🔥", "enabled": true }, { "name": "知乎热榜", "key": "zhihu", "emoji": "💡", "enabled": true }, { "name": "百度热搜", "key": "baidu/hot", "emoji": "🔍", "enabled": true }, { "name": "B站热门", "key": "bili", "emoji": "📺", "enabled": true }, { "name": "抖音热点", "key": "douyin", "emoji": "🎵", "enabled": true }, { "name": "今日头条", "key": "toutiao", "emoji": "📰", "enabled": true } ], "display": { "itemsPerPlatform": 5, "maxTitleLength": 40 } } ``` ### 启用/禁用平台 修改对应平台的 `enabled` 为 `true/false`。 ### 调整条数 修改 `display.itemsPerPlatform`（默认 5）。 ## 数据源 使用 [60s.viki.moe](https://github.com/vikiboss/60s) 免费开源 API，无需 API Key。 ## 文件结构 ``` skills/hot-topics-daily/ ├── SKILL.md # 技能说明 ├── config.json # 配置文件 └── scripts/ ├── push.cjs # 主推送脚本 └── global_news_fetcher.py # 国际新闻（备用） ``` ## 更新日志 ### v2.0.0 (2026-03-29) - ✅ 新增抖音、今日头条支持 - ✅ 重写推送脚本，支持 http/https - ✅ 错误处理：平台失败不阻塞其他平台 - ✅ 新增超时控制 - ✅ 重写 SKILL.md ### v1.0.0 (2026-03-13) - 初始版本


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

--- name: timely description: Manage Apple Reminders from the command line with geofencing support. Use when creating reminders on macOS with optional location-based triggers (arrive/depart), due dates, or time-based alerts. Works with iCloud-synced reminder lists. metadata: openclaw: emoji: "⏰" os: ["darwin"] requires: bins: ["timely"] install: - id: brew kind: brew formula: halbotley/tap/timely bins: ["timely"] label: "Install timely (brew)" --- # timely A CLI for Apple Reminders with geofencing support. Create location-aware and time-based reminders without UI interaction. ## Why timely? - **Location triggers** — Remind when arriving at or departing from a place - **No UI prompts** — Works silently via EventKit - **iCloud sync** — Reminders appear on all devices ## Installation ```bash brew tap halbotley/tap brew install timely ``` First run prompts for Reminders access (System Settings → Privacy → Reminders). One-time only. ## Commands ### List reminder lists ```bash timely lists ``` ### View reminders ```bash timely show Reminders # Show all in list timely show Reminders 10 # Show last 10 ``` ### Create time-based reminder ```bash timely add Reminders "Call mom" --due "tomorrow 3pm" timely add Reminders "Submit report" --due "friday 5pm" ``` ### Create location-based reminder (arrive) ```bash timely add Reminders "Buy milk" \ --location "Trader Joe's" \ --address "123 Main St, Santa Barbara, CA" \ --arrive ``` ### Create location-based reminder (depart) ```bash timely add Reminders "Text wife leaving" \ --location "Office" \ --address "456 Work Ave" \ --depart ``` ### Combined (time + location) ```bash timely add Reminders "Pick up prescription" \ --due "today" \ --location "CVS" \ --address "789 Pharmacy Rd" \ --arrive ``` ## Due Date Formats Natural language parsing: - `"today"`, `"tomorrow"` - `"monday"`, `"next friday"` - `"tomorrow 3pm"`, `"friday 5pm"` - `"2025-03-15"`, `"2025-03-15 14:30"` ## Geofencing Notes - `--location` is the display name (what you see in Reminders) - `--address` is used for geocoding (must be a real address) - `--arrive` triggers when entering the location - `--depart` triggers when leaving the location - Default geofence radius is ~100 meters ## Shared Lists For shared iCloud reminder lists, use the exact list name as it appears in the Reminders app. The list syncs across all family members' devices. ## Examples ```bash # Simple reminder timely add Reminders "Water plants" --due "saturday 9am" # Reminder when getting home timely add Reminders "Take out trash" \ --location "Home" \ --address "123 My Street, My City, CA" \ --arrive # Reminder when leaving work timely add Reminders "Pick up kids" \ --location "Office" \ --address "456 Work Blvd" \ --depart ```


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: suspicious | SkillSpector: clean (LOW)
Skill: adjusternwachukwu-bot/skill-pay (version 1.0.0)

--- name: skill-pay description: Add credit-based payments to any OpenClaw skill. Register paid skills, charge users per call, track earnings, and withdraw USDC. Use when a user wants to monetize a skill, set up payments for agent services, check credit balances, register as a builder, or integrate pay-per-use into their agent workflow. --- # SkillPay — Credits for the Agent Economy Universal payment system for OpenClaw skills. Builders register paid skills, users buy credits, skills charge per call. ## Setup API base: `https://skillpay.gpupulse.dev/api/v1` ## For Users (Buyers) ### Register ```bash curl -X POST "$BASE/user/register" \ -H "Content-Type: application/json" \ -d '{"name": "my-agent", "email": "[REDACTED_SECRET]"}' ``` Returns `sp_usr_...` API key (save it, shown once). ### Buy Credits ```bash curl -X POST "$BASE/user/deposit" \ -H "Authorization: Bearer sp_usr_..." \ -H "Content-Type: application/json" \ -d '{"amount": 100}' ``` ### Check Balance ```bash curl "$BASE/user/balance" -H "Authorization: Bearer sp_usr_..." ``` ## For Builders (Sellers) ### Register as Builder ```bash curl -X POST "$BASE/builder/register" \ -H "Content-Type: application/json" \ -d '{"name": "my-company", "wallet_address": "SolanaWalletAddress"}' ``` Returns `sp_bld_...` API key. ### Register a Paid Skill ```bash curl -X POST "$BASE/builder/skill/register" \ -H "Authorization: Bearer sp_bld_..." \ -H "Content-Type: application/json" \ -d '{"slug": "my-skill", "name": "My Skill", "description": "Does something useful", "price_credits": 10}' ``` ### Check Earnings ```bash curl "$BASE/builder/earnings" -H "Authorization: Bearer sp_bld_..." ``` ### Withdraw ```bash curl -X POST "$BASE/builder/withdraw" \ -H "Authorization: Bearer sp_bld_..." \ -H "Content-Type: application/json" \ -d '{"amount": 50}' ``` ## Integration (The Key Part) Add this to your skill's code to charge per call: ```python import requests def charge_user(user_key, skill_slug="my-skill"): resp = requests.post("https://skillpay.gpupulse.dev/api/v1/pay", json={ "user_key": user_key, "skill_slug": skill_slug }) if resp.status_code == 200: return True # paid, execute skill elif resp.status_code == 402: return False # insufficient credits return False ``` ## Browse Skills ```bash curl "$BASE/skills" # no auth needed — public catalog of all paid skills ``` ## Platform Fee 2.5% on every transaction. Builder sets price in credits, receives 97.5%. ## Credit Ratio 1 USDC = 1 credit (adjustable per skill type).


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: markma84/kaiwu8 (version 1.8.0)

--- name: kaiwu8 description: 开悟吧平台型 Skill - 管理并激活已购功能。用户说"开悟吧"时执行 activate.py 脚本。 --- # 开悟吧 kaiwu8 > 用户只需要安装这一个 skill，所有功能从这里激活 ## 触发条件 用户说：**"开悟吧"** ## 执行步骤 1. 运行 activate.py 2. 系统自动调 API 检查已购功能 3. 未激活的功能自动执行激活 4. 缺失的 skill 从 ClawHub 下载 ## 配置 在 openclaw.json 的 skills.entries.kaiwu8 中配置： ```json "kaiwu8": { "api_endpoint": "https://api.kaiwu8.com", "user_api_key": "你的user_api_key" } ```


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