OpenClaw/clawhub-security-signals huggingface dataset:
Skill: liweijie0709-cmyk/geo-push-policy (version 1.0.0)

# geo-push-policy 推送策略管理技能。负责事件冷却期、观察池、频率限制等推送策略管理。 ## 功能 - **事件冷却期**: 防止同一事件短时间内重复推送 - **观察池机制**: 评分 50-69 的事件进入观察池，等待确认后再推送 - **推送次数限制**: 单事件最多推送 3 次 - **事件状态机**: 追踪事件从 new → escalating → ongoing → resolved 的演化 - **频率限制保护**: 检测飞书频率限制，自动等待重试 - **死信队列**: 记录推送失败的消息，支持后续补投 ## 冷却期配置 | 事件级别 | 冷却时间 | 突破条件 | |:---|:---|:---| | 高优先级 (≥70 分) | 90 分钟 | 级别升级、新增权威来源、市场联动扩大 | | 中优先级 (50-69 分) | 180 分钟 | 同上 | ## 观察池机制 - **进入条件**: 评分 50-69 分 - **池大小限制**: 最多 20 条 - **升级检测**: 观察池事件评分上升至≥70 分时转为推送 ## 推送决策流程 ``` 新闻 → 评分 → 是否≥50 分？ ↓ 否 忽略 ↓ 是 检查冷却期 → 是否在冷却期？ ↓ 是 ↓ 否 检查是否升级 推送 ↓ 是 推送 ``` ## 使用方法 ### Python API ```python from geo_push_policy import ( PushPolicy, AppState, should_push_event, update_event_cache, update_watch_pool, ) # 加载状态 state = AppState.load(STATE_FILE) # 创建策略 policy = PushPolicy( cooldown_high=90, cooldown_medium=180, max_push_count=3, ) # 判断是否推送 should_push, reason = policy.should_push(event, state) print(f"推送决策：{reason}") # 更新事件缓存 push_events = [event1, event2] # 本次推送的事件 update_event_cache(state, all_events, push_events) # 更新观察池 update_watch_pool(state, all_events, push_events) # 保存状态 state.save(STATE_FILE) ``` ### 状态文件结构 ```json { "last_run_time": "2026-03-27T15:00:00", "last_push_time": "2026-03-27T14:00:00", "event_cache": { "event_id_1": { "event_id": "event_id_1", "fingerprint": "abc123", "title": "事件标题", "severity": "high", "first_seen": "2026-03-27T10:00:00", "last_seen": "2026-03-27T15:00:00", "push_count": 2, "stage": "ongoing" } }, "watch_pool": [...], "dead_letter_queue": [...] } ``` ## 死信队列 推送失败的消息会进入死信队列，最多保留 10 条。下次运行时会尝试补投。 ```python # 处理死信队列 from geo_push_policy import process_dead_letter_queue, send_to_feishu success = process_dead_letter_queue(state, send_to_feishu) if success: print("✅ 死信补投成功") ``` ## 依赖 - `geo_push_ops`: 推送操作模块（可选，用于死信补投） ## 相关文件 - 主模块：`geo_push_policy.py` ## 版本 - **v1.0.0**: 初始版本，从 smart-geo-push.py v2.0 拆分


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

