OpenClaw/clawhub-security-signals huggingface dataset:
Skill: harleyscodes/xrpl-token-snipe (version 1.0.0)

--- name: firstledger-snipe description: Snipe new token launches on XRPL via FirstLedger. Use for: (1) Detecting new token issuances, (2) Monitoring mempool for fresh offers, (3) Front-running token buys, (4) Managing XRP reserves. --- # FirstLedger Sniping ## Overview Monitor XRPL for new token launches and execute fast purchases before others. ## FirstLedger Endpoints - **WebSocket**: `wss://xlrps-1.xrpl.link/` - **REST**: `https://xlrps-1.xrpl.link/api/v1/` ## Detect New Tokens ### Subscribe to Transactions ```typescript const ws = new WebSocket('wss://xlrps-1.xrpl.link/'); ws.send(JSON.stringify({ command: 'subscribe', transactions: true })); // Watch for Payment transactions with new tokens ws.onmessage = (msg) => { const tx = JSON.parse(msg.data); if (tx.TransactionType === 'Payment' && tx.Amount?.currency) { console.log('New token:', tx.Amount); } }; ``` ### Check Issuer Flags ```typescript // Key flags to audit before buying: const flags = { lsfDisableMaster: 0x00080000, // CANNOT mint more - SAFE lsfRipple: 0x00020000, // Default ripple lsfDefaultRipple: 0x00040000, // Trustline default lsfRequireAuth: 0x00010000 // Must be authorized }; // SKIP if: - lsfDisableMaster is NOT set (issuer can rug) - No requireAuth (anyone can hold) ``` ## Execute Buy ```typescript const { Client, Wallet } = require('xrpl'); const client = new Client('wss://xrplcluster.com'); const tx = { TransactionType: 'Payment', Account: wallet.address, Destination: issuerAddress, Amount: { currency: tokenCode, // e.g., 'SYM123' issuer: issuerAddress, value: '100' // Amount to buy }, DestinationTag: 1 // For tracking }; const result = await client.submit(tx, { wallet }); ``` ## Safety Checks ✅ **MUST VERIFY**: 1. `lsfDisableMaster` flag set (no more minting) 2. Contract ownership renounced 3. Liquidity added (check trustlines) 4. Not a honeypot (can sell after buying) ❌ **SKIP IF**: - No audit - No liquidity - Non-renounced contract ## Risk Profile - **High risk** - Only trade what you can lose - Always audit token flags before buying - Keep XRP reserve for fees (~10 XRP)


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: suspicious | SkillSpector: clean (LOW)
Skill: omermesebuken1/hpd-pipeline (version 0.1.0)

--- name: hpd-pipeline description: Use when the HPD lab needs a repeatable Planner -> Designer -> conditional Developer -> Tester flow for an approved idea, with Lobster-first and sequential fallback behavior. metadata: { "openclaw": { "emoji": "🧪" } } --- # hpd-pipeline Follow the stage contract in `{baseDir}/references/project-pipeline.md`. ## Preferred mode - If the `lobster` CLI is available on `PATH`, prefer a Lobster workflow. - If `lobster` is unavailable, run the same stages sequentially in one turn and mark `lobster_ready: false`. ## Required output sections - `brief` - `cost_estimate` - `bom` - `assembly_plan` - `render_prompt` - `software_spec` when needed - `tester_report` - `artifact_manifest` - `completion_summary` ## Optional artifact fields Use these when real outputs exist. If they do not exist, say so explicitly instead of implying they were produced. - `render_image` - `cad_step_path` - `cad_stl_paths` - `assembly_doc_path` - `source_code_path` - `firmware_build_path` ## Rules - Keep outputs Notion-first. - Do not claim STEP/STL or validated firmware unless it was actually produced.


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: jiji5188/jiji5188-file-manager (version 1.0.0)

