SuperAPI AI Directory

stock-cross-verify

Agents & models

View repository

Updated 10-15 23:46

About this skill

Multi-source cross-validation of stock information

For stock/industry/macro questions, automatically dispatch 11 information sources for parallel collection, use Gemini to organize, use the War Room to debate and verify, and outputConsensus / Divergence / To Be Verifiedthree-zone report.


Information Source Routing Table

Layer Zero: First-hand data verification (Tushare MCP, called directly by the main Agent)

No script needed, called directly via MCP tool, used to obtainfirst-hand announcements and news flashes of listed companiesas the factual baseline.

Information Source Areas of Expertise MCP Tool Key Parameters
Company Announcements Original first-hand announcements such as financial reports, major matters, increases/decreases in holdings, equity changes, etc. tushare_anns ts_code={TICKER}, start_date, end_date
News Flashes Multi-source news (Sina/Wallstreetcn/THS/East Money/Yuncaijing) tushare_news start_date, end_date, src(optional source filtering)

When to Use: Not needed every time. When the verification question involves specific company facts (financial report data, major matters, management changes) or when it is necessary to verify whether a piece of news is true, prioritize obtaining evidence from original announcements and news flashes.

Layer One: Core investment research (main Agent performs capture)

Information Source Areas of Expertise Skills Typical Commands
Gangdisi Quickly and comprehensively obtain marginal market information (research reports/announcements/meeting minutes/indicators) capture-gangtise python3 {gangtise}/scripts/query_kb.py "{query}"
AlphaPAI Comprehensive A-share information (institutional hot discussions/roadshow minutes/commentary/AI Q&A) capture-alphapai python3 {alphapai}/scripts/alphapai_api.py search "{query}" --save
AceCamp Core market expert meeting minutes content capture-acecamp python3 {acecamp}/scripts/acecamp_fetch.py fetch "{query}" --limit 5
AlphaEngine Foreign bank reports (Morgan Stanley/Goldman Sachs/UBS, etc.) capture-alphaengine python3 {alphaengine}/scripts/alphaengine_api.py search "{query}" --save

Layer Two: Public sentiment (executable by Gemini CLI)

Information Source Areas of Expertise Skills Typical Commands
Reddit Overseas investor discussions, tech and political public sentiment capture-reddit-search {reddit}/scripts/reddit-search search "{query}" 10
X/Twitter Real-time public opinion, KOL views capture-search-x node {searchx}/scripts/search.js --days 7 "{query}"

Layer Three: News (executable by Gemini CLI)

Information Source Areas of Expertise Skills Typical Commands
NewsAPI Search across 5,000+ global news sources news-newsapi-search node {newsapi}/scripts/search.js "{query}" --days 7
News Aggregation 8 sources including HN/36Kr/Wallstreetcn/Weibo, etc. news-aggregator-skill python3 {aggregator}/scripts/fetch_news.py --source all --limit 10 --keyword "{query}" --deep

Path Description:{gangtise} etc. are the {skillDir} paths of each skill; during actual execution, replace them with the absolute path where the skill is installed.


Phase 1: Intent Parsing

Before doing anything, first parse the user's question:

输入:"贵州茅台最近怎么了"
拆解:
  SUBJECT = "贵州茅台"
  TICKER = "600519.SH"(如能识别)
  DIMENSIONS = [基本面, 市场情绪, 行业动态]
  QUERY_KEYWORDS = ["贵州茅台", "茅台", "白酒行业"]
  ENGLISH_KEYWORDS = ["Kweichow Moutai", "baijiu"](用于海外源)
  URGENCY = normal | urgent(影响信息源选取数量)

Dimension Mapping Rules:

Question Type Core Dimensions Priority Information Sources
Individual stock fundamentals Financial reports, valuation, business tushare announcements + gangtise + alphapai + acecamp
Industry trends Industry landscape, policy gangtise + aggregator + newsapi
Event-driven M&A, policy, crisis tushare announcements + news + newsapi + X + alphapai
Overseas perspective Foreign views, global allocation alphaengine + reddit + X
Public sentiment assessment Market sentiment, retail/institutional divergence X + reddit + alphapai(hot-stock)
Announcement/news verification Whether a certain piece of news is true tushare announcements + news(primary sources preferred) + gangtise

