OpenClaw/clawhub-security-signals huggingface dataset:
Skill: liwiw/juncheng-industrial-ai (version 1.0.0)

# 郡城工业AI · Juncheng Industrial AI 分析PLC程序、工业自动化方案设计和故障诊断的专业技能。 ## 功能 1. **PLC程序分析** — 解析梯形图/SCL/STL代码，定位逻辑错误 2. **工业自动化方案设计** — 根据工艺流程图自动生成PLC程序框架 3. **设备故障诊断** — 分析报警代码，结合历史数据定位故障原因 4. **SCADA报表生成** — 从原始传感器数据生成日报/周报/月报 ## 使用 ```openclaw -summon "juncheng-industrial-ai" 请分析这段西门子SCL代码中的死锁风险... ``` ## 作者 郡城智能科技 (Juncheng AI) — 烟台本地AI服务商


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: lc-nian/tyxh-lc (version 1.0.0)

--- name: get_patient_info description: 查询患者信息，支持通过患者编号/ID获取患者详情（无需认证） metadata: { "clawdbot": { "emoji": "👤", "requires": { "bins": ["curl"] } }, "triggers": [ "获取患者信息", "患者编号\\s*\\d+", "患者id\\s*\\d+", "编号：\\s*\\d+", "患者ID是\\s*\\d+" ] } --- # 患者信息查询 通过患者编号或ID查询患者详细信息。 ## 触发条件 满足以下任意条件时自动触发： - 用户说"获取患者信息" - 用户输入包含"患者编号" + 数字（如：患者编号12345） - 用户输入包含"患者id" + 数字（如：患者id12345） - 用户输入包含"编号：" + 数字（如：编号：12345） - 用户输入包含"患者ID是" + 数字（如：患者ID是12345） ## API 接口 - **接口地址**: `https://kjcrmcs.tianyuxh.com:8107/task/agent_test/getPatientInfo` - **请求方法**: GET - **参数**: `patient_id` (患者编号) ## 使用方式 ### 1. 查询指定患者 当用户提供患者编号时，使用以下命令查询： ```bash curl -s "https://kjcrmcs.tianyuxh.com:8107/task/agent_test/getPatientInfo?patient_id={患者编号}"


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: sparkingskin-tech/obsidian-cleaner (version 1.0.0)

--- name: obsidian-cleaner description: Automatically clean up loose images and attachments in Obsidian vault root, moving them to the Attachments folder. Trigger when user says "clean obsidian", "clean attachments", or "整理附件". --- # Obsidian Attachment Cleaner A skill that automatically finds and moves loose images/attachments from your Obsidian vault root to the designated Attachments folder. ## When to Use Trigger when user says: - "Clean Obsidian" - "Clean attachments" - "整理附件" - "Move images to attachments" - "Obsidian 清理" ## Features - **Auto-discovery**: Finds loose files (`.png`, `.jpg`, `.gif`, `.jpeg`, `.webp`, `.pdf`, `.docx`) - **Safe move**: Moves files to `Attachments/` folder (creates if not exists) - **Dry run**: Preview what will be moved before executing - **Detailed report**: Shows exactly what was moved and where ## Usage ### Quick Clean (Auto-detect) ```bash python obsidian_cleaner.py ``` ### Dry Run (Preview Only) ```bash python obsidian_cleaner.py --dry-run ``` ### Specify Vault Path ```bash python obsidian_cleaner.py --vault /path/to/Obsidian/Vault ``` ### Custom Attachments Folder ```bash python obsidian_cleaner.py --attachments "My Attachments" ``` ## How It Works 1. Scans Obsidian vault root for loose attachment files 2. Checks if Attachments folder exists (creates if missing) 3. Moves each file to the Attachments folder 4. Reports what was moved and any errors ## Configuration Default vault path: `~/Documents/Obsidian Vault` Default attachments folder: `Attachments/` ## Example Output ``` 🔍 Scanning /Users/skin/Documents/Obsidian Vault for loose attachments... 📁 Found 3 files: ├── screenshot_20240101.png ├── photo.jpg └── diagram.gif 📦 Moving to Attachments/... ✅ Success! ├── screenshot_20240101.png → Attachments/screenshot_20240101.png ├── photo.jpg → Attachments/photo.jpg └── diagram.gif → Attachments/diagram.gif 🎉 3 files moved. Vault is now clean! ``` ## Integration Add to your `HEARTBEAT.md` or daily routine: ```markdown ## Daily Obsidian Cleanup (Optional) If you notice loose images in your vault root, run: - "Clean Obsidian" - Automatically organize attachments ``` ## Notes - Only moves files, doesn't delete anything - Won't overwrite existing files (skips with warning) - Case-insensitive file extension matching - Safe to run multiple times


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)
Skill: luoboask/tarot-master (version 1.0.0)

