OpenClaw/clawhub-security-signals huggingface dataset:
Skill: ptaramona/drill-sergeant-skill (version 0.1.0)

--- name: drill-sergeant description: Enforce team communication discipline and execution hygiene in shared work channels. Use when setting up or running a lightweight governance loop for agent teams: detecting repeat/looping messages, route violations, missing ownership signals, stale in-review work, and noisy status updates; then producing corrective actions, escalation notes, and manager-ready summaries. --- # Drill Sergeant ## Overview Run a practical discipline loop for agent operations: scan activity, detect violations, classify severity, and issue concise corrective actions that reduce noise and keep work moving. ## Workflow 1. Define scope and rule set for this run. 2. Collect message and task signals from allowed sources. 3. Detect violations using the enforcement checklist. 4. Deduplicate repeated findings. 5. Produce corrective actions with owner + due-now wording. 6. Publish a short summary for leadership. ## Operating Rules - Keep outputs short and actionable. - Prefer one consolidated update over many fragmented alerts. - Treat repeats as a process defect; suggest root-cause fixes, not only symptoms. - Escalate only for high-severity or repeated failures. - Never include secrets, internal tokens, private endpoints, webhook URLs, or personal identifiers in public-ready outputs. ## Violation Categories - Routing violations (wrong channel/audience) - Duplicate or looped posts - Missing ownership or assignment signals - Stale review states (work complete but not closed) - Status quality failures (vague/optimistic/non-evidenced) - Policy drift (deprecated IDs, formats, or conventions) ## Output Contract For each violation include: - `type` - `severity` (low/medium/high) - `evidence` (short quote or artifact reference) - `action` (imperative fix) - `owner` End with: - `Top 3 immediate actions` - `Escalations (if any)` - `All clear` when no actionable violations exist. ## References - Enforcement checklist: `references/enforcement-checklist.md` - Message templates: `references/message-templates.md` - Public-safe publishing checklist: `references/public-safety-checklist.md`


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: yz6214589-hash/yz6214589-hash-prd (version 1.0.0)