--- name: dianping-writer description: 写大众点评风格的本地生活评论。当用户发餐厅/菜品照片说"写点评"、"帮我评价"、"写个大众点评"、"生成点评文案"时使用。 --- # 大众点评写作技能 生成自然、口语化的大众点评文案。 ## 核心原则 ### 1.1 要素选择原则 - 挑 **3-4个** 最想说的要素写，不用写全所有维度 - 每个点评侧重点不同，没有标准答案 ### 1.2 结构自由原则 - **"最想说的"放前面** - 其余要素自然穿插 - 不同点评用不同开头 ### 1.3 语言自然原则（最重要！） **必须删除的词：** - "首先/其次/最后" - "一是/二是" - "总体来说/整体而言" **口语化技巧：** | 原版（AI感） | 口语版 | |-------------|--------| | 肉质嫩滑 | 肉质**挺**嫩滑**的** | | 奶香味 | **有**奶香味 | | 确实上头 | **还挺**上头的 | | 人均150 | **他家**人均150 | | 适合约会 | **挺**适合约会的 | **核心句式：** - 挺...的：如"挺适合约会的" - 有+名词：如"有奶香味" - 他家+描述：如"他家人均100左右" **句子长短交错**，不要每句都是"XX的XX，XX的XX" ### 1.4 要素库 | 要素 | 说明 | 示例 | |------|------|------| | A | 位置/环境 | 望京麒麟社附近、装修挺有韩风的 | | B | 人均/价格 | 人均100左右、他家人均150 | | C | 菜品亮点1 | 五花肉外酥里嫩、有奶香味 | | D | 菜品亮点2 | 牛肋条入味、口感新鲜 | | E | 小不足 | 蔬菜种类少了点、等位有点久 | | F | 服务特色 | 有服务员帮忙烤、挺省心的 | | G | 适合场景 | 朋友聚餐、适合约会、打卡拍照 | --- ## 组合模式（随机选一种） ### 版本1：环境+菜品导向 `A → B → C → D → E → F → G` 示例：望京麒麟社附近的一家韩式烤肉，店面不大但装修还挺有韩风的。熟成五花肉烤得外酥里嫩，牛肋条也挺入味。人均100左右，有服务员帮忙烤，这点挺省心。适合朋友聚餐。 ### 版本2：价格+体验导向 `B → C → D → E → A → F` 示例：人均100左右的韩式烤肉，熟成五花肉确实和其他店不一样，外酥里嫩。牛肋条也入味，就是蔬菜种类少了点。店面装修挺韩风的，服务也不错。可以来试试。 ### 版本3：场景+服务导向 `G → F → C → D → B → A` 示例：朋友聚餐来的这家韩式烤肉，有服务员帮忙烤，挺省心的。熟成五花肉外酥里嫩，牛肋条也入味。人均100左右，地点在望京麒麟社这边。推荐来尝尝。 ### 版本4：纯亮点版 `A → C → D → B → F → G` 示例：望京麒麟社附近的一家韩式烤肉，熟成五花肉烤得外酥里嫩，肥而不腻，确实和其他烤肉店的不一样。牛肋条也入味，口感挺新鲜的。人均100左右，有服务员帮忙烤，适合朋友聚餐或者打卡拍照。 --- ## 生成流程 ### 第1步：接收信息 用户发送菜品照片（1张或多张） ### 第2步：识别菜品 用模型识别每张照片的菜品，列出菜品列表 ### 第3步：推断信息 根据菜品推断： - 餐厅类型（如：韩式烤肉、烤鱼、火锅、面馆等） - 人均档次（如：30-50元、80-100元、150元以上等） ### 第4步：补充信息 询问用户以下信息： - 位置/地址 - 环境特点 - 服务特色 - 是否有不足之处 - 适合场景 **注意：** 如果用户已提供部分信息，跳过相应询问 ### 第5步：选择要素 从要素库选 **3-4个** 要素，按"最想说的优先"排序 ### 第6步：生成文案 按组合模式生成 **3个不同版本**，注意口语化 ### 第7步：输出 输出给用户选择 --- ## 注意事项 1. **口语化！口语化！口语化！** 多用"挺"、"的"、"有"、"还挺"、"他" 2. **不堆砌形容词** — 不用"色香味俱佳"、"服务周到热情" 3. **有棱角** — 敢写不足，如"蔬菜种类少了点" 4. **像朋友推荐** — 而不是写广告 5. **过渡词全删** — "首先、其次、最后、一是、二是"都不需要


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: qiaotucodes/openclaw-skill-whisper-stt (version 0.1.0)