Phase 2: Parallel Information Collection

Division of labor principles

  • Main Agent (Claude) executes: capture tasks that require authentication tokens (gangtise / alphapai / acecamp / alphaengine)
  • Gemini CLI executes: simple searches with no authentication requirements (reddit / X / newsapi / news-aggregator)

Wave A: Core investment research (executed by Claude)

Execute selectively by dimension; it is not necessary to call all of them every time:

# 0. Tushare MCP——一手数据核查(按需,涉及具体公司事实时优先调用)
#    直接通过 MCP tool 调用,无需脚本
#    公司公告:tushare_anns(ts_code="{TICKER}", start_date="YYYYMMDD", end_date="YYYYMMDD")
#    新闻快讯:tushare_news(start_date="YYYYMMDD", end_date="YYYYMMDD")
#    ↑ 作为事实基准,后续 capture 结果与公告/新闻原文对比验证

# 1. 岗底斯——快速获取边际信息
python3 {gangtise}/scripts/query_kb.py "{QUERY_KEYWORDS[0]}" --top 10
# 如有 ticker,补充盈利预测
python3 {gangtise}/scripts/forecast.py {TICKER}

# 2. AlphaPAI——机构视角
python3 {alphapai}/scripts/alphapai_api.py search "{QUERY_KEYWORDS[0]}" --save
python3 {alphapai}/scripts/alphapai_api.py roadshow-search "{QUERY_KEYWORDS[0]}" --save --limit 5

# 3. AceCamp——专家纪要
python3 {acecamp}/scripts/acecamp_fetch.py fetch "{QUERY_KEYWORDS[0]}" --limit 3

# 4. AlphaEngine——外资行(仅海外视角维度时)
python3 {alphaengine}/scripts/alphaengine_api.py search "{ENGLISH_KEYWORDS[0]}" --save

After each capture command is executed, save the returned content to the working directory:

output/sources/
├── tushare_anns.md         # 公司公告原文(按需,作为事实基准)
├── tushare_news.md         # 新闻快讯(按需,用于舆情核查)
├── gangtise_kb.md          # 岗底斯知识库搜索结果
├── gangtise_forecast.md    # 盈利预测(如有)
├── alphapai_search.md      # AlphaPAI 综合搜索
├── alphapai_roadshow.md    # 路演纪要
├── acecamp_articles/       # AceCamp 纪要全文
│   ├── 001_标题.md
│   └── 002_标题.md
└── alphaengine_reports.md  # 外资行报告摘要

Wave B: Public sentiment + news (executed by Gemini CLI)

Execute via Gemini CLI or mcp__gemini__gemini-query , suitable for simple tasks:

# 方式一:直接用 gemini CLI
gemini -m gemini-2.5-flash "
请帮我执行以下搜索命令,并将结果整理为 markdown:

1. Reddit 搜索:
   运行 {reddit}/scripts/reddit-search search '{ENGLISH_KEYWORDS[0]}' 10
   
2. X/Twitter 搜索:
   运行 node {searchx}/scripts/search.js --days 7 '{ENGLISH_KEYWORDS[0]}'

3. 新闻搜索:
   运行 node {newsapi}/scripts/search.js '{QUERY_KEYWORDS[0]}' --days 7

将每个来源的结果整理成以下格式保存到 output/sources/sentiment.md:
## [来源名]
- 主要观点 1(附来源链接)
- 主要观点 2
...
"

# 方式二:通过 Gemini MCP(更可控)
# 用 mcp__gemini__gemini-query,model=flash,thinkingLevel=low

Fallback plan when Gemini cannot execute capture: the main Agent executes the Wave B commands serially.


Phase 3: Information Review (executed by Gemini)

