Agent skill

Fin Full Pipeline

by csmar432 in csmar432/finai-research

经济金融研究端到端完整流程。从研究想法到可投稿论文,覆盖文献综述、想法生成、新颖性验证、实证方法设计、论文大纲、正文写作、图表生成、LaTeX编译和投稿前检查。

MITAuto-check passedDocuments & Office

Install Fin Full Pipeline

skills CLI
$ npx skills add csmar432/finai-research --skill fin-full-pipeline -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install csmar432/finai-research fin-full-pipeline --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/csmar432/finai-research.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/fin-full-pipeline .claude/skills/fin-full-pipeline && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
fin-full-pipeline
GitHub stars
109
Token cost
~5.1k tokens
SKILL.md length
354 words
Files
1
Skills in repo
15
Repo updated
First seen
Licence
MIT

At a glance

经济金融研究端到端完整流程。从研究想法到可投稿论文,覆盖文献综述、想法生成、新颖性验证、实证方法设计、论文大纲、正文写作、图表生成、LaTeX编译和投稿前检查。

  • Works in 3 steps: FIN_RESEARCH_PLAN.md — 详细研究计划(最优先) → FIN_BRIEF.md — 12段式研究简报(次优先) → 用户直接输入的研究方向(兜底)
  • Tasks that involve LaTeX
  • SKILL.md covers 核心原则:数据优先, 执行前的准备, 阶段详解 and 完整输出文件结构, plus 3 more sections
  • Calls python and python3; reaches gtadata.com

What it does

Fin Full Pipeline is an agent skill from csmar432/finai-research. 经济金融研究端到端完整流程。从研究想法到可投稿论文,覆盖文献综述、想法生成、新颖性验证、实证方法设计、论文大纲、正文写作、图表生成、LaTeX编译和投稿前检查。

Its SKILL.md is about 5.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Documents & Office, covering LaTeX and Econometrics and empirical research. It works with LaTeX, Model Context Protocol and Python. The repository describes itself as: Evidence-first AI workflow for economic and financial research: literature → identification → data → econometrics → verifiable LaTeX. 43 data sources, 58 method modules, 18 AI… The licence is MIT.

When your agent uses it

  • Tasks that involve LaTeX
  • Tasks that involve Econometrics and empirical research

Example prompts

  • “/fin-full-pipeline”

Requirements

  • Python 3
  • Docker

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. FIN_RESEARCH_PLAN.md — 详细研究计划(最优先)
  2. FIN_BRIEF.md — 12段式研究简报(次优先)
  3. 用户直接输入的研究方向(兜底)

What it can do on your machine

Read from SKILL.md and the folder at commit 47eebb7. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • python
    • python3

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • gtadata.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Fin Full Pipeline loads about 5.1k tokens when it runs. Until then it costs about 25 tokens; SKILL.md has 354 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~25
When it runs · the whole SKILL.md, loaded when a task matches
~5.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from csmar432/finai-research at commit 47eebb7, republished under its MIT licence (© csmar432). 354 words, ~5,136 tokens.