--- name: tarot-master version: 1.0.0 description: Tarot card reading expert system for single card interpretation, spread readings, relationship guidance, and social media content creation. Use when user mentions "塔罗", "tarot", "塔罗牌", "占卜", "抽牌", "牌阵", "大阿卡那", "小阿卡那", or asks for divination, card readings, or tarot-related content. Also handles comment replies for tarot content accounts. --- # Tarot Master (塔罗大师) Expert system for Tarot: card interpretation, spread readings, and content output. ## Persona - Identity: 温柔但不含糊的塔罗师，读牌靠直觉也靠逻辑 - Tone: 像一个你信任的朋友在帮你看牌，不装神弄鬼 - Principle: "牌不决定命运，牌揭示你内心已经知道但不愿面对的东西" - Language: 中文为主，术语后附白话 ## Core Knowledge - `references/knowledge/major-arcana.md` — 22张大阿卡那：正位/逆位含义、关键词、感情/事业/财运解读 - `references/knowledge/minor-arcana.md` — 56张小阿卡那：四组花色（权杖/圣杯/宝剑/星币）× 14张 - `references/knowledge/card-combinations.md` — 常见牌组合解读（两张牌以上的联合含义） ## Capabilities ### 1. 单牌解读 Input: 牌名（可选正位/逆位） Output: 完整解读 流程： 1. 确认牌名 + 正逆位 2. 读取 `references/knowledge/major-arcana.md` 或 `minor-arcana.md` 3. 根据用户提问方向（感情/事业/财运/综合）给出针对性解读 4. 用口语化输出，不要百科式罗列 ### 2. 牌阵解读 Input: 用户的问题 + 抽到的牌 Output: 完整牌阵分析 常用牌阵（详见 `references/spreads/`）： - **单牌**：今日运势/快速回答 - **三牌阵**：过去-现在-未来 - **凯尔特十字**：深度全面分析 - **关系牌阵**：你-对方-关系现状-建议 - **选择牌阵**：A选项-B选项-建议 流程： 1. 确认用户问题和选用的牌阵 2. 读取 `references/spreads/` 对应牌阵模板 3. 逐位解读每张牌在该位置的含义 4. 综合分析牌与牌之间的关系 5. 给出整体建议 ### 3. 内容生产 为小红书/社媒生成塔罗内容： - 每日一牌解读 - 热门话题牌阵（"分手后还能复合吗"） - 塔罗冷知识科普 - 牌面美学赏析 联动 `aura-content-strategist` 做平台适配。 ### 4. 评论回复 Reference: `references/comment-engine/reply-patterns.md` 处理： - "帮我抽一张" → 随机抽牌 + 简短解读 - "X牌是什么意思" → 快速解释 - "我抽到了XX怎么办" → 安抚 + 解读 + 建议 - "准不准" → 引导正确理解塔罗 ## Output Templates ### 单牌解读模板 ``` 🃏 {牌名} {正位/逆位} 【一句话】{用最直白的话说这张牌在说什么} 【感情】{2-3句} 【事业】{2-3句} 【建议】{1句具体可操作的} 💡 这张牌想告诉你：{核心信息，一句话} ``` ### 牌阵解读模板 ``` 🔮 {牌阵名} · {用户的问题} 【位置1: {位置含义}】{牌名} {正逆} {解读} 【位置2: {位置含义}】{牌名} {正逆} {解读} ... 【综合分析】 {牌与牌的关系、整体叙事} 【建议】 {具体可操作的行动建议} ⚠️ 塔罗揭示的是当下的能量和倾向，不是固定的未来。你的选择永远比牌大。 ``` ## Reading Rules 1. **不做绝对预测**：不说"一定会" "注定"，说"当前的趋势是" "牌在提示你" 2. **逆位不等于坏**：逆位是能量受阻或内化，不是"完蛋了" 3. **结合提问方向**：同一张牌在感情和事业中含义不同 4. **先说核心再展开**：用户要的是答案不是百科 5. **给行动建议**：每次解读必须有"你可以做什么" ## References **Knowledge** (core data): - `knowledge/major-arcana.md` — 22张大阿卡那完整档案 - `knowledge/minor-arcana.md` — 56张小阿卡那完整档案 - `knowledge/card-combinations.md` — 牌组合解读 **Spreads** (牌阵): - `spreads/single.md` — 单牌 - `spreads/three-card.md` — 三牌阵 - `spreads/celtic-cross.md` — 凯尔特十字 - `spreads/relationship.md` — 关系牌阵 - `spreads/choice.md` — 选择牌阵 **Comment Engine**: - `comment-engine/reply-patterns.md` — 评论回复模式 **Config**: - `config/first-time-setup.md` — 首次配置


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: wgongrui/ai-code-stat-skill (version 1.0.1)

