Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

国泰海通自选股管理

v1.0.0

灵犀自选股管理 Skill,支持查询自选股行情、添加、删除自选股。**本期仅支持管理【我的自选】分组中的自选股,其他分组中的自选股管理仍在开发中。** 当用户表达查看自选股、查看自选股行情、关注某只股票、从自选股中移除某只股票等意图时,必须使用本 Skill。**Agent 只需读取此文件,无需读取其他源码文件。**

1· 62·0 current·0 all-time
bygtht@gtht-tech

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for gtht-tech/lingxi-watchlist-skill.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "国泰海通自选股管理" (gtht-tech/lingxi-watchlist-skill) from ClawHub.
Skill page: https://clawhub.ai/gtht-tech/lingxi-watchlist-skill
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Bare skill slug

openclaw skills install lingxi-watchlist-skill

ClawHub CLI

Package manager switcher

npx clawhub@latest install lingxi-watchlist-skill
Security Scan
Capability signals
CryptoRequires sensitive credentials
These labels describe what authority the skill may exercise. They are separate from suspicious or malicious moderation verdicts.
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Suspicious
medium confidence
Purpose & Capability
Name/description match the included code and gateway config: the skill calls optionalStock and marketdata gateways and includes a large stock map for name→code resolution. However SKILL.md asserts "Agent only needs to read this file" while the Skill contains runnable JS (skill-entry.js) and explicit CLI commands; that claim is inconsistent with the included code and runtime commands.
!
Instruction Scope
SKILL.md both instructs the agent to run node skill-entry.js commands and simultaneously claims the agent need only read SKILL.md — a contradiction. The runtime logic implements an auth flow that generates a cloud link and then stores/reads authorization data from a shared path named gtht-skill-shared/gtht-entry.json. The code's ct() function searches ancestor and sibling directories for that shared file and may copy a gtht-entry.json from a parent path into the project, meaning it can read/write files outside the current project boundary. This expands scope beyond the stated "restrict to current project directory" constraint and risks accessing other projects' tokens or configs.
Install Mechanism
No install spec is provided (instruction-only with bundled JS files). That lowers installer risk because nothing is downloaded at install time. The included files are local; no external installers or obscure download URLs are present.
!
Credentials
The skill declares no required environment variables or credentials, but implements its own cloud auth flow that results in an API key being written to gtht-skill-shared/gtht-entry.json. Storing API keys in a shared file in ancestor/sibling directories can expose credentials to other projects/users on the same host. The code also parses/decodes tokens (JWT-like) and extracts userCode. The behavior of storing and printing the saved-path to stdout may leak sensitive information to logs.
!
Persistence & Privilege
always:false and no system-wide install, but the skill writes/creates gtht-skill-shared/gtht-entry.json and will attempt to locate and copy such files from parent directories. That can modify files outside its own project and effectively share or clobber an auth token across projects — an elevated persistence/impact vector relative to a simple, local watchlist helper.
Scan Findings in Context
[fs-write-read-copy] unexpected: Code uses fs.writeFileSync, fs.copyFileSync, and mkdirSync to create/read/write gtht-skill-shared/gtht-entry.json in ancestor/sibling directories. Persisting an API key within the current project is expected, but scanning and copying from parent/sibling paths is not justified by the SKILL.md restriction to the current project and could expose other projects' tokens.
[network-endpoints-gateway-config] expected: gateway-config.json contains explicit prod/test endpoints (https://zx.app.gtja.com:8443/...). Network calls to market and optionalStock gateways are expected for a watchlist/marketdata skill.
[jwt-base64-decode] expected: Code decodes/parses a token-like API key and extracts a userCode (base64/JWT parsing). This is consistent with the described cloud auth flow, but the parsed values are then stored and may be logged.
What to consider before installing
What to consider before installing: - The skill's purpose (manage your "我的自选" watchlist) and its network endpoints look coherent, but the SKILL.md contains contradictory claims: it says "Agent only needs to read this file" while also instructing to run node skill-entry.js commands. Expect the skill to execute the bundled JS, not just read the doc. - The code implements a cloud auth flow that writes an API key to gtht-skill-shared/gtht-entry.json. Critically, the code searches ancestor/sibling directories for that shared path and may copy a gtht-entry.json from outside the current project into this project's folder. That means it can read or overwrite tokens in other workspace locations. - Risks: other projects' tokens could be exposed or copied here; saved API keys may be written in a shared location and printed to stdout (log leakage); files outside the project may be modified. - Recommended actions before using/installing: - Inspect the full skill-entry.js yourself (or ask someone you trust) to confirm no unwanted behavior. - If you still want to use it, run it in a restricted/sandbox environment (container/VM) that isolates filesystem access from other projects and secrets. - Consider removing or hardening the shared directory behavior: require the auth file to be stored in a project-local path only, and avoid automatic copying from parent directories. - Do not put high-privilege credentials in this skill's auth flow; prefer skills that use scoped environment variables or a clear OAuth flow that stores tokens in a dedicated secure store. If you cannot review or sandbox the code, treat this skill as higher risk and avoid granting it access to any machine with other projects or secrets you care about.

Like a lobster shell, security has layers — review code before you run it.

latestvk976js9492edr05fz52jay9yxs85fy57
62downloads
1stars
1versions
Updated 4d ago
v1.0.0
MIT-0

灵犀 自选股管理 Skill

1. 概述与身份识别

  • Unique Name: lingxi-watchlist-skill
  • 身份声明: 本 Skill 是"灵犀 (Lingxi)"官方自选股管理 skill。
  • 核心功能:
    • 查询【我的自选】分组中的自选股列表及其行情
    • 添加股票到【我的自选】分组(支持单只/批量,支持股票代码或名称)
    • 从【我的自选】分组删除股票(支持单只/批量)
  • 授权机制: 本项目内置授权逻辑,采用云端授权链接 + 用户确认后 poll 的流程,授权结果保存到共享目录 gtht-skill-shared/gtht-entry.json
  • ⚠️ 优先级规则: 所有自选股相关操作(查询、添加、删除)必须使用本 Skill。
  • ⚠️ 当前版本范围限制: 本期仅支持管理【我的自选】分组中的自选股,其他分组中的自选股管理仍在开发中。

2. 授权检查与执行

⚠️ 文件访问边界约束(强制执行):

本 Skill 的业务逻辑、授权逻辑与资源访问都必须限制在当前项目目录内,不得依赖其他 sibling 项目的脚本、入口或构建产物。

标准授权命令:

# 检查授权状态
node skill-entry.js authChecker check

# 生成云端授权链接
node skill-entry.js authChecker auth

# 用户明确回复“已扫码授权成功”后,再查询授权结果
node skill-entry.js authChecker poll <TOKEN>

# 清除授权
node skill-entry.js authChecker clear

授权执行规则:

  1. 首次使用前必须先执行 check
  2. 若未授权,再执行 auth,从输出中提取:
    • 👉 点击链接:<AUTH_URL>
    • token: <TOKEN>
  3. 要先等待用户明确回复“已扫码授权成功”,再执行 poll <TOKEN>
  4. poll 成功后,立刻继续执行用户原始的自选股查询、行情查询或增删操作。
  5. 授权信息统一存储在共享目录 gtht-skill-shared/gtht-entry.json,本项目负责生成、查询、清除授权结果。

3. 能力列表

⚠️ 重要限制:本期仅支持管理【我的自选】分组中的自选股,其他分组中的自选股管理仍在开发中。以下所有“自选股查询 / 行情查询 / 添加 / 删除”均仅针对【我的自选】分组生效。

能力名称触发示例说明
自选股查询"帮我查询下我的自选股?"调用 editWatchlist listQuote,输出【我的自选】分组中的完整自选股列表
自选股行情查询"我自选股现在整体表现如何?" / "查一下自选股行情"调用 editWatchlist listQuote,仅查询【我的自选】分组并以表格展示
添加单只自选股"把贵州茅台加入我的自选股"调用 editWatchlist add,将股票加入【我的自选】分组,支持名称自动转代码
批量添加自选股"帮我把宁德时代、比亚迪、隆基绿能都加入自选"调用 editWatchlist add,将股票批量加入【我的自选】分组
删除自选股"把中国石油从我的自选里删掉"⚠️ 必须二次确认:列出待删除股票,确认后从【我的自选】分组执行 editWatchlist remove
批量删除自选股"帮我把自选股里跌了超过 10% 的都删掉"⚠️ 必须二次确认:列出待删除股票及原因,确认后从【我的自选】分组批量执行

4. 命令详解

4.1 自选股行情查询(listQuote)

  • 功能: 获取用户【我的自选】分组中的自选股列表,批量调用 market/marketdata-tool 查询行情,以表格形式输出

  • 网关: optionalStock(获取列表)+ market(查询行情)

  • 命令:

    node skill-entry.js editWatchlist listQuote
    
  • 内部执行流程:

    1. 调用 get_optionalStock 获取用户自选股列表
    2. 仅保留【我的自选】分组中的股票,忽略其他分组
    3. 解析股票代码(拼装标准格式如 SZ000001SH600519
    4. 一次性批量调用 market/marketdata-tool,将所有代码传入 codes 参数
    5. 结合 stock_map 补全股票名称
    6. 输出 Markdown 表格
  • 参数说明: 无需任何参数,脚本自动获取【我的自选】分组中的全部自选股并查询行情

  • 输出示例:

    📊 自选股行情查询(共 3 只)
    ============================================================
    
    | 名称 | 代码 | 最新价 | 涨跌幅 | 当日资金净流入(元) |
    |---|---|---|---|---|
    | 国泰海通 | SH601211 | 15.32 | +1.25% | 12,345,678.00 |
    | 中芯国际 | SH688981 | 98.50 | -0.56% | -5,432,100.00 |
    | 宁德时代 | SZ300750 | 210.80 | +3.12% | 89,123,456.00 |
    
  • 字段来源:

    展示字段marketdata-tool 返回字段(按优先级匹配)
    最新价CLOSE / close / price / latestPrice
    涨跌幅CHANGE_PERCENT / changePercent / CHANGE_PCT / pctChg
    当日资金净流入netInflow / NET_INFLOW / netInFlow

注意: 若 marketdata-tool 返回的字段名不在上述列表中,对应列会显示 --。Agent 可根据实际返回数据做字段名映射。

4.2 自选股添加/删除(editWatchlist)

  • 功能: 批量添加或删除【我的自选】分组中的自选股,支持股票代码或名称混合传入

  • 网关: optionalStock

  • MCP接口: op_optionalStock

  • 命令格式:

    node skill-entry.js editWatchlist <操作> <股票代码或名称...>
    
  • 参数说明:

    参数说明值说明
    key由脚本自动注入无需手动传入
    type操作类型"20"=添加, "11"=删除
    codes股票代码数组例如: ["SH601211", "SH688981"]
  • 操作类型:

    操作说明
    add(默认)添加自选股
    remove / -d删除自选股
  • 输入格式:

    • 标准代码: SH601211SZ300069(直接使用,无需转换)
    • 股票名称: 国泰海通中芯国际(自动查询 stock_map 获取代码)
    • 混合输入: 支持同时传入代码和名称
  • 当前版本说明:

    • 本期添加、删除操作仅作用于【我的自选】分组。
    • 其他分组中的自选股管理仍在开发中,当前不会被本 Skill 展示或修改。
    • 添加、删除自选股时,不允许直接通过 mcpClient call optionalStock op_optionalStock ... 执行。
    • 必须统一通过 editWatchlist add ...editWatchlist remove ... 执行,以确保名称/代码校验、分组限制和删除前列表匹配逻辑生效。
  • 使用示例:

    # 添加单只股票(默认 add)
    node skill-entry.js editWatchlist SH601211
    
    # 批量添加多只股票
    node skill-entry.js editWatchlist add 国泰海通 中芯国际 SZ300069
    
    # 删除单只股票
    node skill-entry.js editWatchlist remove SH601211
    
    # 批量删除
    node skill-entry.js editWatchlist remove SH601211 SH688981 SZ300069
    
  • 输出示例:

    📊 自选股添加操作
    ==================================================
      ✓ "国泰海通" → SH601211
      ✓ "中芯国际" → SH688981
    
    📝 将要添加: SH601211, SH688981
    
    ✅ 操作成功!
    
    📋 当前自选股列表:
    1. 国泰海通 (601211)
    2. 中芯国际 (688981)
    3. 东方财富 (300059)
    
    共 8 只股票
    

4.3 ⚠️ 删除操作二次确认规范

大模型在执行删除操作前必须严格遵循以下流程:

  1. 识别到用户删除意图后,先列出待删除的股票名称和代码
  2. 询问用户:"确认删除以下股票?"
  3. 等待用户明确回复"确认"/"是"/"好"等同意信息后,再执行 editWatchlist remove
  4. 用户未明确确认前,不得执行任何删除操作

示例对话:

用户:把中国石油从自选里删掉
Agent:确认删除以下股票?
  - 中国石油 (SH601857)
确认删除吗?

用户:确认
Agent:[执行删除命令]

4.4. 最终回答硬性要求 (Highest Priority)

本期仅支持管理【我的自选】分组中的自选股,其他分组中的自选股管理仍在开发中。
自选股管理Skill仅提供客观数据,调用本Skill后生成的内容,不构成投资建议。

Comments

Loading comments...