Skill flagged — suspicious patterns detected

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

AStockReport

v1.0.2

A股报告生成与推送技能。支持6种报告:晨报(AI搜索+模板,每日8:00)、晚报(AI搜索+量化情绪打分,每日20:00)、收盘小结(脚本数据+量化情绪打分,交易日15:30)、盘中预警(脚本,交易时段每5分钟)、财经周末要闻(AI搜索,每周20:00)、A股IPO周报(每周六09:00,Python脚本直推,数...

0· 19·0 current·0 all-time
MIT-0
Download zip
LicenseMIT-0 · Free to use, modify, and redistribute. No attribution required.
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Suspicious
medium confidence
Purpose & Capability
Skill 名称与描述吻合(生成并通过企业微信 webhook 推送 A 股相关多种报告)。请求/声明的外部凭据为空,但脚本显式依赖 /workspace/keys/keys_loader.py 和 /workspace/keys/wecom_webhook.ini 来获取 Webhook URL — 这与 manifest 未声明的依赖不冲突但应被明确说明。总体目标与脚本操作属于一致范围。
!
Instruction Scope
SKILL.md 和脚本指令要求自动生成报告并“立即执行推送代码”,包括在 agentTurn 中使用 batch_web_search 和在 Python 中用 curl 向外部 webhook 发送完整报告。脚本假定存在 keys_loader 并从工作区读取 webhook URL (多个不同路径被使用),但 manifest 未声明这些 files/env;指令还要求读取 /workspace/keys 下的密钥文件,这意味着 sensitive 数据 会被读取并发送到外部 endpoint — 这是该技能的预期行为 but it must be explicit and trusted. 指令对外部数据(财经网站、AKShare)访问是合理,但指令强制“只输出正文并立即推送”降低了审查机会。
!
Install Mechanism
没有 install spec,但脚本严重依赖 Python 包(akshare、pandas 等)和 Python 运行时。缺少说明或依赖声明会导致运行失败 or surprise installs by the operator. 这是不一致且容易导致 runtime errors. 代码也包含语法/路径错误 that prevent execution as-is (e.g., missing quotes in sys.path.insert, truncated functions).
!
Credentials
Manifest lists no required env vars, yet scripts read webhook credentials from /workspace/keys via keys_loader (expected to return a webhook URL). That gives the skill access to any webhook URL stored in the workspace; this is expected for a push-skill but the skill does not declare or document the exact credential requirements in the manifest. The keys_loader module is external to the skill — its contents must be audited because it controls where report data is sent. No other unrelated credentials requested.
Persistence & Privilege
always is false and the skill is user-invocable; it does not request permanent platform-level privileges. Scripts create per-task state files for de-duplication under the skill directory (normal for this use case).
What to consider before installing
This skill generally does what it says (generate and push A-share reports), but it contains multiple code-quality and deployment issues you should address before installing: - keys_loader and webhook: The scripts call a keys_loader in /workspace or /workspace/keys to obtain the WeCom webhook URL. Verify that keys_loader.py and the wecom_webhook.ini file are present and from a trusted source — they control where full report text is posted. - Missing dependency declarations: The code requires Python, akshare, pandas, and other libs but the skill has no install spec. Make sure those packages are installed in a controlled environment (or add a proper install step). - Broken code / runtime errors: Several scripts contain clear bugs (undefined variables like sec_count, syntax issues such as sys.path.insert(0, /workspace) without quotes, truncated functions). Expect runtime failures; review and fix the scripts before enabling cron jobs. - Auto-push behavior: SKILL.md and prompts instruct the agent to immediately push reports (and to “only output the report content”). If you want to review content before sending, change the workflow to a dry-run or require manual confirmation rather than automatic push. - Test safely: Run scripts with --dry-run in an isolated test workspace. Inspect keys_loader to confirm the webhook target. Limit permissions and don’t run with highly privileged credentials. After reviewing/fixing, consider adding explicit dependency & credential declarations in the skill manifest. If you cannot inspect or trust keys_loader/wecom webhook destination, treat this skill as unsafe to run because it will transmit potentially sensitive message content to an external endpoint.

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

latestvk9729a51avpwgkrref09bj3cvh848cte

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

SKILL.md

📦 安装后配置建议

Cron 定时任务推荐设置(粘贴到 OpenClaw 添加 Cron 任务时使用):

报告定时cron 表达式推送方式
📰 晨报每日 08:000 8 * * 1-5webhook
📋 晚报每日 20:000 20 * * 1-5webhook
📊 收盘小结交易日 15:3030 15 * * 1-5webhook
🚨 盘中预警每5分钟(09:30-11:30 / 13:00-15:00)*/5 9-11,13-15 * * 1-5webhook

推送方式:必须选 webhook

  • 企业微信 Webhook 推送无文本长度限制,适合长报告
  • Webhook Key:存储于 /workspace/keys/wecom_webhook.ini,由 keys_loader 统一读取
  • 各脚本内部已封装 wx_push() 函数,直接调用即可,无需额外配置

注意:收盘小结和晚报的 cron delivery 请务必指定 channel: wecom,否则会因多通道冲突导致推送失败:

"delivery": { "mode": "announce", "channel": "wecom" }

A股报告技能

⚠️ 重要:晨报和晚报是 AI 工作流,由 Cron 触发 agentTurn,agent 调用 batch_web_search 搜索新闻,再用模板生成报告,最后用 Python 推送。收盘小结是脚本数据+AI分析双层模式(脚本抓数据 → AI生成分析 → 统一推送)。盘中预警是纯 Python 脚本。


快速索引

报告类型推送方式触发方式
📰 晨报AI工作流Cron → agentTurn → batch_web_search → pushCron 8:00
📋 晚报AI工作流 + 量化情绪(6维:涨停/涨跌停比/北向/全市场净流入/两融/沪深300)Cron → 脚本抓数据+量化打分+推送Cron 20:00
📊 收盘小结AI工作流Cron → agentTurn → 脚本获取数据 → AI生成分析 → pushCron 15:30
📋 A股IPO周报Python脚本Cron → 脚本抓数据+网络搜索 → 生成推送Cron 0 9 * * 6(周六 09:00)
📰 财经周末要闻AI工作流Cron → agentTurn → batch_web_search → pushCron 0 20 * * 0(周日 20:00)
🚨 盘中预警Python脚本Cron → 脚本直接推送Cron */5(09:30-11:30 / 13:00-15:00)

1. 📰 晨报(AI工作流)

Cron 配置

{
  "schedule": { "kind": "cron", "expr": "0 8 * * 1-5", "tz": "Asia/Shanghai" },
  "payload": { "kind": "agentTurn", "message": "<下方完整prompt>" }
}

完整 prompt

请严格按以下步骤执行,完成后直接输出报告内容,不需要任何额外说明:

第一步:用batch_web_search搜索今日A股市场晨报相关内容,搜索以下关键词:
- A股 财经要闻 市场动态 今日
- 美股收盘 VIX 恐慌指数 今日
- A股 板块 涨停 龙头 今日
- 央行 财政部 政策 利好 今日

第二步:生成格式完整、内容详尽的晨报,严格按以下格式输出每一部分,不得遗漏任何板块:

📰 【股市晨报】YYYY年M月D日(周W)

━━━ 隔夜全球市场 ━━━

【美股收盘】
▪ 道琼斯:(点位),(涨跌幅%)
▪ 标普500:(点位),(涨跌幅%)
▪ 纳斯达克:(点位),(涨跌幅%)
▪ VIX恐慌指数:(数值),恐慌等级:【X区间】(说明,包含重要背景补充,如美股季度涨跌、近期趋势等,越详细越好)

【港股及A50】
▪ 恒生指数:(表现描述,含整周趋势)
▪ A50指数期货:(表现描述)

━━━ 财经要闻 ━━━

【1】(标题)|✅/❌/⚠️ 对A股影响
点评:(2-3句话,含具体公司、板块、数据,利好/利空要明确,不可泛泛而谈)

【2】(标题)|✅/❌/⚠️ 对A股影响
点评:(同上)

【3】(标题)|✅/❌/⚠️ 对A股影响
点评:(同上)

【4】(标题)|✅/❌/⚠️ 对A股影响
点评:(同上)

【5】(标题)|✅/❌/⚠️ 对A股影响
点评:(同上)

【6】(标题)|✅/❌/⚠️ 对A股影响
点评:(同上)

【7】(标题)|✅/❌/⚠️ 对A股影响
点评:(同上)

(列出5-8条重要新闻,每条必须包含:标题、日期、✅/❌/⚠️标记、点评中要有具体公司或数据)

━━━ 今日操作建议 ━━━

【大盘研判】
(结合技术面+消息面,给出当日大盘走势判断,3-5句话,含关键支撑/压力位)

【操作建议】
① 短线(1-3天):(具体方向+逻辑,注明短线/中线)
② 中线(1-3周):(具体方向+逻辑)
③ 波段操作:(具体点位建议,如4,000点上方压力、3,900下方低吸等)

【风险提示】
⚠️ (3条,分别关注外盘变盘、节前效应、地缘风险等具体因素)

⚠️ 仅供参考,不构成投资建议。股市有风险,投资需谨慎。

第三步:用Python通过企业微信推送报告内容:

import subprocess, json
import sys
sys.path.insert(0, "/workspace/keys")
from keys_loader import get_webhook_url
report = \"\"\"[完整报告内容]\"\"\"
payload = json.dumps({"msgtype": "text", "text": {"content": report}}, ensure_ascii=False)
r = subprocess.run(["curl", "-s", "-X", "POST", get_webhook_url(), "-H", "Content-Type: application/json", "-d", "@-"], input=payload.encode("utf-8"), capture_output=True)
print(r.stdout.decode() if r.stdout else "ok")

只输出报告正文内容,不需要任何解释,完成后立即执行推送代码。

2. 📋 晚报(AI工作流)

Cron 配置

{
  "schedule": { "kind": "cron", "expr": "0 20 * * 1-5", "tz": "Asia/Shanghai" },
  "payload": { "kind": "agentTurn", "message": "<下方完整prompt>" }
}

完整 prompt

请完成以下任务,直接执行不要询问:

第一步(必须先执行):运行以下Python命令获取今日量化情绪分:

python3 /workspace/skills/astock-report/scripts/send_evening_report.py --dry-run

输出格式示例:
SENTIMENT:50/100|🟠 偏空谨慎|市场情绪转弱...
ZTC:45|DTC:12|NORTH:25.3|MKT:-120
IDX:上证指数|3880.10|-0.80

记录以上输出中的数值,后续步骤中填入报告对应位置。

第二步:用batch_web_search搜索今日收盘后A股市场重要财经要闻,搜索关键词:
- A股收盘 股指 YYYYMMDD
- 板块涨停 强势龙头 YYYYMMDD
- 财经要闻 市场动态 YYYYMMDD

第三步:生成格式完整、内容详尽的收盘晚报,严格按以下格式输出每一部分:

📋 【A股晚报】YYYY年MM月DD日

━━━ 全球市场 ━━━

▎亚太市场
• 恒生指数:(点位),(涨跌幅%)
• 恒生红筹:(点位),(涨跌幅%)
• 日经225指数:(点位),(涨跌幅%)
• 韩国KOSPI:(点位),(涨跌幅%)

▎A股今日收盘(YYYY年MM月DD日)
• 上证指数:(点位),(涨跌幅%)
• 深证成指:(点位),(涨跌幅%)
• 创业板指:(点位),(涨跌幅%)
• 沪深300:(点位),(涨跌幅%)
• 科创50:(点位),(涨跌幅%)
• 成交额:(X.XX万亿元)(量能描述,如温和放大/明显缩量)

━━━ 市场情绪 ━━━
• 涨停家数:约X家(含ST)
• 跌停家数:约X家
• 北向资金:净流入/净流出X亿
• 两融余额:约X万亿(较上一交易日X亿)
• 全市场主力资金净流入:X亿(由脚本第一步输出MKT值填入)

情绪评估(直接填入第一步脚本输出的综合评分):
量化情绪打分:综合评分 X/100 🟢极强/🟡多头偏强/⚪中性震荡/🟠偏空谨慎/🔴极弱空头

(不需要逐维明细分值,只需填入综合评分和等级即可)

━━━ 重要财经要闻 ━━━

【1】(标题)
(事件简述,50字以内)
✅ 对A股有利:(一句话)
❌ 对A股不利:(一句话)
⚠️ 风险提示:(一句话)

【2】(标题)
(事件简述,50字以内)
✅ 对A股有利:(一句话)
❌ 对A股不利:(一句话)
⚠️ 风险提示:(一句话)

【3】(标题)
(事件简述,50字以内)
✅ 对A股有利:(一句话)
❌ 对A股不利:(一句话)
⚠️ 风险提示:(一句话)

(列出3-5条重要新闻,按重要性排序)

━━━ 热点板块一览 ━━━
🚀 强势板块:(板块名)(驱动逻辑)
⚠️ 弱势板块:(板块名)(原因)

━━━ 明日操作建议 ━━━

① 【顺势而为】(具体方向+逻辑,若成交额维持X万亿以上,可适当加仓……)

② 【超跌博弈】(具体板块+止损设置)

③ 【控制仓位】(整体仓位建议+风险提示)

⚠️ 免责声明:本报告由AI自动生成,仅供参考,不构成投资建议,市场有风险,投资需谨慎。

第四步:用Python通过企业微信推送:

import subprocess, json
import sys
sys.path.insert(0, "/workspace/keys")
from keys_loader import get_webhook_url
report = \"\"\"[完整报告内容]\"\"\"
payload = json.dumps({"msgtype": "text", "text": {"content": report}}, ensure_ascii=False)
r = subprocess.run(["curl", "-s", "-X", "POST", get_webhook_url(), "-H", "Content-Type: application/json", "-d", "@-"], input=payload.encode("utf-8"), capture_output=True)
print(r.stdout.decode() if r.stdout else "ok")

只输出报告内容,不需要额外解释。报告生成后立即执行Python推送代码。

3. 📊 收盘小结(Python脚本)

Cron 配置

{
  "schedule": { "kind": "cron", "expr": "30 15 * * 1-5", "tz": "Asia/Shanghai" },
  "payload": { "kind": "agentTurn", "message": "python3 /workspace/skills/astock-report/scripts/send_close_summary.py" }
}

推送内容结构:

📊 【A股收盘小结】YYYY年MM月DD日

【一,主要股指表现】
{trend}:
• 上证指数:(点位),↑/↓(涨跌幅%)
• 深证成指:(点位),↑/↓(涨跌幅%)
• 创业板指:(点位),↑/↓(涨跌幅%)
• 沪深300:(点位),↑/↓(涨跌幅%)
• 科创50:(点位),↑/↓(涨跌幅%)
📍 (2-3句话描述整体走势,含外围背景)

【二,资金流向】
北向资金:(X亿)
行业主力净流入前三:
1. 行业名:+X亿(领涨股+涨跌幅%)
2. 行业名:+X亿(领涨股+涨跌幅%)
3. 行业名:+X亿(领涨股+涨跌幅%)
行业主力流出前三:
1. 行业名:-X亿(领跌股+涨跌幅%)
2. 行业名:-X亿(领跌股+涨跌幅%)
3. 行业名:-X亿(领跌股+涨跌幅%)

【三,板块表现】
🚀 强势板块:
  ① 板块名(X家涨停)
  ② 板块名(X家涨停)
  ③ 板块名(X家涨停)

❄️ 弱势板块:
  ① 板块名(X家跌停)
  ② 板块名(X家跌停)
  ③ 板块名(X家跌停)

【四,量化情绪打分】
• 涨停家数:约X家
• 跌停家数:约X家
• 市场情绪:(填入脚本第一步输出的量化情绪评分:X/100 🟢/🟡/⚪/🟠/🔴)

【五,热门个股聚焦】
🔴 涨停聚焦:
• 股票名(涨跌幅%)
• 股票名(涨跌幅%)

【六,机构观点与后市展望】
✅ 多头逻辑:
• (2-3条逻辑)

⚠️ 风险提示:
• (2-3条风险)

📌 后市研判:
(机构观点+关键区间)

━━━━━━━━ 数据来源:腾讯财经·东方财富AKShare ━━━━

⚠️ 仅供参考,不构成投资建议。股市有风险,投资需谨慎。

4. 📰 财经周末要闻(AI工作流)

Cron 配置

{
  "schedule": { "kind": "cron", "expr": "0 20 * * 0", "tz": "Asia/Shanghai" },
  "payload": { "kind": "agentTurn", "message": "<下方完整prompt>" }
}

完整 prompt

请立即执行以下任务:

【第一步】batch_web_search搜索过去48小时最重要的财经要闻,共8-10条,涵盖:A股政策利好利空、美股收盘、国际市场动态、VIX恐慌指数、宏观经济数据、行业重大变化。

【第二步】筛选最重要的8-10条,每条注明日期(必须是近48小时内),按以下完整格式生成报告:

📰 【财经周末要闻】过去48小时(X月X日—X日)

🔟 第X条:[新闻标题](X月X日)
  ✅对A股有利:[分析展开]
  ❌对A股不利:[分析展开]
  ⚠️风险提示:[相关风险]

(共8-10条,每条分析完整充分)

📊 整体市场情绪研判
[做多/中性/偏空,给出3-5句理由]

⚠️ 仅供参考,不构成投资建议。股市有风险,投资需谨慎。

【第三步】用Python通过Webhook发送:

import subprocess, json
import sys
sys.path.insert(0, '/workspace/keys')
from keys_loader import get_webhook_url
report = \"\"\"[完整报告内容]\"\"\"
payload = json.dumps({"msgtype": "text", "text": {"content": report}}, ensure_ascii=False)
r = subprocess.run(["curl", "-s", "-X", "POST", get_webhook_url(), "-H", "Content-Type: application/json", "-d", "@-"], input=payload.encode(), capture_output=True, text=True)
print(r.stdout)

直接执行Python发送,不额外解释。

5. 📋 A股IPO周报(Python脚本)

Cron 配置

{
  "schedule": { "kind": "cron", "expr": "0 9 * * 6", "tz": "Asia/Shanghai" },
  "payload": { "kind": "agentTurn", "message": "python3 /workspace/skills/astock-report/scripts/send_ipo_report.py" }
}

推送内容结构(微信友好版)

📋 A股IPO周报 03月28日-04月04日

━━━━━━━━━━
📊 一、排队情况(截止2026年03月29日)

全市场共248家:问询214家 | 已过会待发行20家 | 提交注册7家

【科创板】40家  已受理2 | 问询35 | 提交注册3
【创业板】34家  问询33 | 过会1
【沪主板】18家  已受理2 | 问询15 | 提交注册1
【深主板】16家  已受理3 | 问询9 | 过会1 | 提交注册3
【北交所】140家  问询122 | 过会18

━━━━━━━━━━
📋 二、上周上会(03月28日-04月04日)

✅ 通过:5家
  · 企业简称 | 板块 | 日期
❌ 否决:0家

━━━━━━━━━━
📋 三、上周拿文(03月28日-04月04日)

📄 获发行批文:7家
  · 企业简称 | 板块 | 日期

━━━━━━━━━━
📋 四、上周终止/撤回(03月28日-04月04日)

本周无终止撤回记录

━━━━━━━━━━
📋 五、本周上会计划(04/07-04/11)

本周暂无上会安排

━━━━━━━━━━
📋 六、本周新股上市(03月28日-04月04日)

  · 股票简称(代码)| 上市:日期 | 发行:X元 | 涨幅:X%

━━━━━━━━━━
📌 数据来源:新浪财经+IPO123(统计截至2026年03月29日)
⚠️ 仅供参考,不构成投资建议。

数据说明

  • 排队数据来源:新浪财经 + IPO123 每周统计(统计截至每周五)
  • 上会/拿文/终止数据来源:akshare(stock_ipo_review_em
  • 新股申购/上市数据来源:akshare(stock_new_ipo_cninfo
  • 首日涨幅:手动补充(来源:交易所公告/媒体报道)

注意事项

  • 排队数据中的"中止"列因新浪财经统计中未单独列出,默认显示为0
  • 近一周无新增终止记录时,显示"本周无终止撤回记录"
  • 脚本已内置最新排队数据(硬编码),每次运行自动从新浪/IPO123 抓取最新数据更新

6. 🚨 盘中预警(Python脚本)

Cron 配置

{
  "schedule": { "kind": "cron", "expr": "*/5 9-11,13-15 * * 1-5", "tz": "Asia/Shanghai" },
  "payload": { "kind": "agentTurn", "message": "python3 /workspace/skills/astock-report/scripts/send_intraday_alert.py" }
}

触发条件:任一主要股指(上证指数/深证成指/创业板指/科创50/沪深300)涨跌幅超 ±2%,推送该指数的预警信息

去重机制:每个指数独立去重,按0.5%分档,每天每指数每档只推送一次

推送内容(触发哪个指数推哪个,每指数独立去重):

🚨 【🔺暴涨/🔴暴跌预警】上证指数 YYYY年MM月DD日 HH:MM

• 最新点位:XXXX.XX(▲/▼X.XX%)
• 最高/最低:XXXX.XX / XXXX.XX
⚠️ 请关注后续走势,做好风险管理。

脚本清单

脚本用途直接可跑
send_intraday_alert.py沪深300盘中预警
send_close_summary.py收盘小结+推送
send_evening_report.py晚报数据+全自动推送(要闻由AI补充)
send_ipo_report.pyA股IPO周报(含排队/上会/拿文/上市)
common.py公共模块(推送/时间判断)❌(被import)

配置(必填)

Webhook Key 统一在 /workspace/keys/wecom_webhook.ini 中管理(由 keys_loader.py 统一读取):

[wecom_webhook]
key = your_webhook_key_here

Files

7 total
Select a file
Select a file to preview.

Comments

Loading comments…