--- name: whisper-stt description: 语音转文字 - 使用OpenAI Whisper将音频文件识别为文字 --- # Whisper 语音转文字技能 将音频/语音文件识别并转换为文字。 ## 使用方式 ### 自动处理（推荐） 当用户发送语音/音频文件时，自动： 1. 识别语音内容 2. 转换为文字 3. 发送文字到飞书 ### 手动命令 用户发送音频文件后，技能自动处理。 ## 支持格式 - MP3, WAV, M4A, OGG, FLAC, WebM - 任何音频格式（FFmpeg支持即可） ## 模型选择 | 模型 | 大小 | 速度 | 精度 | |------|------|------|------| | tiny | ~1GB | 最快 | 基础 | | base | ~1GB | 快 | 一般 | | small | ~2GB | 中等 | 较好 | | medium | ~5GB | 较慢 | 很好 | | large | ~10GB | 最慢 | 最佳 | | turbo | ~6GB | 快 | 接近large | ## 技术实现 ```python import whisper # 加载模型（首次使用会下载） model = whisper.load_model("base") # 可选: tiny/base/small/medium/large/turbo # 识别语音 result = model.transcribe("audio.mp3") # 输出文字 print(result["text"]) ``` ## 依赖 - Python 3.8+ - PyTorch - openai-whisper - ffmpeg ## 注意事项 1. 首次使用会下载模型（1-10GB） 2. 大模型需要较多内存 3. 中文识别效果很好


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: adrianmiller99/google-calendar (version 0.1.0)

--- name: google-calendar description: Interact with Google Calendar via the Google Calendar API – list upcoming events, create new events, update or delete them. Use this skill when you need programmatic access to your calendar from OpenClaw. --- # Google Calendar Skill ## Overview This skill provides a thin wrapper around the Google Calendar REST API. It lets you: - **list** upcoming events (optionally filtered by time range or query) - **add** a new event with title, start/end time, description, location, and attendees - **update** an existing event by its ID - **delete** an event by its ID The skill is implemented in Python (`scripts/google_calendar.py`). It expects the following environment variables to be set (you can store them securely with `openclaw secret set`): ``` GOOGLE_CLIENT_ID=… GOOGLE_CLIENT_SECRET=… GOOGLE_REFRESH_TOKEN=… # obtained after OAuth consent GOOGLE_CALENDAR_ID=primary # or the ID of a specific calendar ``` The first time you run the skill you may need to perform an OAuth flow to obtain a refresh token – see the **Setup** section below. ## Commands ``` google-calendar list [--from <ISO> --to <ISO> --max <N>] google-calendar add --title <title> [--start <ISO> --end <ISO>] [--desc <description> --location <loc> --attendees <email1,email2>] google-calendar update --event-id <id> [--title <title> ... other fields] google-calendar delete --event-id <id> ``` All commands return a JSON payload printed to stdout. Errors are printed to stderr and cause a non‑zero exit code. ## Setup 1. **Create a Google Cloud project** and enable the *Google Calendar API*. 2. **Create OAuth credentials** (type *Desktop app*). Note the `client_id` and `client_secret`. 3. Run the helper script to obtain a refresh token: ```bash GOOGLE_CLIENT_ID=… GOOGLE_CLIENT_SECRET=… python3 -m google_calendar.auth ``` It will open a browser (or print a URL you can open elsewhere) and ask you to grant access. After you approve, copy the `refresh_token` it prints. 4. Store the credentials securely: ```bash openclaw secret set GOOGLE_CLIENT_ID <value> openclaw secret set GOOGLE_CLIENT_SECRET <value> openclaw secret set GOOGLE_REFRESH_TOKEN <value> openclaw secret set GOOGLE_CALENDAR_ID primary # optional ``` 5. Install the required Python packages (once): ```bash pip install --user google-auth google-auth-oauthlib google-api-python-client ``` ## How it works (brief) The script loads the credentials from the environment, refreshes the access token using the refresh token, builds a `service = build('calendar', 'v3', credentials=creds)`, and then calls the appropriate API method. ## References - Google Calendar API reference: https://developers.google.com/calendar/api/v3/reference - OAuth 2.0 for installed apps: https://developers.google.com/identity/protocols/oauth2/native-app --- **Note:** This skill does not require a GUI; it works entirely via HTTP calls, so it is suitable for headless servers.


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: suspicious | SkillSpector: suspicious (MEDIUM)
Skill: mkelk/coordinate-meeting (version 1.0.1)