Download SKILL.mdSave it as .claude/skills/fin-full-pipeline/SKILL.md (or your agent's skills folder).
name
fin-full-pipeline
description
经济金融研究端到端完整流程。从研究想法到可投稿论文,覆盖文献综述、想法生成、新颖性验证、实证方法设计、论文大纲、正文写作、图表生成、LaTeX编译和投稿前检查。
trigger
研究...|完整流程...|从想法到论文...|端到端...
argument-hint
[research-direction]

fin-full-pipeline:经济金融研究端到端完整流程

端到端的经济金融学术研究流程,从用户描述研究方向开始,到生成可投稿论文 PDF 结束。

Agent-host / 隔离槽位(重要)
若任务要求「不要询问、不要 Mock、缺失配置则跳过并写报告」:
先运行 python scripts/agent_host_entry.py(或读取其写出的 output/SKIPPED_CONFIG.md / output/FINAL.md)。
若该入口因无 LLM 等原因以非 0 退出,停止本 Skill,不要自建平行复现流水线或编造结果。
交互式 HITL 路径仍用 start_research.py / agent_pipeline.py --use-hitl。

研究方向输入
       ↓
阶段1: FIN_BRIEF.md 生成      [FIN_BRIEF.md]
       ↓ checkpoint
阶段2: 文献综述               [LIT_REVIEW.md]
       ↓ checkpoint
阶段3: 想法生成 + 数据验证    [IDEA_REPORT.md]
       ↓【想法-数据交叉验证】← P1 强制检查点,不跳过
       ↓ checkpoint
阶段4: 新颖性验证             [NOVELTY_REPORT.md]
       ↓ checkpoint
阶段5: 实证方法设计           [REFINED_DESIGN.md]
       ↓ checkpoint
阶段6: 数据获取               [DATA_MANIFEST.md + data/*.csv]
       ↓ checkpoint
阶段7: 论文大纲               [PAPER_OUTLINE.md + FIGURE_PLAN.md]
       ↓ checkpoint
阶段8: 正文写作               [draft_v1/main.tex]
       ↓ checkpoint
阶段9: 图表生成               [draft_v1/figures/*.pdf]
       ↓ checkpoint
阶段10: 对抗性Review           [REVIEW_REPORT.md]
       ↓ checkpoint
阶段11: LaTeX编译              [draft_v1/main.pdf]
       ↓ checkpoint
阶段12: 投稿前检查             [SUBMIT_CHECK_REPORT.md]
       ↓
最终输出: 可投稿论文 PDF + 完整研究包

核心原则:数据优先

数据验证必须在阶段3(想法生成)完成,不等到阶段6(数据获取)才发现无数据。

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

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

执行前的准备

系统准备(每次启动必须执行)
bash
# 检查环境并初始化输出目录(PROJECT_DIR 自动取当前目录)
PROJECT_DIR="$(pwd)"
cd "$PROJECT_DIR" || exit 1

# 创建所有输出目录
mkdir -p \
  output/fin-literature \
  output/fin-ideas \
  output/fin-novelty \
  output/fin-refinement \
  output/fin-experiments/data/finance \
  output/fin-review/round_1 \
  output/fin-manuscript/draft_v1/figures \
  output/fin-manuscript/draft_v1/tables \
  output/fin-manuscript/draft_v1/scripts

# 检查 Python 关键依赖
python3 -c "import json, yaml, pandas, numpy, matplotlib, seaborn, statsmodels; print('[✓] All Python deps OK')" 2>/dev/null \
  || echo '[!] Python deps missing — run: pip install pandas numpy matplotlib seaborn statsmodels pyyaml'

# 检查 LaTeX 编译器
for cmd in pdflatex xelatex bibtex; do
  if command -v $cmd &>/dev/null; then
    echo "[✓] $cmd"
  else
    echo "[!] $cmd not found"
  fi
done

# 检查 Docker MCP 服务是否运行
for svc in mcp_eastmoney_reports mcp_financial mcp_enhanced_finance; do
  if docker ps --format '{{.Names}}' | grep -q "^${svc}$"; then
    echo "[✓] $svc running"
  else
    echo "[!] $svc not running"
  fi
done
读取上下文(步骤1)

按优先级读取已有研究上下文:

  1. FIN_RESEARCH_PLAN.md — 详细研究计划(最优先)
  2. FIN_BRIEF.md — 12段式研究简报(次优先)
  3. 用户直接输入的研究方向(兜底)

如果两者都不存在,则需要用户描述研究方向。


阶段详解

阶段1:生成 FIN_BRIEF.md

目标: 将用户的研究方向转化为结构化的12段式研究简报。

触发条件: FIN_BRIEF.md 不存在或内容为空。

执行方式:

python
# 检查是否存在
import os
if os.path.exists("FIN_BRIEF.md"):
    with open("FIN_BRIEF.md") as f:
        content = f.read().strip()
    if content:
        print("FIN_BRIEF.md 已存在,内容如下:")
        print(content[:500])
        # 展示确认菜单
        print("是否使用现有 FIN_BRIEF.md?(y/n)")
        # 等待用户输入
        # 如果用户选择 n,删除并重新生成

FIN_BRIEF.md 格式(12段式):

markdown
# 研究简报

## 1. 研究标题
[一句话标题,≤30字]

## 2. 研究领域
[宏观金融 / 公司金融 / 资产定价 / 金融计量 / 行为金融]

## 3. 研究问题
[一句话描述核心研究问题]

## 4. 研究类型
[实证 / 理论 / 综述 / 方法创新]

## 5. 目标期刊
[JF / JFE / RFS / 经济研究 / 金融研究 / 管理世界]

## 6. 核心假设
[H1: ... H2: ... H3: ...]

## 7. 数据来源
[A股 / 美股 / 宏观 / 跨境]

## 8. 识别策略
[DID / IV / RDD / PSM / 面板GMM]

## 9. 样本期
[YYYY-YYYY]

## 10. 核心变量
- 被解释变量(Y):
- 解释变量(X):
- 控制变量:

## 11. 预期结论
[预期的实证发现]

## 12. 潜在贡献
[理论贡献 / 识别策略创新 / 数据集贡献]

checkpoint 交互:

════════════════════════════════════════════════════════════
          阶段1:研究简报生成完成
════════════════════════════════════════════════════════════

  研究标题: [标题]
  研究领域: [领域]
  目标期刊: [期刊]
  识别策略: [策略]
  样本期:   [年份范围]

  请选择:
    (1) 确认并继续
    (2) 修改某个字段
    (3) 补充更多细节
    (4) 重新描述研究方向

必须等待用户选择,不能自动继续。


阶段2:文献综述

目标: 构建研究领域的完整文献地图,识别核心文献和研究缺口。

调用技能:

Skill: fin-lit-review
"[研究方向简述,从 FIN_BRIEF.md 读取]"

MCP 检索组合(优先使用):

# 1. NBER 工作论文(近3年)
server: user-nber-wp
tool: get_nber_paper
params: { "query": "[研究关键词]", "year_from": 2023 }

# 2. OpenAlex 学术论文
server: user-openalex
tool: get_openalex_works
params: { "query": "[研究主题]", "per_page": 25 }

# 3. ArXiv 预印本
server: user-arxiv
tool: semantic_search
params: { "query": "[研究主题]" }

# 4. 东方财富研报(业界视角)
server: user-eastmoney-reports
tool: get_research_report
params: { "ts_code": "[相关股票代码]", "max_results": 10 }

# 5. 网络搜索(补充)
server: user-brave-search
tool: brave_web_search
params: { "query": "[研究主题 + 顶刊名]" }

输出文件:

  • output/fin-literature/LIT_REVIEW.md — 完整文献综述(≥3000字)
  • output/fin-literature/LIT_SUMMARY.md — 精简版(≤1000字)

checkpoint 交互:

════════════════════════════════════════════════════════════
          阶段2:文献综述完成
════════════════════════════════════════════════════════════

  核心文献:
    • [文献1]: [主要发现]
    • [文献2]: [主要发现]

  研究缺口:
    • [缺口1]: [描述]
    • [缺口2]: [描述]

  覆盖期刊: JF / JFE / RFS / 经济研究

  请选择:
    (1) 继续下一阶段
    (2) 补充检索 [具体方向] 的文献
    (3) 调整研究方向(缺口与我的想法不完全匹配)

阶段3:想法生成 + 想法-数据交叉验证(P1 强制检查点)

目标: 生成8-12个研究想法,过滤后保留数据可行的想法。

调用技能:

Skill: fin-generate-idea
"[研究方向,从 FIN_BRIEF.md 读取]"
子步骤 3A:想法生成

核心逻辑:

python
from scripts.agent_pipeline import AgentPipeline, AgentPipelineConfig

config = AgentPipelineConfig(
    topic="[研究方向]",
    venue="[目标期刊]",
    research_field="[研究领域]",
    use_hitl=True,  # outline/literature/draft gates; set False only for batch CI
    visualize=True,
)
pipeline = AgentPipeline(config=config)

# 生成候选想法(8-12个)
ideas = pipeline._orchestrator.generate_ideas(topic="[研究方向]")

想法格式:

python
ideas = [
    {
        "id": "idea_001",
        "title": "关税冲击与资本结构调整速度",
        "description": "利用DID分析2018年中美关税战对企业资本结构调整速度的影响",
        "keywords": ["tariff", "capital structure", "DID", "A-share"],
        "hypothesis": "H1: 关税暴露程度越高,企业资本结构调整速度下降越显著",
        "novelty_score": 8.5,  # 1-10
        "data_feasibility": "high",  # high/medium/low
    },
    # ... 8-12个想法
]

想法排序标准:

  1. 数据可行性(必须先满足)
  2. 新颖性评分(目标期刊查重)
  3. 理论贡献潜力
  4. 实证可操作性
子步骤 3B:【P1 强制】想法-数据交叉验证 ← 绝对不能跳过

必须执行的数据验证:

python
from scripts.idea_data_checker import IdeaDataValidator

validator = IdeaDataValidator(ideas=ideas)
report = validator.validate_all()
validator.print_report(report)

# report.idea_results[0] 包含:
#   - idea: 原始想法
#   - feasibility: Feasibility.AVAILABLE / PARTIALLY_AVAILABLE / DATA_GAP / REQUIRES_AUTH
#   - feasibility_score: 0.0-1.0
#   - gaps: 数据缺口列表
#   - actions: 修复建议

验证结果处理:

可行性含义处理方式
AVAILABLE真实数据可用✅ 直接进入推荐名单
PARTIALLY_AVAILABLE部分数据缺失⚠️ 进入推荐名单,但需补充缺失数据
DATA_GAP数据缺口严重❌ 不进入推荐名单,需用户决策
REQUIRES_AUTH需授权模拟数据🔐 必须显式授权

用户交互(强制):

════════════════════════════════════════════════════════════
     ⚠️  阶段3.5:想法-数据交叉验证(P1 强制检查点)
════════════════════════════════════════════════════════════

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

  ──────────────────────────────────────────────────────

  ✅ 数据可行的想法(直接推进):
    1. [想法标题]
       数据: tushare, akshare
    2. [想法标题]
       数据: tushare, esg_rating

  ⚠️ 部分可行的想法(需补充数据):
    3. [想法标题]
       缺失: ESG评级数据
       获取途径: Wind ESG数据库 / 商道融绿

  ❌ 数据缺口的想法(无法推进):
    4. [想法标题]
       缺失: 上市公司海关进出口明细(HS编码)
       获取途径: CSMAR海关数据库(需机构账号)
       网址: https://www.gtadata.com

  ──────────────────────────────────────────────────────

  请选择:
    (1) 选择想法1(数据可行)
    (2) 选择想法2(数据可行)
    (3) 补充缺失数据后再继续(优先获取 [数据名称])
    (4) 授权使用模拟数据(仅演示用,论文不能发表)
    (5) 更换研究方向

禁止事项:

  • ❌ 禁止跳过此检查点
  • ❌ 禁止静默 fallback 到模拟数据
  • ❌ 禁止将 DATA_GAP 状态的想法推荐给用户
  • ❌ 禁止在用户未授权的情况下使用模拟数据

硬中断条件: 如果所有想法都是 DATA_GAP 且没有替代方案,流程必须停止。

python
validated = [r for r in report.idea_results if r.feasibility in (
    Feasibility.AVAILABLE, Feasibility.PARTIALLY_AVAILABLE
)]

if not validated:
    print("⚠️  所有候选想法均无数据支持,流程硬中断")
    print("请选择:")
    print("  (1) 补充数据(将数据文件放入 data/ 目录)")
    print("  (2) 更换研究方向")
    # 等待用户输入
    # 如果用户选择继续处理,确保只有有数据的想法进入后续阶段

输出文件:

  • output/fin-ideas/IDEA_REPORT.md — 完整想法报告(含数据验证结果)
  • output/fin-ideas/IDEA_CANDIDATES.md — 精简版 TOP 3-5

阶段4:新颖性验证

目标: 在 JF/JFE/RFS/arXiv/中文顶刊中检索,确认研究想法的新颖性。

调用技能:

Skill: fin-novelty-check
"[选定想法的描述]"

检索覆盖矩阵:

来源时间范围重要性检索词示例
JF/JFE/RFS/JME近5年最高carbon trading + innovation
经济研究/金融研究/管理世界近5年很高(A股必查)碳排放权交易 + 绿色创新
arXiv q-fin近2年高tariff + innovation + DID
NBER Working Papers近3年高trade war + capital structure
SSRN近2年中高补充检索
东方财富研报无限制中业界视角补充

输出文件:

  • output/fin-novelty/NOVELTY_REPORT.md — 新颖性报告

checkpoint 交互:

════════════════════════════════════════════════════════════
          阶段4:新颖性验证完成
════════════════════════════════════════════════════════════

  综合评分: X/10
  评估等级: 高度新颖 / 中度新颖 / 缺乏新颖性

  最接近的先例:
    • [文献]: [主要方法,与本研究的区别]

  主要风险:
    • [reviewer最可能引用的先例]

  差异化策略:
    • [本研究如何区分]

  请选择:
    (1) 继续细化该方向(新颖性可接受)
    (2) 调整研究角度以更好区分
    (3) 更换研究方向
    (4) 查看详细报告后再决定

阶段5:实证方法设计

目标: 将研究想法细化为完整可执行的实证方案。

调用技能:

Skill: fin-experiment-design
"[选定想法的描述 + REFINED_DESIGN.md]"

识别策略选择决策树:

用户描述研究方向
       ↓
是否存在明确的外生冲击事件?
       ↓ yes                    ↓ no
是否存在对照组?         是否存在工具变量?
       ↓ yes         ↓ no           ↓ yes      ↓ no
     DID           是否有       IV/2SLS    面板回归
                 清晰断点?              + 安慰剂检验
                       ↓ yes
                     RDD

输出文件:

  • output/fin-refinement/REFINED_DESIGN.md — 细化后的研究设计
  • output/fin-refinement/EXPERIMENT_PLAN.md — 详细实验执行计划
  • output/fin-refinement/VARIABLE_DEFINITIONS.md — 变量定义表
  • output/fin-refinement/ROBUSTNESS_PLAN.md — 稳健性检验方案(≥6种)
  • output/fin-refinement/ENDOGENEITY_PLAN.md — 内生性处理方案
  • output/fin-refinement/EXECUTION_CHECKLIST.md — 实验执行检查清单

checkpoint 交互:

════════════════════════════════════════════════════════════
          阶段5:实证方法设计完成
════════════════════════════════════════════════════════════

  识别策略: [DID / IV / RDD / 面板GMM]
  被解释变量Y: [变量名]
  核心解释变量X: [变量名]
  控制变量: [列表]
  固定效应: [类型]
  稳健性检验: [N]项
  内生性处理: [方案]

  请选择:
    (1) 确认设计方案,继续数据获取
    (2) 调整变量定义(说明要改什么)
    (3) 更换识别策略(说明原因)
    (4) 查看完整设计报告

阶段6:数据获取

目标: 根据 REFINED_DESIGN.md 获取所有所需数据。

调用技能:

Skill: fin-data-acquisition
"[REFINED_DESIGN.md]"
【关键】数据源预检查(必须首先执行)
python
from scripts.data_source_checker import DataSourceChecker, DataRequirement

requirements = [
    DataRequirement(
        name="financial_data",
        user_facing_name="A股财务数据",
        description="资产负债率、ROA、规模等公司财务指标",
        sources=["tushare", "wind", "csmar", "akshare"],
        required=True,
    ),
    DataRequirement(
        name="customs_data",
        user_facing_name="上市公司海关进出口明细(HS编码)",
        description="用于计算企业关税暴露强度",
        sources=["csmar_customs"],
        required=True,
    ),
    # ... 根据 REFINED_DESIGN.md 添加其他需求
]

checker = DataSourceChecker(requirements)
result = checker.run()
checker.print_report()

# 【硬中断】如果需要模拟数据
if result.requires_synthetic_data:
    from scripts.pipeline_checkpoint import InteractivePipelineCheckpoint
    cp = InteractivePipelineCheckpoint()
    authorized = cp.authorize_synthetic_or_stop(
        purpose="本研究所需的A股财务数据和海关进出口数据"
    )
    if not authorized:
        # 流程停止,用户必须:
        # - 补充真实数据,或
        # - 更换研究方向
        STOP_HERE

MCP 数据获取示例:

yaml
# A股行情数据
server: user-tushare
tool: get_daily_quote
params:
  ts_code: "000001.SZ"
  start_date: "20200101"
  end_date: "20241231"

# 财务数据
server: user-tushare
tool: get_financial_report
params:
  ts_code: "000001.SZ"
  report_type: "income"

# 宏观数据(无需 Key)
server: user-financial
tool: get_macro_china
params:
  indicator: "gdp"

# 美股数据(无需 Key)
server: user-yfinance
tool: get_yf_historical
params:
  ticker: "AAPL"
  start_date: "2020-01-01"
  end_date: "2024-12-31"

输出文件:

  • output/fin-experiments/DATA_MANIFEST.md — 数据清单与来源
  • output/fin-experiments/DATA_VALIDATION.md — 数据验证报告
  • data/finance/*.csv — 原始数据文件(真实数据)

checkpoint 交互:

════════════════════════════════════════════════════════════
          阶段6:数据获取完成
════════════════════════════════════════════════════════════

  数据状态:
    ✅ 已获取: [列表]
    ❌ 未获取: [列表]
    ⚠️  模拟: [列表]

  请选择:
    (1) 确认数据,继续实证分析
    (2) 补充数据后再继续
    (3) 查看详细数据状态报告
    (4) 暂停,评估数据质量后再决定

Show full SKILL.md (138 more words)Show less
阶段7:论文大纲

目标: 基于目标期刊生成完整的论文大纲及配套文件。

调用技能:

Skill: fin-paper-plan
"[选定想法的完整描述]"

输出文件:

  • output/fin-manuscript/PAPER_OUTLINE.md — 完整论文大纲
  • output/fin-manuscript/FIGURE_PLAN.md — 图表计划
  • output/fin-manuscript/TABLE_PLAN.md — 表格计划
  • output/fin-manuscript/ABSTRACT_DRAFT.md — 摘要草稿

checkpoint 交互:

════════════════════════════════════════════════════════════
          阶段7:论文大纲生成完成
════════════════════════════════════════════════════════════

  目标期刊: [期刊名]
  预估字数: [X]字
  结构: [N]章

  大纲预览:
    1. Introduction — [约X字]
    2. Literature Review — [约X字]
    3. Hypothesis Development — [约X字]
    4. Data & Methodology — [约X字]
    5. Empirical Results — [约X字]
    6. Robustness Checks — [约X字]
    7. Conclusion — [约X字]

  图表计划: [N]张图 + [M]张表

  请选择:
    (1) 确认大纲,开始正文写作
    (2) 修改某章节内容或长度
    (3) 调整图表计划
    (4) 先保存,稍后再写

阶段8:正文写作

目标: 根据 PAPER_OUTLINE.md 和 REFINED_DESIGN.md 生成完整的论文正文草稿。

调用技能:

Skill: fin-paper-draft
"[PAPER_OUTLINE.md]"

执行前准备:

bash
# 创建 LaTeX 目录结构(PROJECT_DIR 自动取当前目录)
PROJECT_DIR="$(pwd)"
DRAFT_DIR="$PROJECT_DIR/output/fin-manuscript/draft_v1"
mkdir -p "$DRAFT_DIR/figures" "$DRAFT_DIR/tables" "$DRAFT_DIR/scripts"

输出文件:

  • output/fin-manuscript/draft_v1/main.tex — 主文件
  • output/fin-manuscript/draft_v1/introduction.tex
  • output/fin-manuscript/draft_v1/literature.tex
  • output/fin-manuscript/draft_v1/methodology.tex
  • output/fin-manuscript/draft_v1/results.tex
  • output/fin-manuscript/draft_v1/conclusion.tex
  • output/fin-manuscript/draft_v1/references.bib

阶段9:图表生成

目标: 生成期刊级别的图表(≥300 DPI,PDF矢量格式)。

调用技能:

Skill: fin-paper-figure
"[FIGURE_PLAN.md]"

DID 研究必须生成的图表:

  1. 平行趋势图 — 政策前后实验组与对照组的趋势对比
  2. 安慰剂检验图 — 随机化处理时间的系数分布
  3. 动态效应图 — 事件研究框架下的各期系数

输出文件:

  • output/fin-manuscript/draft_v1/figures/*.pdf — 所有图表
  • output/fin-manuscript/draft_v1/scripts/generate_figures.py — 可复现脚本

阶段10:对抗性 Review

目标: 对论文正文草稿进行多轮严格评审。

调用技能:

Skill: fin-review-loop
"[draft_v1/main.tex]"

Review 维度:

维度检查项
理论贡献研究缺口是否真正填补?
识别策略DID/IV/RDD 是否正确使用?
数据质量样本选择是否存在偏误?
稳健性是否有足够的稳健性检验?
写作质量逻辑是否清晰?表述是否准确?

输出文件:

  • output/fin-review/REVIEW_REPORT.md — 完整 review 报告
  • output/fin-review/REVIEW_STATE.json — 每轮评分和状态
  • output/fin-review/round_*/ — 各轮详细 review

checkpoint 交互:

════════════════════════════════════════════════════════════
          阶段10:Review 完成
════════════════════════════════════════════════════════════

  当前轮次: X/4
  综合评分: X/10
  接受建议: [接受 / 大修 / 小修]

  主要问题:
    • [问题1]
    • [问题2]

  是否需要修改后重新提交?

阶段11:LaTeX 编译

目标: 编译生成可投稿的 PDF 文件。

编译脚本:

bash
PROJECT_DIR="$(pwd)"
DRAFT_DIR="$PROJECT_DIR/output/fin-manuscript/draft_v1"
cd "$DRAFT_DIR"

# 检测期刊类型
if grep -qi "经济研究\|金融研究\|管理世界\|中国工业经济" main.tex; then
  COMPILER=xelatex
else
  COMPILER=pdflatex
fi

# 完整编译流程
$COMPILER -interaction=nonstopmode main.tex
bibtex main
$COMPILER -interaction=nonstopmode main.tex
$COMPILER -interaction=nonstopmode main.tex

# 检查结果
if [ -f "main.pdf" ]; then
  echo "✅ 编译成功: main.pdf"
else
  echo "❌ 编译失败,查看 compile_log.txt"
fi

输出文件:

  • output/fin-manuscript/draft_v1/main.pdf
  • output/fin-manuscript/draft_v1/compile_log.txt

阶段12:投稿前检查

目标: 全面检查匿名性、格式、图表、引用、参考文献等所有投稿必需项。

调用技能:

Skill: fin-submit-check
"[draft_v1/]"

输出文件:

  • output/fin-review/SUBMIT_CHECK_REPORT.md — 检查报告
  • output/fin-review/SUBMIT_CHECK_ISSUES.md — 待修复问题清单

完整输出文件结构

output/
├── FIN_BRIEF.md                    ← 研究简报
├── fin-literature/
│   ├── LIT_REVIEW.md              ← 完整文献综述
│   └── LIT_SUMMARY.md            ← 精简版
├── fin-ideas/
│   ├── IDEA_REPORT.md             ← 完整想法报告
│   └── IDEA_CANDIDATES.md         ← TOP 3-5 候选
├── fin-novelty/
│   └── NOVELTY_REPORT.md          ← 新颖性验证
├── fin-refinement/
│   ├── REFINED_DESIGN.md          ← 研究设计
│   ├── EXPERIMENT_PLAN.md         ← 实验计划
│   ├── VARIABLE_DEFINITIONS.md    ← 变量定义
│   ├── ROBUSTNESS_PLAN.md         ← 稳健性方案
│   ├── ENDOGENEITY_PLAN.md        ← 内生性方案
│   └── EXECUTION_CHECKLIST.md     ← 执行清单
├── fin-experiments/
│   ├── DATA_MANIFEST.md           ← 数据清单
│   ├── DATA_VALIDATION.md         ← 数据验证
│   └── data/finance/*.csv         ← 原始数据
├── fin-review/
│   ├── REVIEW_REPORT.md           ← Review 报告
│   ├── REVIEW_STATE.json          ← 评分状态
│   ├── SUBMIT_CHECK_REPORT.md     ← 投稿检查
│   └── round_*/                   ← 各轮详情
└── fin-manuscript/
    ├── PAPER_OUTLINE.md            ← 论文大纲
    ├── FIGURE_PLAN.md              ← 图表计划
    ├── TABLE_PLAN.md               ← 表格计划
    ├── ABSTRACT_DRAFT.md          ← 摘要草稿
    └── draft_v1/
        ├── main.tex                ← 主文件
        ├── introduction.tex
        ├── literature.tex
        ├── methodology.tex
        ├── results.tex
        ├── conclusion.tex
        ├── references.bib
        ├── figures/*.pdf           ← 图表
        ├── tables/
        ├── scripts/generate_figures.py
        ├── main.pdf                ← 编译后 PDF
        └── compile_log.txt

禁止模式(Forbidden Patterns)

以下行为绝对禁止:

禁止行为说明
静默 fallback 到模拟数据必须显式告知用户并获取授权
跳过想法-数据交叉验证阶段 3.5 是 P1 强制检查点
跳过 checkpoint每个阶段完成后必须等待用户确认
在正文中写入模拟数据的回归系数实证实数必须来自真实数据
跳过新颖性验证必须检索目标期刊确认新颖性
不标注数据来源所有图表必须标注数据来源
自动选择研究方向用户必须明确选择

关键模块引用

AgentPipeline(主类)
python
from scripts.agent_pipeline import AgentPipeline, AgentPipelineConfig

# 基本用法
config = AgentPipelineConfig(
    topic="[研究方向]",
    venue="[目标期刊]",
    research_field="[研究领域]",
    use_hitl=True,  # outline/literature/draft gates; set False only for batch CI
    visualize=True,
)
pipeline = AgentPipeline(config=config)
result = pipeline.run(topic="[研究方向]")
IdeaDataValidator(想法-数据验证)
python
from scripts.idea_data_checker import IdeaDataValidator, Feasibility

validator = IdeaDataValidator(ideas=ideas)
report = validator.validate_all()

# 检查结果
for idea_result in report.idea_results:
    if idea_result.feasibility == Feasibility.AVAILABLE:
        # ✅ 数据可行
    elif idea_result.feasibility == Feasibility.PARTIALLY_AVAILABLE:
        # ⚠️ 部分可行,需补充
    elif idea_result.feasibility == Feasibility.DATA_GAP:
        # ❌ 数据缺口,不推荐
DataSourceChecker(数据源预检查)
python
from scripts.data_source_checker import DataSourceChecker, DataRequirement

requirements = [
    DataRequirement(
        name="financial_data",
        user_facing_name="A股财务数据",
        sources=["tushare", "akshare"],
        required=True,
    ),
]
checker = DataSourceChecker(requirements)
result = checker.run()

if result.requires_synthetic_data:
    # 硬中断,必须用户授权
    pass
InteractivePipelineCheckpoint(强制交互)
python
from scripts.pipeline_checkpoint import InteractivePipelineCheckpoint, Stage, DecisionOption

cp = InteractivePipelineCheckpoint()
cp.wait_at_checkpoint(
    stage=Stage.DATA_ACQUISITION,
    summary="数据获取完成",
    next_options=[
        DecisionOption("proceed", "运行实证回归", "使用当前数据直接跑回归"),
        DecisionOption("supplement", "补充数据后继续", "获取更多数据后再跑"),
    ],
)

快速命令参考

bash
# 启动完整流水线
python scripts/agent_pipeline.py --topic "碳排放权交易对企业绿色创新的影响" --venue "经济研究"

# 快速想法验证
python scripts/idea_data_checker.py --ideas "关税+DID" --validate

# 数据源预检查
python scripts/data_source_checker.py --requirements tariff_research

# 编译论文
python scripts/research_framework/pipeline.py --topic "..." --compile

# 检查系统状态
python scripts/health_check.py

© csmar432, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/fin-full-pipeline of csmar432/finai-research.

Open the folder on GitHubat commit 47eebb7

Compare with similar skills

Fin Full Pipeline next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Fin Full Pipeline compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Fin Full Pipeline this skillcsmar432/finai-research109—~5.1kAutomated safety check: PassMIT
Tablebrycewang-stanford/Auto-Empirical-Research-Skills4.6k—~3.3kAutomated safety check: PassCustom licence
MineruNebutra/MinerU-Skill123—~1.4kAutomated safety check: PassMIT
Aer Statspaibrycewang-stanford/Auto-Empirical-Research-Skills4.6k—~3kAutomated safety check: PassCustom licence
Arxiv MCP Serverblazickjp/arxiv-mcp-server3.2k—~353Automated safety check: PassApache-2.0
Literature Surveyai4s-research/ai4s-skills2372 repos~2kAutomated safety check: PassMIT

Similar skills

  • Table

    brycewang-stanford/Auto-Empirical-Research-Skills

    Econometrics skill for creating publication-quality LaTeX regression and summary tables.

    4.6k GitHub stars~3.3k tokensUpdated 5 days ago
    Documents & OfficeAuto-check passed
  • Mineru

    Nebutra/MinerU-Skill

    An AI-Native skill for parsing PDF / Office / image files into clean Markdown with MinerU — a fast, zero-config document parser for AI agents.

    123 GitHub stars~1.4k tokensUpdated 17 days ago
    Documents & OfficeAuto-check passed
  • Aer Statspai

    brycewang-stanford/Auto-Empirical-Research-Skills

    A skill your agent uses when aer-identification has fixed the design, after methodology choice and before aer-robustness or aer-tables-figures, to run an AER-track analysis with StatsPAI — the…

    4.6k GitHub stars~3k tokensUpdated 5 days ago
    Research & ScienceAuto-check passed
  • Arxiv MCP Server

    blazickjp/arxiv-mcp-server

    A skill your agent uses when finding, comparing, reading, or monitoring arXiv papers, including requests for abstracts, citation graphs, original LaTeX, section-level technical details, or…

    3.2k GitHub stars~353 tokensUpdated 2 days ago
    Research & ScienceAuto-check passed
  • Literature Survey

    ai4s-research/ai4s-skills

    A skill your agent uses when the user wants a comprehensive literature survey on a specific research topic.

    237 GitHub starsUsed in 2 repos~2k tokens
    Documents & OfficeAuto-check passed
  • Mathmodel Skill

    handsomeZR-netizen/mathmodel-skill

    CUMCM 国赛、MCM/ICM 美赛与电工杯数学建模竞赛的端到端协作工作流。Use when a user explicitly works on one of these modeling contests or asks to run/review a modeling-competition paper from problem selection through modeling…

    292 GitHub stars~2.5k tokensUpdated 15 days ago
    Documents & OfficeAuto-check passed

More from csmar432/finai-research

All 15 skills in this repo
  • Fin Arch Diagram

    csmar432/finai-research

    生成研究/项目架构图、流程图、层次图(swimlane / processflow / hierarchytree)。适合 PPT 汇报、技术文档、综述插图。输出风格接近 draw.io,可选 graphviz(高质量)/ matplotlib(零依赖)双后端。

    109 GitHub stars~1.5k tokensUpdated 5 days ago
    Auto-check passed
  • Fin Brief Generator

    csmar432/finai-research

    根据用户输入或已有研究输出(文献综述/想法报告/新颖性报告),自动生成或更新FINBRIEF.md,减少用户填写负担. An agent skill from csmar432/finai-research.

    109 GitHub stars~1.7k tokensUpdated 5 days ago
    Auto-check passed
  • Fin Data Acquisition

    csmar432/finai-research

    根据REFINEDDESIGN.md中的变量定义,自动获取所需数据并生成可执行的回归分析脚本(Python/Stata)。

    109 GitHub stars~2k tokensUpdated 5 days ago
    Auto-check passed
  • Fin Experiment Design

    csmar432/finai-research

    经济金融实证方法设计。根据研究想法和REFINEDDESIGN.md,生成完整的实证研究设计方案,覆盖识别策略选择、样本构建、变量定义、稳健性检验清单和内生性处理方案。

    109 GitHub stars~4.2k tokensUpdated 5 days ago
    Auto-check passed
  • Fin Generate Idea

    csmar432/finai-research

    针对经济金融研究方向的创意生成与评估。生成8-12个可发表的研究idea,过滤后在数据可行的情况下进行小规模实证验证,输出排序后的研究想法报告。

    109 GitHub stars~2.5k tokensUpdated 5 days ago
    Auto-check passed
  • Fin Idea Discovery

    csmar432/finai-research

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

    109 GitHub stars~2.7k tokensUpdated 5 days ago
    Auto-check passed

Questions about Fin Full Pipeline

What does Fin Full Pipeline do?

经济金融研究端到端完整流程。从研究想法到可投稿论文,覆盖文献综述、想法生成、新颖性验证、实证方法设计、论文大纲、正文写作、图表生成、LaTeX编译和投稿前检查。. Fin Full Pipeline is an agent skill from csmar432/finai-research.

When should I use Fin Full Pipeline?

Fin Full Pipeline fits situations like: tasks that involve LaTeX; tasks that involve Econometrics and empirical research.

How do I install Fin Full Pipeline in Claude Code?

Run `npx skills add csmar432/finai-research --skill fin-full-pipeline -a claude-code`. Or copy the skill folder (.agents/skills/fin-full-pipeline in csmar432/finai-research) into .claude/skills/fin-full-pipeline in your project. Claude Code loads it when a task matches its description.

How do I install Fin Full Pipeline in Codex?

Run `npx skills add csmar432/finai-research --skill fin-full-pipeline -a codex`. Or copy the skill folder (.agents/skills/fin-full-pipeline in csmar432/finai-research) into .agents/skills/fin-full-pipeline in your project. Codex loads it when a task matches its description.

Can I use Fin Full Pipeline in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add csmar432/finai-research --skill fin-full-pipeline -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/fin-full-pipeline, .gemini/skills/fin-full-pipeline, .github/skills/fin-full-pipeline and .opencode/skills/fin-full-pipeline in your project.

What does Fin Full Pipeline need to run?

Going by SKILL.md and its folder, Fin Full Pipeline needs the command-line tools its instructions call (python and python3). Our summary lists: Python 3; Docker.

Does Fin Full Pipeline access the network?

SKILL.md names 1 domain. In commands or code: gtadata.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Fin Full Pipeline safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Fin Full Pipeline use?

Fin Full Pipeline is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Fin Full Pipeline use?

About 5.1k tokens (SKILL.md is roughly 21k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Fin Full Pipeline?

Skills that share tags, products or a category with Fin Full Pipeline: Table (brycewang-stanford/Auto-Empirical-Research-Skills, 4.6k stars), Mineru (Nebutra/MinerU-Skill, 123 stars), Aer Statspai (brycewang-stanford/Auto-Empirical-Research-Skills, 4.6k stars) and Arxiv MCP Server (blazickjp/arxiv-mcp-server, 3.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Fin Full Pipeline?

csmar432 (a GitHub user) maintains it in csmar432/finai-research, which has 109 GitHub stars. The repository holds 15 skills in this directory. The repository was last updated on October 6, 2026.

Source: csmar432/finai-research on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.