Fin Idea Discovery logo

Fin Idea Discovery

Community
csmar432
fin-idea-discovery

经济金融研究的完整想法发现流程。从研究方向出发,经过文献综述、想法生成、新颖性验证、实证方法设计和数据获取,输出经过数据实证验证的可执行研究方案。

Overview

Publishercsmar432
Repositoryfinai-research
Skill namefin-idea-discovery
Stars
108
Forks
4
Bundled files
Instructions only
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by csmar432 on GitHub. Read the source before you install it.

Installation

Install the Fin Idea Discovery AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/csmar432/finai-research/tree/main/.agents/skills/fin-idea-discovery
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/csmar432/finai-research.git /tmp/finai-research
mkdir -p .claude/skills
cp -r /tmp/finai-research/.agents/skills/fin-idea-discovery .claude/skills/fin-idea-discovery
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Fin Idea Discovery in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Fin Idea Discovery on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Fin Idea Discovery is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

经济金融研究想法发现流程

从研究方向 $ARGUMENTS 开始,经过系统化流程,输出经过数据验证的可执行研究方案。

流程概览

研究方向输入
     ↓
阶段1: 研究方向理解 — 解析研究领域(绿色金融/数字金融/ESG/碳经济学/宏观金融/公司金融)
     ↓
阶段2: 文献综述 — 使用 MCP 工具搜索 OpenAlex/ArXiv/NBER/中文顶刊
     ↓
阶段3: 研究缺口识别 — 从文献中识别 3-5 个具体研究缺口
     ↓
阶段4: 想法生成 — 从缺口生成 8-12 个研究想法
     ↓
阶段5: 新颖性预检查 — 对每个想法快速检索 arXiv/NBER
     ↓
阶段6: 【强制】想法-数据交叉验证 — 使用 idea_data_checker.py 验证每个想法的数据可行性
     ↓ checkpoint(必须暂停,展示数据可行性表格给用户)
     ↓
阶段7: 排序输出 — 按新颖性(40%) + 数据可行性(30%) + 发表潜力(30%) 排序
     ↓
输出: IDEA_REPORT.md + IDEA_DATA_CHECK.md

核心原则

数据优先原则(必须遵守)

数据验证必须前移到想法阶段,不等到数据获取阶段才发现无数据

传统流程(有问题):
  想法生成 → 新颖性验证 → 实证设计 → 数据获取 ← 到这里才发现无数据!
       ↓                                    ↓
    浪费大量时间                   不得不返回更换主题

改进流程(当前):
  想法生成 → 【想法-数据交叉验证】→ 新颖性验证 → 实证设计 → 数据获取
       ↓                                    ↓
    在此处检查数据可行性         数据已知可行,只需执行
    无数据→立即告知用户          预先设计的获取方案

强制 checkpoint

阶段6(数据验证)完成后,必须暂停并展示数据可行性表格给用户,在用户确认前不得进入下一阶段。

输出文件

output/fin-ideas/
├── IDEA_REPORT.md         ← 完整想法报告(包含所有想法的详细信息)
├── IDEA_DATA_CHECK.md     ← 数据可行性报告(阶段6输出)
└── IDEA_CANDIDATES.md     ← 精简版(TOP 3-5 最优想法)

output/fin-novelty/
└── NOVELTY_PRECHECK.md    ← 初步新颖性检查结果

阶段详解

阶段1: 研究方向理解

1.1 解析研究领域

根据用户描述,识别研究方向所属领域:

领域核心关键词典型数据需求
绿色金融ESG、碳排放、绿色债券、气候风险ESG评级、碳排放数据、财务面板
数字金融Fintech、数字普惠、移动支付、互联网金融第三方支付数据、用户规模
碳经济学碳交易、碳配额、碳关税、减排碳市场数据、企业排放数据
宏观金融货币政策、金融周期、系统性风险宏观指标、金融市场数据
公司金融融资约束、资本结构、并购、股利政策财务面板、公司治理数据
资产定价因子模型、异常收益、机构投资者市场数据、因子数据
行为金融投资者情绪、散户行为、羊群效应交易数据、账户数据
金融科技区块链、数字货币、API金融平台数据、交易数据
1.2 提取用户约束

从用户输入中提取:

  • 目标期刊:JF/JFE/RFS/经济研究/金融研究等
  • 研究类型:实证/理论/综述/方法创新
  • 偏好方法:DID/IV/RDD/机器学习等
  • 数据偏好:A股/美股/全球/宏观
  • 时间范围:样本期要求

阶段2: 文献综述

2.1 MCP 多源检索

必须按顺序执行以下检索:

yaml
# 第1步:NBER 工作论文(预印本先行)
CallMcpTool: user-nber-wp -> search_nber_papers
  query: "[核心关键词] + A股/China + 实证方法"
  year_from: 2023