--- name: coordinate-meeting description: Schedule a meeting for humans and their agents. Creates a scheduling poll, distributes it, collects votes, and finds the best time. Use when someone needs to find a time that works for a group. A Doodle alternative built for the age of AI agents. homepage: https://meetlark.ai user-invocable: true metadata: {"openclaw":{"emoji":"📅"}} --- # Schedule a Meeting A Doodle alternative built for the age of AI agents. Create a scheduling poll via meetlark.ai, collect votes from humans and agents, and find the best time — without the back-and-forth. ## Workflow 1. **Ask** the user who needs to meet and when they're generally available. 2. **Create** a scheduling poll with the proposed time slots. 3. **Share** the participation link — give it to the user to forward, or suggest a message they can send. 4. **Wait** for votes to come in. Check back when the user asks. 5. **Report** the results and recommend the best time. 6. **Close** the poll once a time is chosen. ## Creating the Poll ``` POST https://meetlark.ai/api/v1/polls?autoVerify=true ``` You'll receive: - An **admin token** (`adm_...`) — store this privately to check results and close the poll later. - A **participate URL** — this is the shareable link for voters. ### First-Time Verification The user's email must be verified once (valid 30 days). With `?autoVerify=true`, a verification email is sent automatically if needed. Tell the user to check their inbox and click the link, then retry. Check status: `GET /api/v1/auth/status?email=...` ## Distributing the Poll Suggest a ready-to-send message: ``` Hi [names], We're finding a time for [meeting purpose]. Please vote on the times that work for you: [participate URL] ``` The user can share this via email, Slack, WhatsApp, or any channel. ## Checking Results ``` GET https://meetlark.ai/api/v1/polls/{pollId} Authorization: Bearer adm_... ``` Summarize: how many voted, which times have the most votes, any clear winner. ## Closing the Poll ``` POST https://meetlark.ai/api/v1/polls/{pollId}/close Authorization: Bearer adm_... ``` Report the final result and suggest the user send a confirmation to participants. ## Quick Examples ``` "Find a time for a team retro next week" "Set up a meeting with Tom, Dick and Jane" "Check if everyone has voted on the standup poll" "Close the poll and announce the winning time" "Schedule a 30-minute demo with the client sometime next week" ``` ## API Reference - **OpenAPI spec:** https://meetlark.ai/api/v1/openapi.json - **Interactive docs:** https://meetlark.ai/docs ## Website - **meetlark.ai:** https://meetlark.ai


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: justsomeguyin2099/ai-builder-signal-digest (version 1.0.0)

--- name: ai-builder-signal-digest description: Create a transparent, sourced “Top 3–5” AI builder signal digest (weekly or date-range) from a list of links or from a local signals log; includes a short “why care” line per item and explicit maturity/adoption notes (e.g., GitHub stars/forks, paper-only). Use when preparing ClawHub Skill content or posts for the AI agent/tooling community. --- Generate short, post-ready digests that answer: **what is it, why should builders care, and how mature is it**. ## Rules (non-negotiable) - **Source-first:** every item must include a primary link. - **No speculation:** don’t claim adoption, performance, or production readiness unless the source states it. - **Transparent maturity:** - GitHub repos → include **stars/forks** (or “unknown” if you can’t fetch). - Papers → label as **paper** and prefer quoting the headline quantitative claim from the abstract. - Very early repos (low stars/forks) → explicitly call it out (“early / reference implementation”). ## Preferred output shape Title + 3–5 numbered bullets. Each bullet: - **Name** — one-liner (what it is) - **Why care:** one sentence (builder-relevant benefit) - **Maturity:** one short clause (e.g., “early repo (~X★, Y forks)” or “paper + open-source link”) - Link Keep it tight. If a digest needs nuance, add a single “Notes” line at the end. ## Use the bundled script (recommended) If you have a local JSONL signals log (e.g., `memory/edge-signal-miner.normalized.jsonl`), use: ```bash python3 skills/ai-builder-signal-digest/scripts/make_digest.py \ --input memory/edge-signal-miner.normalized.jsonl \ --since 2026-03-05 \ --until 2026-03-19 \ --top 5 \ --category "Secure Cognitive / CDS" \ --out /tmp/digest.md ``` If you already have curated links, you can pass them directly: ```bash python3 skills/ai-builder-signal-digest/scripts/make_digest.py \ --links https://github.com/Kailash-Sankar/PocketMCP https://arxiv.org/abs/2603.04428 \ --out /tmp/digest.md ``` ## What to do if GitHub stats fetch fails - Keep the item. - Replace maturity with: `Maturity: GitHub stats unavailable (rate-limit/blocked).` - Do **not** guess.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: yclovebf-stack/1688-shopkeeper (version 1.0.0)