--- name: ai-code-stat-skill description: "AI代码生成与统计规范工具，支持AI/人工代码标记、版本提交规范及代码占比统计" meta: author: GongRui version: 1.0.0 --- # 一、系统角色定义（强制） 你是一名“AI代码生成与统计分析助手”，必须完成： 1. 生成代码（带 @ai / @human 标记） 2. 通过对话驱动完成代码提交（禁止 Git Hook） 3. 调用 Python 工具完成统计 4. 自动生成规范提交信息 5. 支持历史数据分析（版本 / 提交人 / 类型 / 趋势） --- # 二、代码标记规范（强制） ```js // @ai AI生成代码 // @human 人工代码 // @ai 继续AI代码 ```` ## 规则 * 默认：全部为 AI * @human 与 @ai 控制作用域 * 标记必须可解析（否则统计失败） --- # 三、代码统计规则（强制） ## 行数规则 * 仅统计“非空行” * 注释行计入 * 标记行计入 --- ## 状态机 ``` 默认 state = ai @human → 切换 human @ai → 切换 ai ``` --- ## 计算公式 ``` AI占比 = (AI行数 / 总行数) × 100% ``` * 四舍五入整数 --- # 四、提交格式（严格） ``` (feat|bug|enhance|test|docs|other)：<提交信息> 提交人：<git获取> 版本：<x.y.z> 模块名称：<功能名称> 代码总行数：<x> AI代码总行数：<x> AI代码占比：<x>% ``` --- # 五、对话驱动提交流程（强制执行） 当用户说：“提交代码” 或类似语义 --- ## Step 1️ 信息收集 必须获取： * 提交类型 * 提交说明 * 版本号 * 模块名称 ❗ 若缺失： 必须主动询问，禁止跳过 --- ## Step 2️ 执行统计 ``` python analyze.py ``` --- ## Step 3️ 获取提交人 ``` git config user.name ``` --- ## Step 4️ 生成提交信息 --- ## Step 5️ 执行提交 ``` python ai_commit.py ``` --- ## Step 6️⃣ 输出结果（严格顺序） 1️.统计结果 2️.提交信息 3️.提交完成提示 --- # 📊 六、统计分析能力 ## 支持： ### 1. 按版本 “统计 1.0.0” ### 2. 按提交人 “统计 ZhangSan” ### 3. 按类型 “统计 feat” ### 4. 全量 “统计整个项目” ### 5. 趋势分析（必须输出结论） # 七、Python实现 * 分析改动的代码文件：script/analyze.py * 提交代码：script/commit.py * AI方式提交代码：script/ai_commit.py * 分析历史提交记录：script/analyze_history.py 使用python需要遵守以下约定： 1. 以上提供的代码示例可供参考，可以修改与完善以上的代码，需要在沙箱中执行； 2. 不要创建python源码，防止创建的文件被提交到版本控制中，使用：python -c "源码" 的方式执行； # 八、异常处理（必须执行） ## 1. Git不可用 输出： ``` 未检测到 Git 环境 ``` --- ## 2. 无代码变更 ``` 当前无代码变更 ``` --- ## 3. 统计失败 ``` 统计失败，请检查 @ai/@human 标记 ``` --- ## 4. 用户输入缺失 必须重新询问，不允许默认填充 --- # 🚫 九、禁止行为（强约束） * ❌ 禁止使用 Git Hook * ❌ 禁止跳过统计直接提交 * ❌ 禁止编造统计数据 * ❌ 禁止忽略 @ai/@human * ❌ 禁止输出不规范提交格式 * ❌ 禁止不询问缺失信息 --- # 十、输出优先级（严格） ## 提交场景： 1️.统计结果 2️.提交信息 3️.提交结果 --- ## 分析场景： 结构化数据 + 趋势结论 --- # 十一、最终目标 ✅ AI代码可追踪 ✅ 提交规范自动化 ✅ AI贡献可量化 ✅ 支持团队级分析


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)
Skill: 52yuanchangxing/social-post-batcher (version 1.0.0)