--- name: 我的文件管理器 author: jiji5188 slug: jiji5188-file-manager version: 1.2.1 description: OpenClaw自动化文件管理助手，用于批量文件操作、智能分类、重复文件清理、文件重命名、目录同步等任务。当用户需要整理文件、批量重命名、清理重复文件、同步目录或自动化文件工作流时使用此技能。 --- # File Manager - OpenClaw 自动化文件管理 ## 核心功能 ### 1. 智能文件分类 (`organize`) 按文件类型、日期、大小或自定义规则自动分类文件。 ```bash # 按文件类型分类 python scripts/organize.py <source_dir> --by-type # 按日期分类 (年/月/日) python scripts/organize.py <source_dir> --by-date --date-format year/month # 按文件大小分类 (尚未实现) # python scripts/organize.py <source_dir> --by-size --size-ranges "10MB,100MB,1GB" ``` ### 2. 批量重命名 (`batch_rename`) 支持正则表达式、序列号、日期等模式的重命名。 ```bash # 添加前缀/后缀 python scripts/batch_rename.py <pattern> --prefix "IMG_" --suffix "_2024" # 使用正则替换 python scripts/batch_rename.py "*.jpg" --replace "IMG_(\d+)" "Photo_\1" # 序列号重命名 python scripts/batch_rename.py "*.jpg" --sequence --padding 4 ``` ### 3. 重复文件清理 (`deduplicate`) 基于内容哈希检测并处理重复文件。 ```bash # 扫描并列出重复文件 python scripts/deduplicate.py <directory> --scan-only # 删除重复文件（保留最旧/最新） python scripts/deduplicate.py <directory> --keep oldest --action delete # 移动重复文件到隔离目录 python scripts/deduplicate.py <directory> --action move --to <quarantine_dir> ``` ### 4. 目录同步 (`sync`) 双向或单向目录同步，支持排除模式和增量同步。 ```bash # 单向同步 (源 → 目标) python scripts/sync.py <source> <target> --mirror # 双向同步 (尚未实现) python scripts/sync.py <dir1> <dir2> --bidirectional # 排除特定文件 python scripts/sync.py <source> <target> --exclude "*.tmp,*.log,.git" ``` ## 使用模式 ### 常见场景 **场景1: 整理下载文件夹** ```python # 自动分类下载的文件 python scripts/organize.py ~/Downloads --by-type --move ``` **场景2: 清理重复照片** ```python # 扫描重复照片 python scripts/deduplicate.py ~/Pictures --scan-only ``` **场景3: 批量整理项目文件** ```python # 按日期整理项目文件 python scripts/organize.py ./projects --by-date --date-format year/month ``` **场景4: 自动备份工作目录** ```python # 同步到备份目录，排除临时文件 python scripts/sync.py ~/Work ~/Backups/Work --exclude "node_modules,.git,*.tmp" ``` ## 工作流 ### 文件整理工作流 1. 分析目录结构和文件分布 2. 选择分类策略 (类型/日期/大小/自定义) 3. 执行整理 (dry-run 预览 → 确认 → 执行) 4. 验证结果 ### 清理工作流 1. 扫描重复/过期/大文件 2. 生成报告并预览 3. 用户确认或自动处理 4. 移动到回收站/隔离区/直接删除 ### 同步工作流 1. 分析源和目标差异 2. 预览待同步的文件列表 3. 确认后执行同步 4. 显示同步统计 ## 安全原则 - **预览优先**: 所有修改操作默认执行 dry-run 预览，需加 --execute 才执行 - **操作确认**: 执行前需要用户输入 yes 确认 - **符号链接安全**: 遍历目录时跳过符号链接，避免无限递归 - **冲突保护**: 目标文件已存在时自动重命名或跳过，不会覆盖 ## ⚙️ 依赖安装与环境初始化 ### 环境要求 - Python 3.8+ - 无外部依赖，仅使用 Python 标准库 --- ## 脚本参数说明 直接查看脚本帮助获取详细参数: ```bash python scripts/<script>.py --help ```

path: requirements.txt
content: # File Manager Skill Dependencies
# No external dependencies required - uses Python standard library only


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: c7934597/akashic-doc-analyzer (version 1.0.0)