# 第2步:OpenAlex 学术论文
CallMcpTool: user-openalex -> get_openalex_works
  query: "[研究领域] + [核心机制] + China"
  per_page: 30

# 第3步:中文顶刊(A股研究必查)
CallMcpTool: user-brave-search -> brave_web_search
  query: "经济研究 金融研究 管理世界 [核心关键词] A股"
  num_results: 10

CallMcpTool: user-brave-search -> brave_web_search
  query: "中国工业经济 世界经济 [核心机制] 实证"
  num_results: 10

# 第4步:ArXiv 预印本(机器学习/计量方法)
CallMcpTool: user-arxiv -> semantic_search
  query: "[研究领域] + China + empirical"
  max_results: 20
2.2 引文图谱构建
bash
python scripts/citation_graph.py "[研究方向关键词]" \
    --depth 2 \
    --max-papers 50 \
    --output output/fin-literature/CITATION_GRAPH.json \
    --report output/fin-literature/CITATION_REPORT.md
2.3 文献筛选标准
标准要求原因
期刊层次顶刊优先(JF/JFE/RFS + 中文顶刊)质量可靠
时间范围近5年为主 + 高引经典文献前沿 + 理论基础
方法可靠性识别策略清晰,稳健性检验充分可作为方法参照
样本相关性A股/新兴市场 > 美股中国市场特殊性

阶段3: 研究缺口识别

从文献综述中识别 3-5 个具体研究缺口:

  1. 未被检验的假设:文献中存在但未系统验证的命题
  2. 未被探索的场景:某方法/发现未在特定市场中验证
  3. 矛盾发现的解释:争议性结论的新解释
  4. 新数据带来的机会:新数据集开启的新方向
  5. 方法论的空白:某计量方法在特定场景未被使用

输出格式:

markdown
## 研究缺口

### 缺口1: [缺口名称]
- **现有研究**:已有哪些相关研究
- **研究空白**:什么还没有被检验
- **为什么重要**:填补这个缺口的理论和实践意义
- **可行性**:数据和方法是否可行

### 缺口2: [缺口名称]
...

阶段4: 想法生成

基于识别的研究缺口,使用 LLM 生成 8-12 个研究想法:

4.1 生成提示词模板
你是一名经济金融领域顶级学者。请基于以下研究缺口,生成8-12个可发表的实证研究想法。

研究领域:[领域名称]
研究缺口:
1. [缺口1描述]
2. [缺口2描述]
...

要求:
1. 每个想法必须明确对应一个研究缺口
2. 说明使用的识别策略(DID/IV/RDD/面板等)
3. 明确所需的核心数据
4. 指出边际贡献(理论/方法/数据)
5. 评估发表潜力(目标期刊)

输出格式:
## Idea 1: [标题]
- **研究缺口**: [对应哪个缺口]
- **核心机制**: [因果传导路径]
- **识别策略**: [DID/IV/RDD/...]
- **数据需求**: [核心数据集]
- **边际贡献**: [理论/方法/数据创新]
- **发表潜力**: [目标期刊]

...
4.2 想法格式模板

每个想法必须包含:

markdown
## Idea N: [标题]

### 基本信息
- **研究缺口**: [对应哪个缺口编号和描述]
- **研究问题**: [一句话描述核心问题]
- **核心机制**: [因果传导路径,A→B→C]

### 方法设计
- **识别策略**: [DID/IV/RDD/面板/合成控制/机器学习]
- **识别假设**: [关键识别假设是什么]
- **估计方法**: [固定效应模型/工具变量/...]

### 数据需求
- **核心数据集**: [主要数据来源]
- **时间范围**: [样本期]
- **样本量**: [估计样本量]
- **关键变量**: [Y、X、控制变量]

### 边际贡献
- **理论贡献**: [对现有理论的拓展或挑战]
- **方法贡献**: [计量方法或分析方法的创新]
- **数据贡献**: [新数据集或新变量]

### 发表潜力
- **目标期刊**: [最适合发表的期刊]
- **新颖性**: [高/中/低]
- **可行性**: [高/中/低]

### 初步信号(可选)
- **文献支持**: [支持该假设的已有文献]
- **机制合理性**: [理论机制是否成立]

阶段5: 新颖性预检查

对每个想法进行快速新颖性检查:

yaml
# 对每个想法执行快速检索
CallMcpTool: user-nber-wp -> search_nber_papers
  query: "[想法核心关键词] + China + [方法]"
  year_from: 2023

CallMcpTool: user-openalex -> get_openalex_works
  query: "[想法核心关键词] + empirical + China"
  per_page: 10

输出:更新每个想法的"新颖性"字段,标记"高/中/低"

阶段6: 想法-数据交叉验证(强制)

这是流程中最关键的 checkpoint,必须执行