--- name: social-post-batcher version: 1.0.0 description: "把一个主题拆成 7/14/30 条系列帖子，控制重复度和叙事连续性。；use for social-media, batching, content workflows；do not use for 刷屏式重复, 编造事实." author: OpenClaw Skill Bundle homepage: https://example.invalid/skills/social-post-batcher tags: [social-media, batching, content, campaign] user-invocable: true metadata: {"openclaw":{"emoji":"🧵","requires":{"bins":["python3"]},"os":["darwin","linux","win32"]}} --- # 社媒内容批处理器 ## 你是什么 你是“社媒内容批处理器”这个独立 Skill，负责：把一个主题拆成 7/14/30 条系列帖子，控制重复度和叙事连续性。 ## Routing ### 适合使用的情况 - 围绕一个主题帮我批量拆 14 条帖子 - 保证连续性不要重复 - 输入通常包含：主题、受众、语气、数量 - 优先产出：系列主线、帖子分配、审校提醒 ### 不适合使用的情况 - 不要刷屏式重复 - 不要编造事实 - 如果用户想直接执行外部系统写入、发送、删除、发布、变更配置，先明确边界，再只给审阅版内容或 dry-run 方案。 ## 工作规则 1. 先把用户提供的信息重组成任务书，再输出结构化结果。 2. 缺信息时，优先显式列出“待确认项”，而不是直接编造。 3. 默认先给“可审阅草案”，再给“可执行清单”。 4. 遇到高风险、隐私、权限或合规问题，必须加上边界说明。 5. 如运行环境允许 shell / exec，可使用： - `python3 "{baseDir}/scripts/run.py" --input <输入文件> --output <输出文件>` 6. 如当前环境不能执行脚本，仍要基于 `{baseDir}/resources/template.md` 与 `{baseDir}/resources/spec.json` 的结构直接产出文本。 ## 标准输出结构 请尽量按以下结构组织结果： - 系列主线 - 帖子分配 - 避免重复规则 - CTA 节奏 - 素材清单 - 审校提醒 ## 本地资源 - 规范文件：`{baseDir}/resources/spec.json` - 输出模板：`{baseDir}/resources/template.md` - 示例输入输出：`{baseDir}/examples/` - 冒烟测试：`{baseDir}/tests/smoke-test.md` ## 安全边界 - 适合作为批量文案骨架。 - 默认只读、可审计、可回滚。 - 不执行高风险命令，不隐藏依赖，不伪造事实或结果。

path: examples/example-input.md
content: # 社媒内容批处理器 示例输入

目标：社媒排程
输入类型：主题、受众、语气、数量

## 背景
- 这是一个用于演示 社媒内容批处理器 的最小可复核样例。
- 希望产出与“系列主线 / 帖子分配 / 审校提醒”相关的结构化结果。

## 原始材料
- 主题：社媒内容批处理器 场景演示
- 约束：时间有限，需要先产出审阅版，再决定是否落地。
- 风险：不允许编造事实，不允许直接执行高风险动作。

## 额外要求
- 使用清晰标题。
- 标出待确认项。
- 给出下一步建议。


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector:  ()
Skill: saikatkumardey/hacker-news-poster (version 1.0.5)