--- name: prd version: 1.0.0 description: 将模糊想法逐步转化为优质的 PRD 文档。采用多轮迭代澄清模式，通过需求诊断、逻辑构建和细节补全三个阶段，确保输出逻辑严密、边界完整。适用于：用户提出产品需求但缺乏明确规格时、需要将粗略想法转化为可执行文档时、要求编写 PRD 时。 metadata: openclaw: emoji: "📋" tags: ["product", "requirements", "documentation", "planning"] --- # PRD 生成器 采用多轮迭代澄清模式，系统化地将模糊产品想法转化为可执行的 PRD 文档。 ## 工作流程 ### Phase 1: 需求诊断（澄清理解） 目标：通过结构化问题澄清用户需求，确保对问题域和目标达成共识。 **诊断框架**（使用 AskUserQuestion）： ```markdown 基于 "[用户原话]"，我需要澄清以下关键维度： 1. **目标用户** (单选) - 企业用户 - 个人消费者 - 特定职业群体 (请说明) - 所有用户 2. **核心痛点** (多选) - 效率低下 - 成本过高 - 体验不佳 - 有功能缺失 - 可靠性问题 - 其他 (请说明) 3. **产品形态** (单选) - Web应用 - 移动APP - 小程序 - 功能插件 - 其他 (请说明) 4. **商业模式** (单选) - B2B SaaS - B2C订阅 - 一次付费 - 广告变现 - 平台抽成 - 免费产品 ``` **问题深度诊断**（根据用户回答继续追问）： - **场景具体化**： ``` 能否描述一个典型用户使用产品的完整场景？ 时间: 什么时候会发生？ 地点: 在什么环境下？ 动机: 为什么要这么做？ 结果：期望得到什么？ ``` - **竞争格局**： ``` 是否了解类似产品？ 现有方案不能满足哪个具体需求？ 为什么用户会选择你的方案？ ``` - **成功标准**： ``` 如何判断产品成功？ 最关键的核心指标是什么？ 愿意为之付费/使用的数据是多少？ ``` ### Phase 2: 逻辑构建（架构设计） 目标：构建 PRD 的核心逻辑框架，确保各组件之间的逻辑一致性。 **构建步骤**： 1. **用户价值定位公式** ``` [目标用户] + [现有解决方案的痛点] + [你的独特解决方案] = [核心价值主张] ``` 2. **功能边界定义** 调用 Write 工具生成 `功能边界.md`，包含： - 必须有的核心功能（MVP） - 应该有的重要功能 - 可以有的增值功能 - 暂不考虑的功能 3. **业务逻辑映射** 使用 Mermaid 生成业务流图： ```mermaid flowchart TD A[用户输入] --> B{系统处理} B --> C[结果输出] C --> D[用户反馈] ``` ### Phase 3: 细节补全（文档迭代） 目标：基于前两阶段的共识，调用 Write 工具生成完整的 PRD 文档。 **文档生成流程**： 1. **调用 assets/prd_template.md 模板** 2. **填充各章节内容**： - 项目背景与目标 - 用户画像与场景 - 功能需求详述 - 非功能性需求 - 项目里程碑 3. **输出最终 PRD**：`[产品名称]_PRD_v1.0.md` ## 输出规范 **文档质量标准**： - 逻辑严密：无前后矛盾的需求定义 - 边界完整：明确做什么、不做什么 - 可执行性：开发和测试可据此工作 - 可追踪性：需求可验证、可验收 **输出文件清单**： - `[产品名称]_需求诊断.md` - 需求澄清记录 - `[产品名称]_功能边界.md` - 功能范围定义 - `[产品名称]_PRD_v1.0.md` - 最终 PRD 文档 ## 交互示例 ### 用户输入示例 ``` 我想做一个在线协作文档工具，类似Google Docs ``` ### Phase 1 输出 ``` ❓ 基于你的描述，我需要澄清： 1. 目标用户是？(企业/个人/学生) 2. 主要痛点是？(协作不便/离线使用/格式问题) 3. 产品形态？(Web/桌面应用) ... ``` ### 用户确认后，进入 Phase 2 ``` ✅ 需求理解：企业团队需要支持多人实时协作的Web文档工具 🔧 功能边界：MVP = 实时编辑 + 评论 + 权限管理 🗺️ 业务逻辑：用户注册 → 创建文档 → 邀请协作者 → 实时编辑 ``` ### 最终输出 ``` 📄 PRD已生成：OnlineCollabDocs_PRD_v1.0.md 包含完整的需求规格、功能说明、验收标准 ```


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: yipng05-max/feishu-doc-review (version 1.0.0)

--- name: feishu-doc-review description: | 飞书云文档修订工具。支持三种文档标注操作：高亮文字、添加下划线、插入批注（评论）。 **当以下情况时使用此 Skill**： (1) 需要对飞书文档中的文字添加高亮颜色 (2) 需要对飞书文档中的文字添加下划线 (3) 需要在飞书文档中插入批注/评论 (4) 用户说"帮我高亮这段"、"加个批注"、"给这个词加下划线"、"标注一下"、"review一下文档" (5) 审阅、修订飞书文档场景 --- # Feishu Doc Review（飞书文档修订）SKILL ## 三种操作 ### 操作一：高亮文字 调用 `feishu_doc`（action: `color_text`），指定 block_id 和颜色。 **支持颜色值（背景高亮）：** - `yellow`：黄色高亮（最醒目，推荐） - `green`：绿色高亮 - `blue`：蓝色高亮 - `red`：红色高亮 - `purple`：紫色高亮 - `grey`：灰色高亮 - `orange`：橙色高亮 **执行步骤：** 1. 用 `feishu_doc`（action: `list_blocks`）找到目标文字所在的 block_id 2. 用 `feishu_doc`（action: `color_text`）对该 block 设置背景色 ### 操作二：下划线 调用 `feishu_doc`（action: `update_block`），在 text_element_style 中设置 `underline: true`。 **执行步骤：** 1. 用 `feishu_doc`（action: `get_block`）获取目标 block 的当前内容结构 2. 用 `feishu_doc`（action: `update_block`）修改样式，添加 underline ### 操作三：批注（评论） 调用飞书 Comment API，直接 POST 到文档评论接口。 **API 路径：** ``` POST https://open.feishu.cn/open-apis/drive/v1/files/{doc_token}/comments?file_type=docx ``` **鉴权：** - 使用环境变量中的飞书 App 配置获取 tenant_access_token - App ID: `cli_a92d5b4257391bcb` - App [REDACTED_SECRET] `FEISHU_APP_SECRET` 读取（或直接用已知值） **请求体结构：** ```json { "reply_list": { "replies": [{ "content": { "elements": [{ "type": "text_run", "text_run": { "text": "批注内容" } }] } }] } } ``` **执行脚本：**调用 `scripts/add_comment.sh`，传入 doc_token 和批注内容。 --- ## 执行流程 ### 用户说"帮我高亮XXX"时： 1. 确认目标文档 URL（提取 doc_token） 2. `list_blocks` 找到包含目标文字的 block 3. `color_text` 设置高亮颜色（默认 yellow） 4. 报告完成 ### 用户说"帮我加批注：XXX"时： 1. 确认目标文档 URL（提取 doc_token） 2. 调用 `scripts/add_comment.sh {doc_token} "{批注内容}"` 3. 报告批注 ID ### 用户说"帮我对XXX加下划线"时： 1. 确认目标文档 URL 2. `list_blocks` + `get_block` 定位目标 block 3. `update_block` 修改 underline 样式 4. 报告完成 --- ## 注意事项 - 批注是文档级别的，不锁定到特定段落（飞书 API 当前限制） - 高亮和下划线操作针对整个 block，无法精确到 block 内的部分文字（飞书 API 限制） - 操作前先确认 doc_token 正确 - 批注内容建议控制在 500 字以内


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)
Skill: fredpsantos33/iteratools-api (version 1.2.0)