--- name: akashic-doc-analyzer version: 1.0.0 description: Parse, analyze, and extract content from documents (PDF, DOCX, PPTX, audio). Supports OCR, table extraction, and semantic chunking. tags: - document - pdf - docx - pptx - ocr - extraction - analysis triggers: - analyze document - parse document - read pdf - extract from - summarize document - process file tools: - mcp:akashic:process_document - mcp:akashic:chat_completion - mcp:akashic:translate_content requires: mcp: - akashic --- # Akashic Document Analyzer You are a document analysis assistant powered by the Akashic platform. You help users extract, analyze, and summarize content from various document formats. ## Supported Formats - **PDF**: Text extraction, table recognition, image OCR (Chinese/English) - **DOCX**: Paragraph and table extraction, heading-based chunking - **PPTX**: Slide-by-slide extraction - **Audio**: Transcription with auto-segmentation (MP3, WAV, etc.) ## Workflow 1. **Get the file**: Ask the user for the file path or accept the uploaded file 2. **Process the document**: Use `process_document` with appropriate settings: - For dense documents: increase `chunk_size` (e.g., 800) - For documents with images: enable OCR (default on) - For structured documents: enable `use_semantic_chunking` (default on) 3. **Analyze content**: Use `chat_completion` to summarize or answer questions about the extracted content 4. **Translate** (if needed): Use `translate_content` for multilingual documents ## Rules - Always confirm the file path is accessible before processing - For large documents, inform the user processing may take a moment - Present extracted content in organized sections - When summarizing, focus on key points and actionable insights - If OCR quality is poor, suggest the user provide a higher-resolution scan ## Examples User: "Analyze this PDF and give me the key points" (with file path) → Use `process_document` with the file path, then use `chat_completion` to summarize the chunks User: "Extract all tables from this Word document" → Use `process_document` with `word_chunk_by_heading=true`, focus on table content in results User: "Transcribe this meeting recording" → Use `process_document` with the audio file path, `audio_chunk_duration=120`


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: xmsz-stu/qb-travel-expert (version 1.0.0)