--- name: hacker-news-poster description: Post, comment, and interact on Hacker News. Use when the user asks to submit a Show HN, post a story, comment on an HN thread, edit a comment, or update an HN profile. Requires HN_USERNAME and HN_PASSWORD environment variables. Persists session cookies to ~/.hn_cookies.txt (configurable via HN_COOKIE_FILE env var). --- # Hacker News Poster Submit stories, comment on threads, edit comments, and update profiles on Hacker News. ## Setup ### Required Environment Variables | Variable | Required | Description | |----------|----------|-------------| | `HN_USERNAME` | Yes | Hacker News username | | `HN_PASSWORD` | Yes | Hacker News password | | `HN_COOKIE_FILE` | No | Cookie storage path (defaults to `~/.hn_cookies.txt`) | ### Security Note Session cookies are stored in plaintext at `HN_COOKIE_FILE` (or `~/.hn_cookies.txt`). These are standard HN session tokens. Delete the file to clear the session. ## CLI All commands go through `scripts/hn.py`. Always `login` first per session. ```bash # login (reads HN_USERNAME/HN_PASSWORD from env) python3 scripts/hn.py login # submit a link post python3 scripts/hn.py submit --title "Show HN: My Tool" --url "https://example.com" # submit a text post (Ask HN, etc.) python3 scripts/hn.py submit --title "Ask HN: Question?" --text "body text here" # comment on a story or reply to a comment python3 scripts/hn.py comment --parent 12345678 --text "your comment" # edit a comment (only within HN's edit window) python3 scripts/hn.py edit --id 12345678 --text "updated comment" # update profile about section python3 scripts/hn.py profile --username youruser --about "your bio" ``` All commands output JSON on success (`{"ok": true, ...}`) and print errors to stderr. ## Notes - HN rate-limits submissions and comments. If you get a rate limit error, wait a few minutes. - Comments can only be edited within ~2 hours of posting. - The `submit` command returns the new item id and url on success. - Session cookies are stored in `~/.hn_cookies.txt` to avoid re-authenticating on every command. Delete this file to clear the session. - For reading HN (search, top stories, comments), use the existing `hacker-news` skill or the HN API directly. This skill is write-only. ## Combining with the read-only HN skill 1. use the `hacker-news` skill to browse/search stories and find interesting threads 2. use this skill to login and post/comment


Security scan verdicts — ClawScan: clean | static analysis:  | VirusTotal: suspicious | SkillSpector: suspicious (MEDIUM)
Skill: 534422530/laosi-notion (version 1.0.0)

--- name: notion-helper description: Notion API助手 - 创建和管理Notion页面、数据库，支持笔记和知识管理。 metadata: {"openclaw": {"requires": {"python": ["notion-client"]}, "install": []}} tags: [notion, notes, database, knowledge, api] version: 1.0.0 author: laosi source: adapted --- # Notion Helper - Notion助手 > 激活词: Notion / 笔记管理 / 知识库 ## 安装 ```bash pip install notion-client ``` ## 获取API密钥 1. 访问 https://www.notion.so/my-integrations 2. 创建新集成 3. 复制API密钥 4. 分享数据库给集成 ## Python实现 ```python from notion_client import AsyncClient import asyncio class NotionHelper: def __init__(self, token: str): self.client = AsyncClient(auth=token) async def create_page(self, parent_id: str, title: str, content: str = ""): await self.client.pages.create( parent={"database_id": parent_id}, properties={ "title": { "title": [{"text": {"content": title}}] } }, children=[{ "object": "block", "type": "paragraph", "paragraph": { "rich_text": [{"type": "text", "text": {"content": content}}] } }] ) async def query_database(self, db_id: str, filter_props: dict = None): params = {"database_id": db_id} if filter_props: params["filter"] = filter_props return await self.client.databases.query(**params) async def update_page(self, page_id: str, properties: dict): await self.client.pages.update(page_id, properties=properties) async def get_page(self, page_id: str): return await self.client.pages.retrieve(page_id) async def search(self, query: str): return await self.client.search(query) ``` ## 使用示例 ```python async def main(): helper = NotionHelper("secret_xxx") # 创建页面 await helper.create_page( parent_id="database_id", title="AI学习笔记", content="今天学习了机器学习..." ) # 搜索页面 results = await helper.search("AI") for page in results['results']: print(page['title']) # 查询数据库 pages = await helper.query_database("database_id") for page in pages['results']: print(page['properties']['title']['title'][0]['text']['content']) asyncio.run(main()) ``` ## 数据类型 | 类型 | 说明 | |------|------| | title | 标题 | | rich_text | 文本 | | number | 数字 | | checkbox | 复选框 | | select | 单选 | | multi_select | 多选 | | date | 日期 | | url | 链接 | | email | 邮箱 | | phone_number | 电话 | ## 使用场景 1. 知识库管理 2. 任务跟踪 3. 笔记整理 4. 项目管理


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: ajaylakhani/open-merge (version 1.0.0)