6.1 调用 IdeaDataValidator
python
from scripts.idea_data_checker import IdeaDataValidator, quick_check

# 准备想法列表(从阶段4生成)
ideas = [
    {
        "id": "idea_1",
        "title": "关税冲击与资本结构调整速度",
        "description": "利用DID分析2018年关税冲击对企业资本结构调整速度的影响",
        "keywords": ["tariff", "capital structure", "DID", "A-share"],
    },
    # ... 更多想法
]

# 执行数据可行性验证
validator = IdeaDataValidator(ideas)
report = validator.validate_all()
validator.print_report(report)
6.2 验证报告解读

ValidationReport 包含以下关键字段:

字段说明
available_count数据完全可行的想法数
partial_count部分可行的想法数
gap_count数据缺口的想泗数
auth_needed_count需要授权模拟的想法数
idea_results每个想法的详细验证结果
6.3 可行性评分标准
状态评分含义
AVAILABLE1.0数据完全可用,可立即推进
PARTIALLY_AVAILABLE0.6部分数据缺失,可推进但需补充
DATA_GAP0.0数据缺口严重,需先补充数据
REQUIRES_AUTH0.3需要用户授权使用模拟数据
6.4 checkpoint 展示模板
═══════════════════════════════════════════════════════════════════
                    想法-数据可行性验证报告
═══════════════════════════════════════════════════════════════════

  验证结果统计:
    ✅ 数据可行:       3 个想法
    ⚠️  部分可行:     5 个想法
    ❌ 数据缺口:      2 个想法
    🔐 需授权模拟:    2 个想法

  ━━ ✅ 数据可行的想法 (3个) ━━
  1. [想法标题]
     评分: 1.0/1.0 | 数据可行,可立即推进
     数据: tushare (财务数据), akshare (免费备选)

  2. [想法标题]
     ...

  ━━ ⚠️  部分可行的想法 (5个) ━━
  1. [想法标题]
     评分: 0.6/1.0 | 部分数据缺失,可推进但需补充
     ⚡ 缺失数据: 融资融券数据(需Tushare Pro Token)

  2. [想法标题]
     ...

  ━━ ❌ 数据缺口的想法 (2个) ━━
  这些想法当前无法推进,需要先补充数据。

  1. [想法标题]
     评分: 0.0/1.0
     缺失数据: 上市公司海关进出口明细(HS8位码)
     获取途径: CSMAR海关数据库(通过学校图书馆VPN)
     网址: https://www.gtadata.com
     成本/限制: 需CSMAR机构账号

  2. [想法标题]
     ...

  ━━ 🔐 需授权模拟的想法 (2个) ━━
  1. [想法标题]
     评分: 0.3/1.0 | 需要用户授权使用模拟数据

─────────────────────────────────────────────────────────────────
  批量数据行动建议:
    • 优先解决以下数据缺口: customs_trade, patent_data

  下一步(请选择):
    (1) 补充数据——获取API Key或联系学校图书馆
    (2) 授权模拟——仅用演示流程,结果不能发表
    (3) 更换主题——选择数据更易获取的研究方向

═══════════════════════════════════════════════════════════════════
6.5 用户决策点

必须等待用户明确选择,以下选项:

  1. 补充数据:获取 API Key 或联系学校图书馆
  2. 授权模拟:仅用演示流程,结果不能发表
  3. 更换主题:选择数据更易获取的研究方向
  4. 继续部分可行想法:对部分可行的想法继续推进

阶段7: 排序与输出

7.1 综合评分公式
综合评分 = 新颖性评分 × 0.4 + 数据可行性评分 × 0.3 + 发表潜力评分 × 0.3
评分维度权重评分标准
新颖性40%高=10, 中=7, 低=4
数据可行性30%可行=10, 部分=6, 缺口=0, 模拟=3
发表潜力30%顶刊=10, 一区=8, 二区=6
7.2 输出排序后的想法报告
markdown
# 研究想法报告

**研究方向**: [方向]
**生成日期**: [日期]
**想法总数**: N个(其中M个数据可行)

## 执行摘要

[3-5句话总结推荐想法的核心发现]

## TOP 3 推荐想法

### 想法 1: [标题] ⭐⭐⭐
**综合评分**: X.X/10

| 维度 | 评分 |
|------|------|
| 新颖性 | X/10 |
| 数据可行性 | X/10 |
| 发表潜力 | X/10 |
| **综合评分** | **X.X/10** |

- **研究问题**: [一句话]
- **识别策略**: [方法]
- **核心数据**: [数据来源]
- **边际贡献**: [创新点]

### 想法 2: [标题] ⭐⭐
...

### 想法 3: [标题] ⭐
...

## 所有想法列表