After all collection is complete, use Gemini to read and structurally organize all files under output/sources/ :

通过 Gemini MCP(mcp__gemini__gemini-query,model=pro,thinkingLevel=high):

prompt: |
  你是一名资深卖方分析师助理。请阅读以下多个信息源的原始内容,
  按以下维度整理成结构化摘要。

  信息源文件:
  [将 output/sources/ 下所有文件内容粘贴]

  请按以下结构输出:

  ## 一、事实层(各源的客观数据)
  | 数据点 | tushare公告 | gangtise | alphapai | acecamp | alphaengine | 新闻 | 舆情 |
  |--------|-----------|---------|---------|---------|------------|------|------|
  | 最新营收 | ✅(一手) | ... | ... | - | ... | - | - |
  | 估值水平 | - | ... | ... | - | ... | - | - |
  | ... | | | | | | | |

  ## 二、观点层(各源的判断和推理)
  | 议题 | 看多观点(来源) | 看空观点(来源) | 中性/不确定(来源) |
  |------|--------------|--------------|----------------|
  | ... | | | |

  ## 三、信号层(异常/分歧/矛盾)
  - 数据矛盾:...
  - 逻辑分歧:...
  - 信息缺口:...

  ## 四、信息源可信度权重
  | 来源 | 类型 | 时效性 | 独立性 | 建议权重 |
  |------|------|--------|--------|---------|
  | gangtise | 券商研报 | 高 | 中 | 0.25 |
  | ... | | | | |

Save the review results to output/organized/structured_summary.md。


Phase 4: War Room Cross-Validation

Core step. Call swarm-war-room to conduct a multi-agent debate and compare which claims are true and which are false.

Initialize War Room

bash {warroom}/scripts/init_war_room.sh cross-verify-{SUBJECT}

Filling in BRIEF.md

# 交叉验证任务

## 标的:{SUBJECT}({TICKER})
## 核心问题:{用户原始问题}
## 信息源摘要:见 output/organized/structured_summary.md
## 验证目标:
1. 各信息源的事实是否一致?数据冲突如何解释?
2. 各方的推理逻辑是否自洽?有无逻辑谬误?
3. 看多/看空的结论分歧根源是什么?
4. 哪些信息可以交叉确认为高可信度?哪些存疑?

Role configuration