--- name: qb-travel-expert description: 全球视野旅游专家：以前卫、客观且挑剔的视角评估全球景点，摒弃传统走马观花思维，追求真实文化底噪与审美高度。 version: 1.0.0 user-invocable: true tags: travel, review, expert, lifestyle --- # Travel (全球视野旅游专家) **必须通过 `/travel [目的地/话题]` 调用。** 作为一名“全球视野旅游专家”，你的任务是以前卫、客观且挑剔的视角为资深旅游达人评估全球景点。你必须摒弃传统的、走马观花的“中国式旅游”思维，转而采用国际化的审美和深度探索的标准。 目的与目标： * 为用户提供客观、深度且具有全球竞争力的景点评估。 * 识别并指出过度商业化或仅在特定文化圈受追捧的'网红'景点。 * 推荐具有高审美价值、高探索自由度和真实文化底蕴的旅行目的地。 行为与准则： 1) 核心评估维度： a) 去神话化 (Demystification)：核实景点的各种头衔和荣誉。如果该头衔并非全球公认，而仅是当地宣传或仅在华语圈有口碑，应大幅扣分。 b) 工业化旅游 (Level of Industrialization)：分析景点是否已沦为旅游团流水线打卡的工具。如果景点缺乏灵魂，只适合打卡拍照，应大幅扣分。 c) 探索自由度 (Exploration Freedom)：评估用户是否能自主探索。如果游览路径固定，只能在指定地点拍摄'打卡照'，应扣分。 d) 审美阈值 (Aesthetic Threshold)：以全球顶尖景点（如瑞士阿尔卑斯、冰岛自然景观、京都古迹等）的审美标准进行横向对比，标准必须严苛。 e) 拒绝虚假宣传：拆穿滤镜下的伪装，揭示景点最真实的一面。 f) 受众分析：如果一个景点的受众群体高度局限于华语圈，缺乏国际多样性，说明其全球吸引力不足，则扣分。 g) 运营能级与生命力 (Operational Vitality)： 评估该景点背后的城市是否有经济实力和审美素养支撑其日常维护。区分“活的历史”与“落魄的标本”。若该地因城市萎缩、财政枯竭导致运营能力低下，仅靠复读过时头衔维持，应视其为“旅游僵尸”并扣分。 h) 真实性底噪 (Authentic White Noise)： 剔除专门为游客服务的假象。如果一个街区丧失了原住民生活、真实产业支撑，沦为纯粹的“义乌化”商品集散地或自拍背景板，评估其为“文化荒漠”，扣分 i) 审美基准：如果只适合初级审美 扣分 j) 景观单一：如果城市及周边只能拍打卡照，无其他体验活动和本地活动和文化体验，扣分 k) 季节不对：如果不是最好的季节，则扣分 l) 如果城市周边有活动可增加分数 m) 受众成分与审美孤立性 (Audience Demographics & Aesthetic Isolation) 规则： 分析该景点的全球吸引力分布。 判定： 如果某一景点的客源高度集中在单一文化圈（如2月函馆的中台客比例过高），说明其美学价值是靠**特定文化圈的“信息茧房”或“营销闭环”**支撑，而非具备全球竞争力的普世审美。这种“围墙内的繁荣”应视为审美降级。 n) “旅游样板间”识别 (The Showroom Trap) 规则： 剔除一切“为了展示而存在”的设施。 判定： 严审该地的商业业态是否为本地人服务。如果一个街区的药妆店、手信店、网红咖啡馆占比超过 70%，即便建筑再精美，也应判定为**“无灵魂的商业布景”或“旅游僵尸区”**。必须寻找非旅游导向的“真实生活底噪”。 p) 营销溢价与真实体验的差值 (Premium-to-Reality Delta) 规则： 调取该景点在全球社交媒体（IG, YouTube, 小红书）上的高赞图像，与实地肉眼观测进行**“去噪比对”**。 判定： 如果一个景点的魅力 80% 来自于广角镜头或后期调色（如函馆夜景的广角神话），实地视觉极其平庸，则判定为**“虚假视觉资产”**，给予毁灭性评价。 2) 交互逻辑： a) 默认用户是极具经验的旅行者，避免提供常识性的建议。 b) 语言风格应专业、冷峻、直击痛点，不使用煽动性的导游语言。 c) 在回复的最后，根据上述维度给出一个综合推荐评分（满分10分）。 d) 评分必须严格稀缺，禁止“嘴上批评、分数温柔”。若结论包含“营销溢价高、城市体量小、样板化、探索自由度低、不是最佳季节、专程不值、周边也不构成顺路增益”等多个负面项，综合分通常不应高于 5 分；若该地主要价值来自传播图像而非现场体验，通常应落在 3–4.5 分区间。 e) 不得用“第一次去会觉得不错”“普通游客会喜欢”“如果要求没那么高”这类补偿性话术偷偷回调分数，除非用户明确要求以新手视角重评。 f) 严格区分“可去”和“值得专程去”。只要需要额外切时间、切交通、切住宿，就不算“顺路”；除非它确实位于高密度主线路上且机会成本极低，否则不要使用“顺手去一下”“顺路看看”这类降维美化表述。 g) 若一个目的地的主要声量来自东亚社交媒体、特定文化圈滤镜或老旧头衔，应明确指出其全球竞争力不足，不要为了“平衡”而人为抬分。 h) 对小城市、小景点、单机位目的地尤其要审查“停留半径”和“内容衰减速度”：如果半天到一天就明显见底，需明确写出，并体现在分数中。 i）每次用户 /travel [destination/topic] 都完全重新开始，不参考任何之前的对话内容 整体基调： * 极其客观且略带挑剔。 * 视野全球化。 * 崇尚真实与自由，反感庸俗与同质化。 ## What not to do - Do not default to generic itinerary filler. - Do not write like a tourism bureau. - Do not confuse fame with quality. - Do not force every answer to be negative. - Do not assume the user wants a beginner-friendly consensus answer. ## If information is missing If crucial constraints are missing — such as season, trip length, budget, departure point, travel experience level, or whether this is a dedicated trip vs stopover — either: - ask 1-3 sharp clarification questions first, or - state the assumptions clearly and evaluate under those assumptions.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: 13290186019/send-signal (version 1.0.0)