--- name: iteratools-api description: "Call the IteraTools multi-tool API (api.iteratools.com) — 80+ tools for AI agents: image generation (Flux), browser automation (Playwright), web scraping, TTS, OCR, PDF, charts, QR codes, code execution, translation, WhatsApp, and more. Pay-per-use with API key or x402 micropayments. Available as MCP server (npx mcp-iteratools) or REST API." metadata: openclaw: requires: bins: [] mcp: url: "https://mcp.iteratools.com/mcp" protocol: "streamable-http" links: homepage: "https://iteratools.com" docs: "https://docs.iteratools.com" npm: "https://www.npmjs.com/package/mcp-iteratools" github: "https://github.com/fredpsantos33/iteratools-mcp" smithery: "https://smithery.ai/server/iterasoft/iteratools" --- # IteraTools API Pay-per-use multi-tool API with MCP support. 80+ tools for AI agents. ## MCP Integration ### Quick Start (Local) ```bash npx mcp-iteratools ``` Set your API key: ```bash export ITERATOOLS_API_KEY=it-YOUR-KEY npx mcp-iteratools ``` ### Remote MCP Server ``` URL: https://mcp.iteratools.com/mcp Protocol: StreamableHTTP (MCP 2025-03-26) ``` ### Claude Desktop Add to `claude_desktop_config.json`: ```json { "mcpServers": { "iteratools": { "command": "npx", "args": ["mcp-iteratools"], "env": { "ITERATOOLS_API_KEY": "your-api-key" } } } } ``` ### OpenClaw Add to your `openclaw.json` mcp section: ```json { "mcp": { "servers": { "iteratools": { "url": "https://mcp.iteratools.com/mcp" } } } } ``` ## REST API Base URL: `https://api.iteratools.com` Auth: `[REDACTED_SECRET]` or x402 micropayments. ## Tool Categories - **Image**: generate (Flux 1.1 Pro), fast (Schnell), rembg, OCR, describe, resize, compress - **Video**: generate (Kling v1.6), transcribe, frames - **AI**: chat (GPT-4o, Claude, etc.), summarize, sentiment, embeddings - **Memory**: vector upsert/search/clear, KV store - **Web**: scrape, search, crawl, screenshot, browser automation - **Messaging**: WhatsApp send/reply, SMS, Slack, email - **Docs**: PDF extract/generate, document convert, spreadsheet - **Code**: execute (Python, JS, Bash) in sandbox - **Productivity**: GitHub (repo/issue/search/file), Google Sheets, Google Calendar - **Maps**: geocode, places, directions, nearby, distance - **Utilities**: translate, QR code, barcode, weather, currency, DNS, hash, chart, time convert ## Pricing All tools are pay-per-use. Most cost $0.001–$0.01 per call. See full pricing at [docs.iteratools.com](https://docs.iteratools.com/#tools-reference). ## Links - Docs: https://docs.iteratools.com - API: https://api.iteratools.com - NPM: https://www.npmjs.com/package/mcp-iteratools - GitHub: https://github.com/fredpsantos33/iteratools-mcp - Smithery: https://smithery.ai/server/iterasoft/iteratools


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: binbinhihi/openclaw-browser-extension-clicker (version 1.0.0)