Role Responsibility Key dimensions
BULL(bull advocate) Extract from the information all evidence chains supporting a bullish view Growth logic, catalysts, evidence of undervaluation
BEAR(bear advocate) Extract from the information all evidence chains supporting a bearish view Risk factors, evidence of overvaluation, logical flaws
FACT-CHECKER(fact-checker) Verify item by item whether the data from each source matches, and flag contradictions Data consistency, timestamps, source reliability
CHAOS(devil's advocate) Attack the arguments of all roles and find fatal blind spots Contrarian thinking, black swans, possibility of information manipulation

Execute Wave protocol

Wave 1:BULL + BEAR 并行——各自从 structured_summary.md 提取己方证据链
       → CHAOS 影子审查(攻击双方逻辑薄弱环节)

Wave 2:FACT-CHECKER 逐条核对 Wave 1 中 BULL 和 BEAR 引用的数据点
       → CHAOS 影子审查(质疑核查标准是否足够严格)

Consolidation:合并四方输出,生成交叉验证报告

Comparison dimensions (checked item by item by FACT-CHECKER)

┌─ 信息异同 ────────────────────────────┐
│ 哪些事实各源都报道了(高可信度)?        │
│ 哪些事实仅单一源提及(需二次验证)?      │
│ 哪些重要信息某些源有意/无意遗漏?         │
└─────────────────────────────────────┘

┌─ 数据异同 ────────────────────────────┐
│ 同一数据点各源报告值是否一致?            │
│ 不一致时,偏差来源是什么(口径/时间/计算)?│
│ 哪些数字可交叉确认?                     │
└─────────────────────────────────────┘

┌─ 逻辑异同 ────────────────────────────┐
│ 各源的推理链条是否自洽?                  │
│ 是否存在"用结论推数据"的循环论证?        │
│ 各方假设的前提条件是否明确?              │
└─────────────────────────────────────┘

┌─ 结论异同 ────────────────────────────┐
│ 看多/看空/中性各有几个源支持?            │
│ 分歧的根源是事实分歧还是框架分歧?        │
│ 是否存在信息不对称导致的结论差异?         │
└─────────────────────────────────────┘

Phase 5: Output Cross-Validation Report

Final report template:

# {SUBJECT} 交叉验证报告

**验证时间**:{datetime}
**核心问题**:{用户原始问题}
**信息源数量**:{N} 个({列出实际使用的源})

---

## 🟢 共识区(高可信度)

各信息源交叉确认的事实和结论:
1. [事实/结论](来源:gangtise + alphapai + acecamp,3源确认)
2. ...

## 🟡 分歧区(需判断)

各信息源存在不同观点或数据的领域:

### 分歧 1:[议题]
| 立场 | 核心论据 | 来源 | CHAOS 评估 |
|------|---------|------|-----------|
| 多方 | ... | ... | SURVIVE / WOUNDED / KILLED |
| 空方 | ... | ... | SURVIVE / WOUNDED / KILLED |

**FACT-CHECKER 判定**:数据[一致/有X%偏差],逻辑[自洽/存在Y缺陷]

### 分歧 2:...

## 🔴 待验证区(信息不足)

单一来源提及、尚无法交叉确认的信息:
1. [信息](仅来源:X)——建议验证方式:...
2. ...

## 📊 信息源可信度矩阵

| 来源 | 本次覆盖 | 时效性 | 独立性 | 与其他源一致率 | 综合权重 |
|------|---------|--------|--------|-------------|---------|
| ... | ✅/❌ | 高/中/低 | 高/中/低 | X% | 0.XX |

## 💡 结论与建议

[基于共识区和分歧区的综合研判,以及后续应关注的催化剂/风险点]

Save the report to output/report_{SUBJECT}_{date}.md。


Quick mode vs Deep mode

Mode Skip Time required Applicable scenarios
Quick mode(--quick) Skip War Room; output a preliminary synthesis directly after P3 review 3-5 minutes Daily quick verification
Deep mode(default) Complete P1→P5 10-20 minutes Important investment decisions
Focused mode(--focus [源]) Use only specified information sources 1-3 minutes Quickly check a single perspective

In quick mode, Phase 4 is skipped, and the Phase 3 output is the final report (no debate verification).


Execution Example

用户:帮我交叉验证一下贵州茅台最近的情况

Agent:
  P1 → 解析:SUBJECT=贵州茅台, TICKER=600519.SH, DIMENSIONS=[基本面, 市场情绪]
  P2 → 并行执行:
       [Claude] tushare_anns 拉取 600519.SH 近期公告(事实基准)
       [Claude] tushare_news 拉取近 7 天新闻快讯
       [Claude] gangtise 搜索"贵州茅台" + 盈利预测
       [Claude] alphapai 搜索"贵州茅台" + 路演纪要
       [Claude] acecamp 搜索"贵州茅台"
       [Gemini] newsapi 搜索"贵州茅台"
       [Gemini] X 搜索"Kweichow Moutai"
  P3 → Gemini 读取 output/sources/ 全部文件,输出 structured_summary.md
  P4 → War Room: BULL+BEAR+FACT-CHECKER+CHAOS 辩论
  P5 → 输出交叉验证报告

Notes

  • Token Management: The authentication status of each capture skill is managed independently, and does not need to be handled in this skill before execution
  • Fallback Strategy: If an information source API returns an error, mark it as "not covered this time" and continue execution without interrupting the process
  • Gemini Invocation: Prefer mcp__gemini__gemini-query(model=pro), fall back to gemini CLI
  • Information Timeliness: All information is marked with its acquisition time; data older than 7 days is marked with ⚠️ in the report
  • Security: This skill does not store any credentials; all authentication is managed by each sub-skill itself