--- name: merge description: A simple description say hello license: MIT metadata: author: Ajay Lakhani hooks: "onInstall" version: "0.1.0" --- # Merge Skill When the user asks to merge, use the echo tool to say "Hello from merge" --- ## Workspace files ``` ~/.openclaw/workspace/merge/ profile.json never transmitted to broker preferences.json encrypted before broker upload signal.json local record of current signal state matches.json log of Discord introductions card.txt introduction card posted to Discord on match .anonymous_id anonymous broker UUID .keypair device key pair — private key never transmitted ``` --- ## Lifecycle hooks ### onInstall Create workspace directory. Confirm once: > "Merge is installed. Say 'set up Merge' when you're ready." ---


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: kikikari/relay-node (version 1.0.0)

# Relay Node Skill **Status:** 🚧 Vorbereitend - Node 3 als Proof of Concept ## Zweck Relay Nodes leiten Verbindungen weiter wenn direkte Pfade nicht möglich sind (z.B. Node 3 ohne WireGuard, Mobile-Clients im NAT). ## Verwendung ```bash # Relay-Modus aktivieren openclaw cluster relay enable --mode [socks5|ssh|wg-proxy] # Relay-Status prüfen openclaw cluster relay status # Port-Weiterleitung konfigurieren openclaw cluster relay forward --local <port> --remote <host:port> # Verbundene Clients anzeigen openclaw cluster relay connections ``` ## Einsatz-Szenarien ### Szenario 1: Node 3 (WireGuard-fallback → SSH-Relay) Node 3 hat kein WireGuard-Modul → Relay via SSH-Tunnel ``` Node 4 (Mobile) │ │ WireGuard ▼ Node 1 (Gateway: 10.10.0.1) │ │ Route via Node 3? ▼ Node 3 (10.10.0.3) ❌ Kein WG │ ▼ SSH-Tunnel (Active) Node 3: localhost:18788 → Node 1 ``` ### Szenario 2: Mobile Relay im NAT Node 4 (Redmi) hinter Carrier-NAT → Relay via Node 2 ``` Node 4 (Mobile, CGNAT) │ ├─→ Ausgehende Verbindung zu Node 2 │ Node 2 (Public IP) │ ├─← Relay zurück zu Node 4 │ Node 1 (Gateway) ``` ### Szenario 3: File-Sharing Relay Node 5 (Webhosting) → Node 3 (Storage) ``` Internet User │ │ HTTP Download ▼ Node 5: xstoragex.de │ │ SFTP/SCP ▼ Node 3: /home/share/ ``` ## Relay-Modi | Modus | Port | Verwendung | |-------|------|------------| | `socks5` | 1080 | Proxy für Anwendungen | | `ssh-tunnel` | Dynamisch | Port-Forwarding | | `wg-proxy` | 51820 | WireGuard über TCP | | `http-proxy` | 8080 | HTTP/HTTPS Proxy | | `tcp-bridge` | Beliebig | Direkte Port-Bridge | ## Node 3 Konfiguration (Aktuell) ```ini # SSH-Tunnel Relay [relay-node-3] type = ssh-tunnel gateway_host = 127.0.0.1 gateway_port = 18788 local_proxy_port = 1080 protocol = relay ``` ## Zukünftige Erweiterung ```bash # Automatischer Modus-Wechsel openclaw cluster relay auto # Mehrere Relay-Hops openclaw cluster relay chain --via node-2 --via node-3 ``` ## Offene Punkte - [ ] Node 3: WireGuard-Modul nach Kernel-Update - [ ] Node 4: Relay-Konfiguration nach Pairing - [ ] Node 2 → Node 3 Ressourcen-Sharing ## Siehe auch - [Cluster Gateway Skill](../cluster-gateway/SKILL.md) - [Worker Node Skill](../worker-node/SKILL.md)


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: yanghaolie/gold-price-query (version 1.0.0)

--- name: gold-price-query description: Gold price query tool supporting CNY (RMB/gram) and USD (USD/oz) currency options for real-time spot gold price lookup. --- # Gold Price Query Real-time gold spot price lookup supporting CNY (RMB/gram) and USD (USD/oz) currency options. ## Quick Start Run the script to query gold prices: ```bash # Query USD price (default) python gold_price.py USD # Query CNY price python gold_price.py CNY ``` ## Output Format Returns JSON data containing: ```json { "success": true, "data": { "名称": "现货黄金", "单位": "美元/盎司", "开盘价": "2350.00", "当前价": "2355.50", "最高价": "2360.00", "最低价": "2345.00", "买价": "2355.00", "卖价": "2356.00", "涨跌额": "5.50", "涨跌幅": "0.23%", "成交量": "500000", "更新时间": "2024-04-12 10:30:00" }, "timestamp": 1712899200000 } ``` ## Currency Parameters | Parameter | Description | Unit | |-----------|-------------|------| | CNY | RMB denominated | RMB/gram | | USD | USD denominated (default) | USD/oz | ## Notes - Requires network access to API - API source: jijinhao.com - Consider setting appropriate request intervals to avoid rate limiting


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: shawn92/ftshare-hk-data (version 1.0.0)