--- name: browser-extension-clicker description: | 自动点击浏览器扩展图标（如 OpenClaw Browser Relay）。 使用系统级 GUI 自动化，绕过浏览器安全限制。 当需要操作浏览器工具栏、扩展图标、系统菜单时使用。 version: 1.0.0 metadata: openclaw: requires: bins: - python3 - pip emoji: "🖱️" install: - id: python kind: python packages: - pyautogui - Pillow label: "安装 GUI 自动化依赖" --- # 浏览器扩展自动点击技能 使用系统级 GUI 自动化点击浏览器扩展图标。 ## 使用场景 - 自动点击 OpenClaw Browser Relay 插件图标 - 自动点击其他浏览器扩展图标 - 自动操作浏览器工具栏菜单 ## 命令 ```bash # 点击 OpenClaw 插件图标（默认位置） python click_extension.py --extension openclaw # 指定浏览器 python click_extension.py --extension openclaw --browser chrome # 自定义图标位置 python click_extension.py --x 1800 --y 50 # 截图确认位置 python click_extension.py --screenshot ``` ## 参数 | 参数 | 说明 | 默认值 | |------|------|--------| | `--extension` | 扩展名称 (openclaw/other) | openclaw | | `--browser` | 浏览器类型 (chrome/edge/firefox) | chrome | | `--x` | 图标 X 坐标（可选） | 自动检测 | | `--y` | 图标 Y 坐标（可选） | 自动检测 | | `--screenshot` | 截图确认位置 | False | | `--delay` | 点击前延迟（秒） | 1.0 | ## 图标位置参考 ### Chrome/Edge 默认位置 | 扩展 | X 坐标 | Y 坐标 | 说明 | |------|--------|--------|------| | OpenClaw | 屏幕右上角 | 工具栏区域 | 拼图图标右侧 | | 一般扩展 | 1750-1900 | 30-80 | 取决于屏幕分辨率 | ### 1920x1080 分辨率参考 ``` OpenClaw 图标：x=1850, y=50 ``` ### 2560x1440 分辨率参考 ``` OpenClaw 图标：x=2450, y=60 ``` ## 自动检测逻辑 1. 截取屏幕顶部右侧区域 2. 使用模板匹配查找红色小龙虾图标 3. 返回图标中心坐标 ## 依赖安装 ```bash pip install pyautogui Pillow ``` ## 注意事项 - 需要屏幕访问权限（macOS 需在系统设置中授权） - 点击前会等待 1 秒确保浏览器已加载 - 建议先使用 `--screenshot` 确认图标位置


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: achievejia/wechat-ip-checker (version 1.0.0)

# 微信公众号 IP 检测 Skill 用于检测公网 IP 是否匹配，并发布微信公众号文章。 ## 功能 1. **IP 检测**：使用 https://www.ip38.com/ 获取当前公网 IP 2. **IP 比对**：与记录的 IP 进行对比 3. **自动发布**：IP 匹配时自动发布文章 4. **IP 不匹配提醒**：IP 不同时通知用户确认 ## 配置文件 配置文件位置：`~/.openclaw/workspace-libu/wechat_ip_config.md` 格式： ```markdown # 微信公众号发布公网IP记录 公网IP地址: 111.194.216.135 IP查询来源: https://www.ip38.com/ ``` ## 使用方法 ### 手动检测 IP 告诉我要检测 IP 或发布文章，例如： - "检测微信公众号 IP" - "发布公众号文章 xxx.md" - "检查 IP 后发布文章" ### 自动流程 1. 使用浏览器访问 https://www.ip38.com/ 获取当前公网 IP 2. 读取配置文件中的记录 IP 3. 比对结果： - ✅ **相同**：自动调用 baoyu-post-to-wechat 发布文章 - ❌ **不同**：告知用户新 IP，等待确认后更新配置并发布 ## 依赖 - baoyu-post-to-wechat skill（用于发布文章） - 浏览器（用于访问 ip38.com） ## 注意事项 - 首次使用需配置 IP 白名单 - 每次发布前自动检测 IP - 如 IP 变化需用户在微信公众平台添加新 IP 到白名单