| 排名 | 想法 | 综合评分 | 新颖性 | 数据可行 | 发表潜力 |
|------|------|---------|--------|---------|---------|
| 1 | 想法1 | 9.2 | 高 | 可行 | 顶刊 |
| 2 | 想法2 | 8.5 | 高 | 部分 | 一区 |
| ... | ... | ... | ... | ... | ... |

## 数据需求汇总

### 可直接使用的数据
- [数据源1]: [描述]
- [数据源2]: [描述]

### 需要补充的数据
- [数据源]: [如何获取]

## 下一步

1. 选择一个想法继续推进
2. 进入 fin-novelty-check 进行完整新颖性验证
3. 进入 fin-experiment-design 进行实证设计

IdeaDataValidator API 参考

导入方式

python
from scripts.idea_data_checker import (
    IdeaDataValidator,
    IdeaDataRequirement,
    ValidationReport,
    Feasibility,
    quick_check
)

核心类和方法

python
class IdeaDataValidator:
    def __init__(self, ideas: list[dict], verbose: bool = False)
    """初始化验证器

    Args:
        ideas: 想法字典列表,每个字典应包含:
               - id: 想法唯一标识
               - title: 想法标题
               - description: 想法描述
               - keywords: 关键词列表(自动从标题/描述提取)
    """

    def validate_all(self) -> ValidationReport
    """对所有想法执行数据可行性验证,返回完整报告"""

    def validate_single(self, idea: dict) -> IdeaValidationResult
    """验证单个想法的数据可行性"""

    def print_report(self, report: ValidationReport) -> None
    """打印验证报告(带颜色)"""

def quick_check(ideas: list[dict]) -> ValidationReport
"""一行调用:对所有想法进行验证并打印报告"""

数据需求定义

python
@dataclass
class IdeaDataRequirement:
    data_type: str              # "financial_panel" | "customs_trade" | ...
    description: str             # 对用户说明
    required_variables: list[str]  # 必须包含的变量
    time_frequency: str         # "daily" | "monthly" | "yearly"
    time_range: str             # "2010-2024"
    sample_scope: str           # "A股全样本" | "创业板" | ...
    data_sources_candidates: list[str]  # 可能的来源
    priority: int = 1          # 1=必须,2=重要但可替代,3=可选

验证结果解读

python
# 检查所有想法的可行性
for result in report.idea_results:
    print(f"{result.idea['title']}: {result.feasibility.value}")
    print(f"  评分: {result.feasibility_score:.1f}/1.0")
    print(f"  建议: {result.recommendation}")

    # 如果有数据缺口
    if result.gaps:
        print("  数据缺口:")
        for gap in result.gaps:
            print(f"    - {gap}")

    # 如果需要行动
    if result.actions:
        print("  行动:")
        for action in result.actions:
            print(f"    - {action}")

MCP 工具快速索引

需求MCP Server工具
NBER 工作论文user-nber-wpsearch_nber_papers
OpenAlex 论文user-openalexget_openalex_works
ArXiv 论文user-arxivsemantic_search
中文文献user-brave-searchbrave_web_search
论文全文user-context7get_context7_by_query
研报补充user-eastmoney-reportsget_research_report

关键约束

  1. 数据验证是强制 checkpoint:阶段6 必须暂停,不能自动继续
  2. 模拟数据需要明确授权:没有用户授权不能使用模拟数据
  3. 想法必须与研究缺口对应:每个想法必须明确指出填补哪个缺口
  4. 评分必须透明:展示所有维度的评分和权重
  5. 中文文献不可忽视:A股研究中中文顶刊是必查项

快速执行命令

bash
# 完整流程执行
python scripts/research_framework/pipeline.py \
    --topic "研究方向" \
    --mode idea_discovery \
    --output output/fin-ideas/

# 仅想法生成(不含数据验证)
python scripts/research_framework/pipeline.py \
    --topic "研究方向" \
    --mode idea_generation

# 仅数据验证
python scripts/idea_data_checker.py \
    --ideas-file output/fin-ideas/IDEA_REPORT.md \
    --report-file output/fin-ideas/IDEA_DATA_CHECK.md

Frequently asked questions

What does the Fin Idea Discovery AI skill do?

经济金融研究的完整想法发现流程。从研究方向出发,经过文献综述、想法生成、新颖性验证、实证方法设计和数据获取,输出经过数据实证验证的可执行研究方案。

Why use Fin Idea Discovery on TypingMind?

Because you install it once and use it with any model. Fin Idea Discovery is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Fin Idea Discovery in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/csmar432/finai-research/tree/main/.agents/skills/fin-idea-discovery. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Fin Idea Discovery?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Fin Idea Discovery?

As many as you like. As long as a model supports skills, you can use Fin Idea Discovery with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Fin Idea Discovery AI skill free?

Yes. It is published on GitHub by csmar432 under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