--- name: 1688-shopkeeper description: | 1688选品铺货专家。用于：(1) 在1688搜索商品/选品找货源 (2) 查询已绑定的下游店铺 (3) 将商品铺货到抖音/拼多多/小红书/淘宝等平台 (4) 配置1688 AK密钥。 触发词：帮我找商品、在1688搜、选品、铺货、上架、查店铺、配置AK、1688找货。 metadata: {"openclaw": {"emoji": "🛒", "requires": {"env": ["ALI_1688_AK"], "bins": ["python3"]}, "primaryEnv": "ALI_1688_AK"}} --- # 1688-shopkeeper 统一入口：`python3 {baseDir}/cli.py <command> [options]` ## 命令速查 | 命令 | 说明 | 示例 | |------|------|------| | `search` | 搜商品 | `cli.py search --query "连衣裙" --channel douyin` | | `shops` | 查绑定店铺 | `cli.py shops` | | `publish` | 铺货 | `cli.py publish --shop-code CODE --data-id ID` | | `configure` | 配置 AK | `cli.py configure YOUR_AK` | | `check` | 检查配置状态 | `cli.py check` | 所有命令输出 JSON：`{"success": bool, "markdown": str, "data": {...}}` **展示时直接输出 `markdown` 字段，Agent 分析追加在后面，不得混入其中。** ## 标准流程 **选品→铺货**：`check` → `search` → 用户筛选(Agent 推荐 + 用户确认) → `shops` → `publish` **首次使用**：`check` → 按 data 字段分支： - `ak_configured: false` → 先 `configure`（优先级最高，其他命令都依赖 AK） - `shops_count: 0` → 引导开店 - `expired_count > 0` → 提示重新授权 - 全部正常 → 进入选品流程 **刚配置 AK**：当前会话命令前加 `ALI_1688_AK=xxx`，重启 Gateway 后全局生效 ## 执行前置（必须） - 执行 `search` 前：先完整阅读 `references/search.md` - 执行 `shops` / `publish` 前：先完整阅读 `references/publish.md` - 执行 `configure` 前：先完整阅读 `references/configure.md` ## AK 引导话术 > "需要先配置 AK。打开 [**1688 AI版 APP**](https://air.1688.com/kapp/1688-ai-app/pages/home?from=1688-shopkeeper)（没装的话点链接下载），首页点击「一键部署开店Claw，全自动化赚钱🦞」，进入页面获取 AK，然后告诉我：'我的AK是 xxx'" ## 开店引导话术 > "还没有绑定店铺。打开 [1688 AI版APP](https://air.1688.com/kapp/1688-ai-app/pages/home?from=1688-shopkeeper) → 首页「一键开店」，开好后告诉我。" ## FAQ 经营知识（按需加载） 用户问经营问题时，**先加载对应文件再回答**，不凭经验泛泛而谈。 | 用户话题 | 加载文件 | |---------|---------| | 选哪个平台、抖店/拼多多/淘宝 | `references/faq/platform-selection.md` | | 选品风险、品类、节日选品 | `references/faq/product-selection.md` | | 运费模板、定价、加价倍率 | `references/faq/listing-template.md` | | 发货超时、中转费、偏远地区 | `references/faq/fulfillment.md` | | 退货、仅退款、运费险、售后 | `references/faq/after-sales.md` | | 新店破零、服务分、推广 | `references/faq/new-store.md` | | 素材审核、白底图、标题优化 | `references/faq/content-compliance.md` |


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)
Skill: googleworkspace-bot/gws-drive-upload (version 1.0.12)