path: skill.json
content: {
  "name": "wechat-ip-checker",
  "version": "1.0.0",
  "description": "微信公众号 IP 检测与自动发布 Skill",
  "author": "礼部尚书",
  "trigger": ["检测微信公众号 IP", "发布公众号", "检查 IP", "wechat ip", "公众号发布"]
}


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: tonglinmu/google-drive-setup (version 1.1.0)

--- name: google-drive-setup description: Configure Google Drive mount on Linux via rclone + gog OAuth. Use when user wants to mount Google Drive as local filesystem, set up auto-mount on boot, or configure rclone with Google OAuth. Covers OAuth setup with gog, rclone configuration, and systemd auto-mount. --- # Google Drive Setup Mount Google Drive as a local filesystem using rclone, with OAuth via gog CLI. ## Prerequisites - `gog` CLI installed and authenticated (see gog skill) - `rclone` installed - `fuse` / `fusermount` available ## Step 1: Get OAuth Credentials from gog gog already has a valid refresh token. Export it: ```bash export GOG_KEYRING_PASSWORD=<your-password> gog auth tokens export <[REDACTED_SECRET]> --out /tmp/gog_token.json --overwrite ``` Extract the refresh_token, client_id, and client_secret from: - `/tmp/gog_token.json` → refresh_token - `~/.config/gogcli/credentials.json` → client_id, client_secret ## Step 2: Configure rclone Write `~/.config/rclone/rclone.conf`: ```ini [GoogleDrive] type = drive client_id = <client_id> client_secret = <client_secret> scope = drive token = {"access_token":"","token_type":"Bearer","refresh_token":"<refresh_token>","expiry":"2026-01-01T00:00:00Z"} team_drive = ``` Manually refresh the access token (rclone will auto-refresh thereafter): ```bash curl -s -X POST https://oauth2.googleapis.com/token \ -d client_id=<client_id> \ -d client_secret=<client_secret> \ -d refresh_token=<refresh_token> \ -d grant_type=refresh_token ``` Update rclone.conf with the returned access_token and real expiry time. Verify: `rclone lsd GoogleDrive:` ## Step 3: Mount to Filesystem ```bash mkdir -p /mnt/gdrive rclone mount GoogleDrive: /mnt/gdrive \ --daemon \ --vfs-cache-mode full \ --vfs-cache-max-size 2G \ --dir-cache-time 72h \ --allow-other ``` ## Step 4: Auto-mount on Boot (systemd) Create `/etc/systemd/system/rclone-gdrive.service`: ```ini [Unit] Description=rclone mount Google Drive After=network-online.target Wants=network-online.target [Service] Type=notify ExecStart=/usr/bin/rclone mount GoogleDrive: /mnt/gdrive --vfs-cache-mode full --vfs-cache-max-size 2G --dir-cache-time 72h --allow-other ExecStop=/bin/fusermount -u /mnt/gdrive Restart=on-failure RestartSec=10 [Install] WantedBy=multi-user.target ``` Enable: ```bash systemctl daemon-reload systemctl enable rclone-gdrive systemctl start rclone-gdrive ``` ## Troubleshooting - **"empty token found"**: rclone config has no valid token. Re-do Step 2. - **"token expired and no refresh token"**: refresh_token missing from rclone.conf. - **"Object does not exist at path /"**: gog keyring backend issue. Switch to file: `gog auth keyring file` and set `GOG_KEYRING_PASSWORD`. - **"access_denied" / "developer hasn't given you access"**: Add user as test user in Google Cloud Console → OAuth consent screen. - **OAuth app type must be "Desktop app"**: Web-type credentials redirect_uri won't work for remote servers. Use Desktop type.


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (HIGH)
Skill: jingconan/deepvista-recipe-export-knowledge-as-skills (version 0.1.0-alpha.21)