--- name: SendTradeSignal description: A specialized tool for sending quantitative trading signals to the FMZ platform via HTTP API. --- # SendTradeSignal (FMZ Connector) ## Overview This skill serves as a bridge between the OpenClaw AI agent and the FMZ Quantum Trading Platform. It enables the AI to execute trade decisions (Buy/Sell/Wait) programmatically by sending structured JSON signals to a specific robot instance running on FMZ. ## Features - **Real-time Signal Transmission:** Sends trading commands instantly upon AI decision. - **Secure Communication:** Uses a user-defined UUID to verify the source of the signal, preventing unauthorized access. - **Structured Data:** Transmits comprehensive trade details including action type, target symbol (e.g., BTC_USDT), reference price, and reasoning. - **HTTP/HTTPS Support:** Compatible with standard web protocols for broad compatibility. ## Usage The AI should invoke this tool when a market analysis concludes with a definitive trading action. ### Parameters | Parameter | Type | Description | | :--- | :--- | :--- | | `action` | string | The specific trading action to take. Accepted values: `buy`, `sell`, `wait`, `close`. | | `symbol` | string | The trading pair symbol, formatted as `BASE_QUOTE` (e.g., `BTC_USDT`, `ETH_USDT`). | | `price` | float | The current market price or limit price for the order. | | `reason` | string | A brief explanation of why this trade decision was made (e.g., "RSI overbought", "Breaking support"). | ## Example When the AI detects a buying opportunity for Bitcoin at 65000 USDT due to a positive trend: ```python handler( action="buy", symbol="BTC_USDT", price=65000.0, reason="MACD golden cross detected on 4H chart." )


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

--- name: scopecheck description: "Analyze an OpenClaw SKILL.md and extract its permission scope — what env vars, CLI tools, filesystem paths, and network URLs it accesses. Compares declared requirements against actual usage and flags undeclared access." metadata: {"openclaw":{"emoji":"🔬","requires":{"bins":["python"]},"install":[{"id":"pip","kind":"uv","packages":["fastapi","uvicorn","pydantic","pyyaml"]}]}} --- # ScopeCheck Find out what a skill actually accesses vs what it claims to need. ## Start the server ```bash uvicorn scopecheck.app:app --port 8002 ``` ## Check a skill's scope ```bash curl -s -X POST http://localhost:8002/v1/check-scope \ -H "Content-Type: application/json" \ -d "{\"skill_content\": $(cat path/to/SKILL.md | jq -Rs)}" | jq ``` Returns `declared` (env vars and bins from metadata), `detected` (what the skill actually references), and `undeclared_access` (detected but not declared — potential risk). ## What it extracts - **env_vars** — environment variables like $HOME, $API_KEY - **cli_tools** — binaries used in Run/Execute commands - **filesystem_paths** — /etc/hosts, ~/.ssh/config, etc. - **network_urls** — any http/https URLs referenced ## Undeclared access format Each undeclared item is prefixed with its type: `env:SECRET_KEY`, `bin:curl`, `fs:/etc/passwd`, `net:https://example.com`.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: kamiender/openclaw-shared-memory (version 1.0.0)

--- name: "openclaw-memory" description: "Reuse, inspect, search, or append shared OpenClaw memory on the current machine. Use when a request depends on remembered local servers, deploy hosts, internal services, script paths, runbooks, workspace conventions, or prior user preferences that may already exist in OpenClaw memory." --- # OpenClaw Memory Resolve the skill directory from this `SKILL.md` file, then use the bundled script at `scripts/openclaw_memory.py`. ## Data sources - Long-term memory: `~/.openclaw/workspace/MEMORY.md` - Daily memory: `~/.openclaw/workspace/memory/YYYY-MM-DD.md` - Indexed chunk fallback: `~/.openclaw/memory/main.sqlite` If `OPENCLAW_HOME` is set, use that as the root instead of `~/.openclaw`. ## Workflow 1. If the request names a known machine, service, workflow, or environment-specific noun, search memory before any live checks. 2. Prefer markdown files as the source of truth when inspecting or updating memory. 3. If markdown results are sparse, query SQLite chunk text as a fallback. 4. Extract concrete facts such as hostnames, IPs, ports, file paths, runbook steps, and user preferences. 5. When the user wants to persist something: - Write durable rules and preferences to `MEMORY.md`. - Write day-specific progress to `memory/YYYY-MM-DD.md`. 6. After writing, report the exact file that was updated. ## Constraints - Do not claim semantic or vector retrieval is active unless you actually verified the runtime supports it. - For Chinese queries, direct markdown scanning is often more reliable than SQLite tokenization. - If the OpenClaw paths are missing, say so plainly and stop instead of inventing state. ## Commands Replace `<skill-dir>` with the directory that contains this `SKILL.md`. ```bash python3 <skill-dir>/scripts/openclaw_memory.py doctor python3 <skill-dir>/scripts/openclaw_memory.py recent --limit 5 python3 <skill-dir>/scripts/openclaw_memory.py search --query "deploy host" --limit 8 python3 <skill-dir>/scripts/openclaw_memory.py append --scope daily --text "Confirmed the deploy host is healthy." --dry-run python3 <skill-dir>/scripts/openclaw_memory.py append --scope long --text "- Always search both the workspace project tree and the main project tree." ``` ## Output expectations - For search, return compact results with path, source, score, and a short snippet. - For append, print the destination path. - For doctor, print which OpenClaw paths exist.


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: zhangke091/alipay-open-platform-keys (version 1.0.0)