--- name: FTShare-hk-data description: 港股数据技能集（market.ft.tech）。覆盖公司介绍、分页估值分析（PE/PB/PS/股息率）、单票基础视图（板块/上市状态/市值/股本）、日/月/季/年 K 线（历史k线，T日18点更新当日数据）（前复权/不复权）。用户询问港股公司简介、港股估值、市盈率市净率、港股基础信息、市值总股本、港股 K 线/日线/月线、港股历史行情时使用。 --- # FT 港股数据 Skills 本 skill 是 `FTShare-hk-data` 的**统一路由入口**。 根据用户问题，从下方「能力总览」或「询问方式与子 skill 对应表」匹配对应子 skill，然后通过 `run.py` 执行并解析响应。 > 所有接口均以 `https://market.ft.tech` 为基础域名，本技能集子 skill 无需额外请求头。 ### 时区与交易日历 港股交易时间遵循 **港交所交易日历（UTC+8 / 东八区）**。 - 所有 **YYYYMMDD / YYYY-MM-DD** 日期字段均为东八区交易日。 - `update_time`（如 `20260324120000`）等时间戳字段也基于东八区。 - 调用方传入日期时无需手动转时区——接口本身按东八区解释。 - 若 Agent 所在系统时区非东八区，在计算「今天」「昨天」等相对日期时，应先转为东八区日期再传参。 --- ## 调用方式（唯一规则） `run.py` 与本文件（`SKILL.md`）位于同一目录。执行时： 1. 取本文件的绝对路径，将末尾 `/SKILL.md` 替换为 `/run.py`，得到 `<RUN_PY>` 。 2. 调用：`python <RUN_PY> <子skill名> [参数...]` ```bash # 示例（<RUN_PY> 为实际绝对路径） python <RUN_PY> company-hk --trade_code 00700.HK python <RUN_PY> hk-valuatnanalyd --trade_code 00700.HK --page 1 --page_size 20 python <RUN_PY> hk-valuatnanalyd --page 1 --page_size 20 python <RUN_PY> hk-view --hk_code 00700.HK python <RUN_PY> hk-candlesticks --trade-code 00700.HK --interval-unit day --until-date 2026-03-24 --since-date 2026-03-01 --limit 20 ``` > `run.py` 内部通过 `__file__` 自定位，无论安装在何处都能正确找到各子 skill 的脚本。 --- ## 港股 — 询问方式与子 skill 对应表 | 询问方式（用户常说的词） | 子 skill | |------------------------|----------| | **港股公司简介**、**港股公司介绍**、**00700 公司信息**、**腾讯控股 港股 介绍**、成立日期、注册资本、法人代表、主营业务 | `company-hk` | | **港股估值**、**估值分析**、**市盈率/市净率/市销率**、**股息率**、**港股全市场估值分页**、PE TTM、PB、换手率 | `hk-valuatnanalyd` | | **港股基础视图**、**港股一览**、**单票市值/总股本**、**主板/上市状态**、**关联 A 股代码**（与历史分页估值区分，要「当前视图」） | `hk-view` | | **港股 K 线**、**港股日线/月线/季线/年线**、**00700 历史行情**、OHLC、前复权港股 | `hk-candlesticks` | --- ## 能力总览 | 子 skill | 说明 | |----------|------| | `company-hk` | 按 `trade_code`（如 `00700.HK`）查询港股公司介绍 | | `hk-valuatnanalyd` | 分页查询港股估值分析；可选 `trade_code` 过滤单票，不传为全市场 | | `hk-view` | 按 `hk_code` 查询单票基础视图（板块、上市状态、股本、市值、估值指标） | | `hk-candlesticks` | 按 `trade_code` 查询日/月/季/年 K 线；`until_date` 必填，`since_date` 可选 | --- ## 子 skill 文档 各子目录内另有 `SKILL.md`，含接口路径、参数与响应字段说明；执行时以本目录 `run.py` 为准。


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