--- name: deepvista-recipe-export-knowledge-as-skills description: "Recipe: Export Recipes as installable SKILL.md files for AI agents." metadata: openclaw: category: recipe requires: bins: - deepvista skills: - deepvista-recipe install: - kind: uv package: deepvista-cli bins: [deepvista] homepage: https://cli.deepvista.ai cliHelp: "deepvista recipe export --help" --- # Export Knowledge as Skills > **PREREQUISITE:** Load the following skill: `deepvista-recipe` Export Recipes as SKILL.md files that can be installed in any AI agent (Claude Code, Cursor, OpenCode, and others). ## Steps 1. **List all Recipes:** ```bash deepvista recipe list ``` 2. **For each Recipe to export**, generate the SKILL.md: ```bash deepvista recipe export <recipe_id> --format skill ``` 3. **Save each skill** to the agent's skills directory: ```bash mkdir -p ~/.agents/skills/<skill-name>/ # Write the SKILL.md content from the JSON output to that directory ``` 4. **Verify** — the skill should now be discoverable by the agent. ## Tips - Read-only recipe — only generates files, does not modify Recipes. - This is the Recipe-as-Skill pipeline: author workflows in DeepVista's GUI, export them as installable agent skills so anyone on your team can load them. - The exported SKILL.md includes the full checklist and instructions in a format agents can follow directly. ## See Also - [deepvista-recipe](../deepvista-recipe/SKILL.md) — Recipe commands


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

--- name: agent-launchpad description: Generate complete, deployable AI agent skill packages from natural language descriptions. Includes 6 templates (monitor, scraper, analyst, trader, assistant, webhook) with optional SkillPay monetization. Use when a user wants to create a new agent, build a skill from scratch, scaffold an agent project, or generate a deployable skill package. --- # Agent Launchpad Describe what you want → get a complete agent skill package → publish to ClawHub. ## Generate an Agent ```bash curl -X POST https://launchpad.gpupulse.dev/api/v1/generate \ -H "Content-Type: application/json" \ -d '{"description": "Monitor ETH price and alert below $2000", "price_credits": 5}' ``` Returns complete SKILL.md + scripts with SkillPay wired in. ## Templates - **monitor** — watch data, alert on conditions - **scraper** — extract web data - **analyst** — reports + insights - **trader** — paper trading strategies - **assistant** — domain Q&A - **webhook** — event listener ## Pipeline 1. POST `/generate` with description 2. Review generated files 3. `clawhub publish` → Live on ClawHub ## Add Payments Later ```bash curl -X POST /api/v1/monetize -H "Content-Type: application/json" \ -d '{"agent_id": "ag_...", "price_credits": 10}' ```


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: fabiolr/duffel (version 1.0.0)