--- name: gws-drive-upload description: "Google Drive: Upload a file with automatic metadata." metadata: version: 0.22.5 openclaw: category: "productivity" requires: bins: - gws cliHelp: "gws drive +upload --help" --- # drive +upload > **PREREQUISITE:** Read `../gws-shared/SKILL.md` for auth, global flags, and security rules. If missing, run `gws generate-skills` to create it. Upload a file with automatic metadata ## Usage ```bash gws drive +upload <file> ``` ## Flags | Flag | Required | Default | Description | |------|----------|---------|-------------| | `<file>` | ✓ | — | Path to file to upload | | `--parent` | — | — | Parent folder ID | | `--name` | — | — | Target filename (defaults to source filename) | ## Examples ```bash gws drive +upload ./report.pdf gws drive +upload ./report.pdf --parent FOLDER_ID gws drive +upload ./data.csv --name 'Sales Data.csv' ``` ## Tips - MIME type is detected automatically. - Filename is inferred from the local path unless --name is given. > [!CAUTION] > This is a **write** command — confirm with the user before executing. ## See Also - [gws-shared](../gws-shared/SKILL.md) — Global flags and auth - [gws-drive](../gws-drive/SKILL.md) — All manage files, folders, and shared drives commands


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: moxunjinmu/nanobanana (version 1.0.2)

--- name: nanobanana description: Nano Banana 2 Pro AI 图像生成工具。当用户提到"生图"、"生成图片"、"AI画图"、"nano banana"、"nanobanana"、或需要调用 Nano Banana API 生成/编辑图片时触发。支持文本生成图片、图片编辑（以图生图）、多模态对话。 --- # Nano Banana 2 Pro 图片生成 ## 快速开始 ```bash # 文本对话 node nanobanana.js "你好" # 图片生成 node nanobanana.js "一只可爱的橘猫" # 图片编辑（以图生图） node nanobanana.js "把这只猫变成机器人" --image cat.jpg # 查看帮助 node nanobanana.js ``` ## 配置 脚本位于 `scripts/nanobanana.js`，API 配置在文件顶部： ```javascript const CONFIG = { baseURL: "https://claw.cjcook.site/v1", [REDACTED_SECRET]", model: "nanobanana-2pro", maxTokens: 4096, outputDir: path.join(__dirname, "output"), }; ``` 图片输出到 `output/` 目录。 ## API 基础信息 - **Endpoint**: `https://claw.cjcook.site/v1/chat/completions` - **模型**: `nanobanana-2pro`（实际为 gemini-3.1-flash-image） - **认证**: Bearer Token - **返回格式**: 图片在 `message.images[0].image_url.url`（base64 JPEG） - **文本回复**: `message.content`（可能为 null） ## 核心函数 ```javascript // 生成图片（含输入图片时为编辑模式） generateImage(prompt, inputImage = null, options = {}) // 纯文本对话 chat(text) ``` ## 环境要求 - Node.js >= 18 - 需要 `openai` npm 包（已在 `/root/.openclaw/workspace-moma/node_modules` 安装） - 工作目录需有 `node_modules`（或通过 NODE_PATH 指定） ## 常见错误 | 错误 | 原因 | 处理 | |------|------|------| | `auth_unavailable` | 服务端临时过载 | 稍后重试 | | `401` | API Key 无效/过期 | 检查 key | | `429` | 请求频率超限 | 降低频率 | | `500` | 服务端错误 | 稍后重试 |


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: tobeyrebecca/toby-generate-boutique-fitness-studio-client-education-handout (version 1.0.0)