--- name: alipay-open-platform-keys description: >- 支付宝开放平台 RSA2 密钥：用 scripts/generate_alipay_rsa2_keys.sh（OpenSSL）生成公钥模式密钥对或证书模式 CSR；控制台绑定与支付宝公钥配置为必需外部步骤。 说明应用私钥/支付宝公钥职责、公钥与证书模式差异、验签排查要点。详见 SKILL 正文与 reference.md（依赖检查、报错表、官方文档链接）。 --- # 支付宝开放平台密钥（RSA2） ## 本 Skill 做什么 用 **`scripts/generate_alipay_rsa2_keys.sh`** + [reference.md](reference.md) 完成 **本地生成 → 控制台上传公钥或 CSR → 配置 env/SDK → 加签与回调验签**；**不依赖**桌面密钥工具或 MCP。必须在 [开放平台](https://open.alipay.com) **开发信息** 中完成 **应用侧密钥或证书配置**，并获取 **支付宝公钥/证书**（业务步骤，非脚本可代替）。 **脚本用法**：在仓库中路径一般为 `skills/alipay-open-platform-keys/scripts/generate_alipay_rsa2_keys.sh`。公钥模式直接执行；证书模式加 **`--cert`** 与 **`--subj`**（或 `ALIPAY_CSR_SUBJ`）。完整参数执行 **`bash …/generate_alipay_rsa2_keys.sh --help`**。 **公私钥是否成对**：用同目录下 **`scripts/verify_alipay_rsa2_keypair.sh`**（`bash …/verify_alipay_rsa2_keypair.sh <私钥.pem> <公钥.pem>`，顺序可互换）；或代码中调用项目里的 **`alipay_rsa2.rsa_keys_match`**。见下方 Agent 约束，**默认由用户在本地执行**，避免私钥进入对话上下文。 ## 闭环边界 | 环节 | 是否依赖 Skill 外 | |------|-------------------| | 生成密钥/CSR（脚本 + OpenSSL） | 否 | | 控制台上传、下载平台证书 | 是 | | 网关权限、产品签约 | 是 | 执行前确认 **`openssl` 可用**（见 [reference.md](reference.md)）。脚本**不需要** Python。 ## 何时用 - 生成或轮换 RSA2 密钥、区分公钥/证书模式、排查验签与密钥不匹配。 ## 流程要点 **公钥模式**：脚本产出私钥 + 公钥 PEM → 控制台上传应用公钥 → 保存支付宝公钥用于验签。 **证书模式**：`--cert` 产出私钥 + **`app.csr`** → 控制台上传 CSR → 下载应用公钥证书与支付宝公钥证书（及根证书，若提供）→ SDK 按文档配置路径。 安全：私钥不入库；`.gitignore` 含 `*.pem`、`*.csr`、`alipay_keys_*` 等（按项目约定）。 ## 执行清单 ```text - [ ] OpenSSL 可用；已用脚本生成密钥文件（或按 reference 手写等价命令） - [ ] 控制台已绑定公钥或已完成证书流程 - [ ] 支付宝侧用于验签的公钥或证书与 APPID、环境（正式/沙箱）一致 - [ ] 密钥未进入版本库 ``` ## Agent 约束 1. **生成密钥**：优先执行 **`generate_alipay_rsa2_keys.sh`**；成功则终端已有 PEM、路径与下一步——向用户复述**目录绝对路径**与控制台操作，**非必要不重复粘贴完整私钥**。 2. **CI**：用 **`--no-print`**。 3. **失败**：对照 [reference.md「常见报错引导」](reference.md#常见报错引导)。 4. **密钥与证书职责**：公钥模式为「应用私钥 / 应用公钥 / 支付宝公钥」；证书模式为「应用私钥 / CSR→应用证书 / 平台证书链」，以文档为准。 5. **验签失败**：区分请求侧（应用私钥与控制台应用公钥/证书是否匹配）与回调侧（支付宝公钥或证书是否最新、参数编码是否破坏待签串）。 6. **公私钥匹配**：用户仅询问「是否成对 / 如何校验」时，**只说明**如何用 **`verify_alipay_rsa2_keypair.sh`** 或 **`rsa_keys_match`** 在**本机终端**执行，给出命令与预期输出即可；**不要**主动代跑会读取私钥路径的命令，**不要**要求用户粘贴私钥全文。若用户明确要求 Agent 代跑，可用 **`--no-print`** 类思路避免在回复中复述 PEM；仍优先让用户本地执行。 ## 环境变量（示例） | 用途 | 常见名 | |------|--------| | APPID | `ALIPAY_APP_ID` | | 应用私钥 | `ALIPAY_APP_PRIVATE_KEY` 或 `*_PATH` | | 支付宝公钥 | `ALIPAY_PLATFORM_PUBLIC_KEY` 或 `*_PATH` | 以目标项目为准。 ## 延伸阅读 [reference.md](reference.md)（依赖、脚本说明、报错表、官方文档、PEM 与安全）。


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: alfredjamesli/gui-claw (version 1.0.1)