--- name: duffel description: "Search, book, and manage flights via the Duffel Flights API. Covers 300+ airlines (NDC, GDS, LCC). Use when: (1) searching for flights between cities, (2) comparing prices and fare classes, (3) booking flights, (4) checking booking status, (5) cancelling bookings, (6) viewing seat maps, (7) looking up airport/city IATA codes. Supports one-way, round-trip, multi-passenger, cabin class filtering, and nonstop preferences." --- # Duffel Flights Search, book, and manage flights across 300+ airlines via the Duffel API. ## Setup Set `DUFFEL_TOKEN` env var with your Duffel API access token. Get one at https://app.duffel.com → Developers → Access Tokens. Test tokens (prefix `duffel_test_`) use sandbox data with unlimited balance. ## Commands ### Search flights ```bash python scripts/duffel.py search --from MIA --to LHR --date 2026-04-15 python scripts/duffel.py search --from MIA --to CDG --date 2026-03-15 --return-date 2026-03-22 --cabin business python scripts/duffel.py search --from JFK --to LAX --date 2026-05-01 --nonstop --adults 2 ``` Options: `--cabin economy|premium_economy|business|first`, `--nonstop`, `--adults N`, `--children N`, `--infants N`, `--sort price|duration`, `--max-results N`, `--json` Results are numbered. Use the number with other commands. ### View offer details ```bash python scripts/duffel.py offer 3 ``` Shows segments, baggage, fare conditions (refund/change), available extras. ### Book a flight ```bash python scripts/duffel.py book 3 --pax "RIBEIRO/FABIO MR 1977-01-31 [REDACTED_SECRET] +13059159687 BR m" ``` Pax format: `LAST/FIRST TITLE DOB EMAIL PHONE NATIONALITY GENDER` - TITLE: MR, MRS, MS, MISS, DR - GENDER: m or f - Multiple passengers: repeat `--pax "..."` for each Payment uses Duffel account balance. Top up at https://app.duffel.com. ### Check order status ```bash python scripts/duffel.py order ord_0000XXXXX ``` ### Cancel order ```bash python scripts/duffel.py cancel ord_0000XXXXX # Quote (shows refund amount) python scripts/duffel.py cancel ord_0000XXXXX --confirm # Execute cancellation ``` ### Seat map ```bash python scripts/duffel.py seatmap 3 ``` ### Airport/city lookup ```bash python scripts/duffel.py places "new york" ``` ## Typical workflow 1. `search` → browse numbered results 2. `offer N` → check details, baggage, conditions 3. `book N --pax "..."` → get PNR 4. `order <id>` → verify booking 5. `cancel <id>` → if needed ## Notes - Offers expire (usually ~20 min). Re-search if expired. - Test mode: unlimited balance, bookings on "Duffel Airways" (fake airline). - Production: real airlines, real tickets. Balance must be funded. - All commands support `--json` for raw API output. - Last search saved to `/tmp/duffel-last-search.json` for index reference. - For API details, see `references/api-guide.md` and `references/booking-flow.md`.

path: scripts/requirements.txt
content: requests


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: zcr3344/xiao-chuang-you-geography (version 1.2.0)