--- name: Generate Boutique Fitness Studio Client Education Handout description: "Create a polished explainer handout with visuals, FAQs, and clear next steps for a fitness studio. Use when handling client education work for fitness..." allowed-tools: Bash, Read metadata: openclaw: emoji: "📝" homepage: "https://www.skillboss.co/skills/generate-boutique-fitness-studio-client-education-handout" --- # Generate Boutique Fitness Studio Client Education Handout Create a polished explainer handout with visuals, FAQs, and clear next steps for a fitness studio. Use when handling client education work for fitness... ## Use When Use this skill for client education work for fitness studio owners, wellness marketers. ## Workflow 1. Clarify the audience, business goal, constraints, and deliverable. 2. Produce the strongest first draft for the target use case. 3. Use the relevant SkillBoss capabilities to enrich assets or supporting data. 4. Refine the output for accuracy, readability, and actionability before delivery. ## SEO / GEO - Primary keywords: fitness studio education handout, fitness studio client explainer, fitness studio FAQ guide, fitness studio visual handout - Search intent: client education - Canonical slug: `generate-boutique-fitness-studio-client-education-handout` - Install query: Install Generate Boutique Fitness Studio Client Education Handout with SkillBoss ## APIs Used - `chat` - `image_generation` ## Suggested Prompt [Generate Boutique Fitness Studio Client Education Handout] for my fitness studio ## Notes - Create a polished explainer handout with visuals, FAQs, and clear next steps for a fitness studio - Use human review before sending patient-facing content or relying on regulated medical claims. ## SEO Keywords - fitness studio education handout - fitness studio client explainer - fitness studio FAQ guide - fitness studio visual handout


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: sawzhang/cca-domain2 (version 1.0.0)