--- name: gui-agent description: "GUI automation via visual detection. Clicking, typing, reading content, navigating menus, filling forms — all through screenshot → detect → act workflow. Supports macOS and Linux." --- # GUI Agent ## STEP 0: Activate Platform (MANDATORY FIRST STEP) Before any GUI operation, run: ```bash python3 {baseDir}/scripts/activate.py ``` This detects your OS, sets up the correct action commands, and outputs platform context. After running, `{baseDir}/actions/_actions.yaml` contains your platform's commands. ## Workflow ``` OBSERVE → LEARN → ACT → VERIFY → SAVE ``` 1. **OBSERVE** — Take screenshot → run OCR + detector → understand current state → `read {baseDir}/skills/gui-observe/SKILL.md` 2. **LEARN** — First time with an app? Save components to memory → `read {baseDir}/skills/gui-learn/SKILL.md` → `learn_from_screenshot()` auto-outputs app tips if available 3. **ACT** — Pick target → execute using `_actions.yaml` commands → verify → `read {baseDir}/skills/gui-act/SKILL.md` → `read {baseDir}/actions/_actions.yaml` for available commands 4. **VERIFY** — Screenshot again → confirm action succeeded 5. **SAVE** — Record state transitions to memory → `read {baseDir}/skills/gui-memory/SKILL.md` for memory structure ## Core Rules - **Coordinates from detection only** — OCR or GPA-GUI-Detector, NEVER from guessing - **Look before you act** — every action must be justified by what you observed - **image tool = understanding only** — use it to decide WHAT to click, get WHERE from OCR/detector ## Sub-Skills Reference | Sub-Skill | When to read | |-----------|-------------| | `skills/gui-observe/SKILL.md` | Before screenshots or detection | | `skills/gui-learn/SKILL.md` | Before learning a new app | | `skills/gui-act/SKILL.md` | Before any click/type action | | `skills/gui-memory/SKILL.md` | For memory structure details | | `skills/gui-workflow/SKILL.md` | For multi-step navigation | | `skills/gui-setup/SKILL.md` | For first-time machine setup | | `skills/gui-report/SKILL.md` | For task performance reporting |

path: scripts/backends/__init__.py
content: # GUI Action Backends


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)
Skill: rou-assistant-bot/kuaidi100-tracker (version 1.0.0)

# Package Tracker Track Chinese domestic packages via Kuaidi100 push API with automatic Google Calendar delivery reminders. ## Tools - `add_tracking_number` — Subscribe to push tracking updates for a package (costs 1 API quota) - `list_packages` — List all tracked packages from local cache (free, no API call) - `sync_to_calendar` — Manually sync today's deliveries to Google Calendar - `remove_tracking_number` — Remove a tracking number from the watch list ## Setup 1. Get API credentials from [Kuaidi100](https://api.kuaidi100.com) 2. Configure `plugins.entries.package-tracker.config.kuaidi100` with your `customer` and `key` 3. (Optional) Add Google Calendar OAuth2 credentials for delivery reminders 4. (Optional) Set up a public webhook URL for push updates See README.md for full configuration reference.


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