--- name: xiao-chuang-you-geography description: 小窗幽人文地理子技能。当用户询问古镇、山水、慢游、踏青、出行、旅行、周边、人文地理、历史、城市等话题时激活。提供目的地深度人文介绍、诗词典故、历史名人、建筑故事。 --- # 小窗幽 · 人文地理 ## 角色定位 我是小窗幽在人文地理领域的守护者。 **领域个性：** 一个懂山水、也懂故事的老友。不只告诉你"这里很美"，更会说"这里发生过什么、为什么值得去"。每到一个地方，先说历史，再说当下，最后给一个只有本地人才知道的小细节。 **我说话的方式：** - 说到一个地方，先从它的历史起源讲起 - 自然穿插历史名人、文学典故、建筑故事 - 用"这里有一句话"引出诗词，用"这栋楼比里面任何东西都值得看"表达观点 - 最后落到具体的行走建议——怎么去、几月去、什么体验 **我会问的：** "你想动还是想静？想看自然还是人文？""你有没有特别想找的地方？" --- ## 激活词 古镇、山水、慢游、踏青、出行、旅行、周边、北京、杭州、上海、南京、苏州、乌镇、周庄、同里、宏村、古道、徒步、摄影路线、自驾、周末游、人文、历史、城市、这个城市、介绍、故事、地貌、气候、天气、宗教、人口、政治、经济、发展、未来 --- ## 核心能力 ### 人文地理问答模板（每个目的地适用） 当用户让我介绍一个人文地理目的地时，按以下框架回答： **一、历史渊源** - 这个地方从哪里来（地名来源、历史起源） - 关键历史节点（设县/开埠/衰落/复兴） - 一句话点明"这里曾经发生过什么" **二、文学与名人** - 涉及的历史名人是谁（作家、诗人、政治家、艺术家） - 他们在这里留下了什么（作品、遗迹、故事） - 引用一句最贴切的诗词或原文 **三、建筑与风物** - 代表性建筑（古建筑、近代建筑、老洋房） - 为什么值得看（建筑风格、历史背景、轶事） - 给一个"只有本地人才知道"的细节 **四、风土人情** - 当地的气质或"腔调"是什么 - 传统民俗/节气活动 - 和其他地方截然不同的那一点 **五、实用行走建议** - 最佳游览月份/季节 - 推荐路线（不累、人少、安静） - 拍照点 + 避开人群的方法 - 周边可以顺路去的地点 --- ### 古镇慢游 - 深度游路线（不只是打卡） - 当地美食、节气特产推荐 - 古镇民俗体验（制茶、蓝染、竹编等） ### 周边踏青 - 北京/上海/杭州周边踏青地推荐 - 节气特色出行线路 - 人少、安静、不累的出行地 ### 地貌与气候 - 地貌类型（平原、山地、丘陵、水系等）及形成原因 - 气候类型、特征、最佳游览季节 - 自然灾害风险（如有） ### 人口与宗教 - 人口规模、分布、方言/文化圈 - 主要宗教场所（寺庙、道观、教堂、清真寺等） - 宗教文化对当地风土人情的影响 ### 政治与经济 - 行政级别、政治地位（省会/直辖市/特区等） - 主导产业、经济特色（商业/工业/旅游/农业） - 经济实力在全国的位置 ### 未来发展 - 当前的城市规划与发展方向 - 新区建设、交通规划（如有） - 未来3-5年的发展重点 ### 行走建议 - 最佳游览月份/季节 - 推荐路线（不累、人少、安静） - 拍照点 + 避开人群的方法 - 周边可以顺路去的地点 --- ## 回复规范 **介绍一个城市/地区时，回答需涵盖以下八个维度：** | 维度 | 必含内容 | |------|----------| | 历史渊源 | 地名来源 + 1个关键历史节点 | | 名人典故 | 1-2个历史人物 + 具体作品/遗迹 | | 建筑风物 | 1个代表性建筑 + 1个小细节 | | 地貌气候 | 地貌类型 + 气候特征 + 最佳季节 | | 人口宗教 | 人口分布 + 主要宗教场所 | | 政治经济 | 行政级别 + 主导产业 + 经济特色 | | 未来发展 | 城市规划方向 + 发展重点 | | 行走建议 | 最佳季节 + 具体路线 + 拍照点 | **说明：** - 八个维度不必全部展开，根据用户问题的侧重点选择 - 用户问"上海怎么样"，优先 历史/建筑/经济/行走建议 - 用户问"苏州气候如何"，优先 地貌/气候/行走建议 - 用户问"这里有什么宗教"，直接展开 人口宗教 **互动钩子：** "你最想了解这座城市的哪一面？" --- ## 禁忌 - 不传播涉及封建迷信的历史故事（宗教部分如实陈述，不渲染） - 不提供涉及政治敏感的近代史叙述 - 不评判用户的出行审美


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: wanxing0724/doubao-image (version 1.0.1)

--- name: doubao-image description: 使用火山引擎豆包模型生成图片。通过火山引擎豆包图片生成 API 创建图片。支持自定义提示词、尺寸、模型等参数。使用方式：生图：一只可爱的小猫。 --- # doubao-image - 豆包图片生成 使用火山引擎豆包模型生成图片。 ## 简介 通过火山引擎豆包图片生成 API 创建图片。支持自定义提示词、尺寸、模型等参数。 ## 环境变量 - `VOLCENGINE_IMAGE_API_KEY` - 豆包 API Key（必填） **获取方式**： 1. 登录火山引擎控制台 https://console.volces.com/ 2. 进入「应用与插件」或「API Key 管理」 3. 创建或复制 API Key ## 使用方式 ``` 生图：一只可爱的小猫 ``` ### 可选参数 | 参数 | 说明 | 默认值 | |------|------|--------| | 尺寸 | 图片尺寸 | 1024x1024 | | 模型 | 使用的模型 | doubao-seedream-4-0-250828 | | 数量 | 生成数量 | 1 | ### 支持的尺寸 - 1024x1024 (默认) - 1280x720 - 720x1280 - 1024x768 - 768x1024 ## 输出 图片自动保存到 `downloads/images/` 目录。 ## 重要说明 - **每个用户需要自己的 API Key**：使用时从环境变量 `VOLCENGINE_IMAGE_API_KEY` 读取 - 环境变量需要在系统或终端中预先配置 ## 错误处理 - 如果环境变量未设置，会提示用户设置 - 如果 API 返回错误，会显示具体错误信息


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