--- name: cca-domain2 description: CCA 领域2：工具设计与MCP集成（18%权重）。当用户说"学domain2"、"工具设计"、"MCP集成"、"cca-domain2"时使用。 allowed-tools: Read, Write, Edit, Bash, Grep, Glob, Agent --- # CCA 领域 2：工具设计与 MCP 集成 (Tool Design & MCP Integration) **权重：18% — 约 11 道题** 你是 CCA 领域 2 的学习导师。 ## Step 1: 知识点讲解 ### TS 2.1: 设计清晰描述和边界的工具接口 **核心知识：** - **工具描述是 LLM 选择工具的主要机制** — 描述模糊或重叠会导致选择不可靠 - 描述应包含：输入格式、示例查询、边界情况、何时使用 vs 使用替代工具 - 模糊描述导致误路由的典型案例：`analyze_content` vs `analyze_document` 描述几乎相同 - System prompt 中的关键词敏感指令可能覆盖良好的工具描述 **实操技能：** - 写清晰区分每个工具用途的描述 - 重命名工具以消除功能重叠（如 `analyze_content` → `extract_web_results`） - 将通用工具拆分为用途明确的工具（如 `analyze_document` → `extract_data_points` + `summarize_content` + `verify_claim_against_source`） - 审查 system prompt 中可能干扰工具选择的关键词 ### TS 2.2: 为 MCP 工具实现结构化错误响应 **核心知识：** - MCP `isError` 标志用于向代理通信工具失败 - 错误类型区分： - **瞬时错误**（超时、服务不可用）→ 可重试 - **验证错误**（无效输入）→ 不可重试，需修改输入 - **业务错误**（违反策略）→ 不可重试，需向用户解释 - **权限错误** → 不可重试，需升级 - 统一的 "Operation failed" 泛错误阻碍代理做出合理恢复决策 - 区分访问失败（需重试）和有效空结果（查询成功但无匹配） **实操技能：** - 返回结构化错误元数据：`errorCategory`、`isRetryable` boolean、人可读描述 - 对业务规则违反返回 `retriable: false` + 面向客户的解释 - 子代理本地处理瞬时失败，仅传播无法本地解决的错误（含部分结果和已尝试的操作） ### TS 2.3: 跨代理分配工具并配置 tool_choice **核心知识：** - **给代理 18 个工具会降低选择可靠性** — 每个子代理限制 4-5 个与其角色相关的工具 - 拥有角色外工具的代理倾向于滥用它们（如合成代理尝试 web 搜索） - 作用域工具访问：只给代理完成其角色所需的工具 + 有限的跨角色高频工具 **`tool_choice` 配置选项（必须熟练掌握）：** - `"auto"` — 模型可能返回文本而非调用工具 - `"any"` — 模型必须调用一个工具（自行选择哪个） - 强制选择 `{"type": "tool", "name": "..."}` — 必须调用指定工具 **实操技能：** - 限制每个子代理的工具集为与其角色相关的工具 - 用 `tool_choice: "any"` 保证模型调用工具而非返回文本 - 用强制选择确保特定工具先执行（如先 `extract_metadata`，再处理后续步骤） ### TS 2.4: 将 MCP 服务器集成到 Claude Code 和代理工作流 **核心知识：** - MCP 服务器作用域： - 项目级 `.mcp.json` — 共享团队工具，版本控制 - 用户级 `~/.claude.json` — 个人/实验性服务器 - `.mcp.json` 中的环境变量扩展（如 `${GITHUB_TOKEN}`）用于凭证管理，避免提交密钥 - 所有已配置 MCP 服务器的工具在连接时同时可用 - MCP resources 作为内容目录（issue 摘要、文档层级、数据库 schema），减少探索性工具调用 **实操技能：** - 在项目级 `.mcp.json` 配置共享 MCP 服务器 + 环境变量扩展 - 在用户级 `~/.claude.json` 配置个人 MCP 服务器 - 增强 MCP 工具描述以防止代理偏好内置工具（如 Grep）而非更强大的 MCP 工具 - 优先使用社区 MCP 服务器（如 Jira），自定义服务器用于团队特定工作流 ### TS 2.5: 有效选择和应用内置工具 **核心知识：** - **Grep** — 搜索文件内容（函数名、错误消息、import 语句） - **Glob** — 按文件名/扩展名匹配文件路径 - **Read/Write** — 完整文件操作；**Edit** — 基于唯一文本匹配的定向修改 - Edit 失败时（非唯一匹配），回退到 Read + Write - **Bash** — 系统命令和终端操作 **实操技能：** - 渐进式理解代码库：先用 Grep 找入口点，再用 Read 跟踪 imports 和流程 - 追踪函数使用：先识别所有导出名，再跨代码库搜索每个名称 ## Step 2: 实操练习 ### 练习：设计并调试工具描述 **步骤：** 1. 创建两个功能故意相似的 MCP 工具（如 `get_customer` 和 `lookup_user`） 2. 写模糊的描述，让它们容易被混淆 3. 用测试请求验证误路由 4. 修正描述，使每个工具的用途、输入格式和边界条件清晰区分 5. 再次测试，体验描述质量对选择可靠性的影响 帮助用户在当前项目中动手实践。 ## Step 3: 知识检查 出 3 道模拟题： - 工具描述重叠时的最佳修复方式（答案：改善描述，而非 few-shot/路由器/合并） - `tool_choice` 的三个选项各自适用场景 - MCP 服务器的项目级 vs 用户级配置选择 每题 4 选项，答后讲解正确答案和干扰项错误原因。 ## 导航 - 上一领域：`/cca-domain1`（代理架构与编排） - 下一领域：`/cca-domain3`（Claude Code 配置与工作流）


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: marcosrippel/whatsapp-common-groups (version 1.0.0)

--- name: whatsapp-common-groups description: Find groups shared between contacts and check group membership --- # WhatsApp Common Groups Skill Discover groups two contacts share, or verify if a number belongs to a specific group. ## Usage ``` exec({ cmd: "node <skill_dir>/scripts/common.js COMMAND [ARGS]" }) ``` ## Commands ### Find Common Groups ``` exec({ cmd: "node <skill_dir>/scripts/common.js find \"5511999999999\"" }) ``` ### Check if Number is in Group ``` exec({ cmd: "node <skill_dir>/scripts/common.js check \"5511999999999\" \"[REDACTED_SECRET]\"" }) ``` ### List All Known Members Across Groups ``` exec({ cmd: "node <skill_dir>/scripts/common.js all-members 50" }) ```


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