Skill: yili1992/quant-research-lab (version 1.0.1)

--- name: quant-research-lab description: "量化策略研发实验室 — 让 Claude 按顶级机构角色分工（高盛策略架构师、文艺复兴回测引擎、Two Sigma 风控、Citadel Alpha 研究、Jane Street 做市、AQR 因子模型...共 15 个角色）系统性地设计、验证、风控、执行量化交易策略。当用户要求设计量化策略、做回测、构建因子、风控建模、策略优化、执行算法设计时触发。用户可能提到：量化策略、回测、因子、alpha 信号、风控、仓位管理、做市、统计套利、配对交易、宏观交易、TWAP、VWAP、投资组合优化、交易系统架构。" --- # quant-research-lab — 量化策略研发实验室 ## 角色注册表 | ID | 角色 | 机构 | 文件 | depends_on | complexity | Phase | |:---|:---|:---|:---|:---|:---|:---| | 01 | 策略架构师 | Goldman Sachs | roles/01-gs-strategy-architect.md | - | high | 1 | | 02 | 回测引擎 | Renaissance Technologies | roles/02-rentec-backtest-engine.md | 01 | normal | 1 | | 03 | 风控经理 | Two Sigma | roles/03-twosigma-risk-manager.md | 01 | normal | 1 | | 04 | Alpha 研究员 | Citadel | roles/04-citadel-alpha-researcher.md | - | high | 1 | | 05 | 做市引擎 | Jane Street | roles/05-js-market-maker.md | 01 | normal | 3 | | 06 | 因子模型 | AQR | roles/06-aqr-factor-builder.md | 02 | normal | 2 | | 07 | 统计套利 | D.E. Shaw | roles/07-deshaw-stat-arb.md | 01 | normal | 2 | | 08 | 宏观策略 | Bridgewater | roles/08-bridgewater-macro.md | 01 | normal | 3 | | 09 | 数据管道 | Bloomberg | roles/09-bbg-data-pipeline.md | - | normal | 2 | | 10 | 执行算法 | Virtu | roles/10-virtu-execution.md | 01 | normal | 1 | | 11 | ML 研究员 | Point72 | roles/11-point72-ml-researcher.md | 01 | high | 3 | | 12 | 组合优化 | Man Group | roles/12-man-portfolio-optimizer.md | 01,02,03,06 | normal | 2 | | 13 | 交易系统 | Millennium | roles/13-millennium-trading-system.md | 10,12 | normal | 2 | | 14 | 因子回测 | Dimensional | roles/14-dimensional-factor-backtest.md | 01 | normal | 3 | | 15 | 合规框架 | Goldman Sachs | roles/15-gs-compliance.md | 13 | normal | 3 | ## 使用方式 ### 触发 Skill **自然语言**（推荐）：直接描述量化需求，Skill 自动激活。例如： - "帮我设计一个费率套利策略" - "做一下这个策略的回测" - "优化入场信号" - "启动量化流水线" **显式加载**：`/quant-research-lab` ### 操作指令（Skill 加载后使用自然语言） | 你说 | 行为 | |:---|:---| | "启动流水线" / "pipeline" / "跑全流程" | 展示轨道选择菜单，用户选择后启动对应 Pipeline | | "因子流水线" / "因子挖掘" / "执行流水线" / "宏观流水线" / "套利流水线" / "ML流水线" / "做市流水线" | 直接启动指定轨道 Pipeline | | "全量流水线" / "完整流水线" | 启动全部 15 角色完整流程 | | "从角色 03 恢复" / "继续流水线" | 从角色 NN 断点恢复（需 state 文件存在） | | "从角色 02 重新执行" / "重跑风控" | 丢弃 NN 及之后输出，从 NN 重新开始 | | "用高盛角色" / "做回测" / "风控分析" / "alpha 研究" / "执行算法" | 单独触发某个角色（Toolbox 模式） | | "结合上次结果做回测" | 单独触发 + 注入最近完成角色的上下文 | | "流水线进度" / "status" | 查看进度 | | "重置流水线" / "reset" | 清空状态重新开始 | ## 编排逻辑 ### Step 0: 收集上下文 当 Skill 被激活时（通过自然语言触发或 `/quant-research-lab` 显式加载）： 1. **读取角色注册表**获取可用角色列表（从本文档 `## 角色注册表` 表格中解析 ID、角色名、文件名、depends_on、complexity、Phase） 2. **检查 `state/research-context.md` 是否存在**： - **不存在** → 新建，写入初始模板（含 YAML frontmatter 和空角色输出区） - **存在且 `status: in-progress`** → 提示用户可从断点恢复：`检测到未完成的 Pipeline（{pipeline_id}），已完成角色：{completed_roles}。说"从角色 {next_recovery} 恢复"即可继续。` 3. **如果是新 Pipeline，向用户确认 3 个必填项**： - 交易市场/标的（`{user_market}`） - 可用资金规模（`{user_capital}`） - 当前最想解决的问题（`{user_focus}`） 将答案填入 state 文件的 `## 项目上下文` 区 ### Toolbox 模式：触发单个角色 触发方式：用户说"用高盛角色"、"做回测"、"风控分析"、"alpha 研究"、"执行算法"等，或按角色名/关键词匹配 1. **匹配角色**：在注册表中按角色名称（如"回测"）或文件名（如"backtest"）模糊匹配，找到对应的 ID、文件路径和 depends_on 2. **加载模板**：Read `roles/{NN}-{role}.md`，获取角色的完整 prompt 模板 3. **收集上下文**： - 如 state 文件无项目上下文 → 向用户询问 `{user_market}`, `{user_capital}`, `{user_focus}` - 如用户说"结合上次结果"或提到需要前面角色的上下文 → 从 state 文件提取最近完成角色的关键参数层和推理摘要层作为 `{upstream_params}` 和 `{upstream_summary}` - 如 `depends_on` 字段非空 → 从 state 文件中提取依赖角色的输出，注入为 `{upstream_params}` 和 `{upstream_summary}` - 如项目存在 `CLAUDE.md` → 提取架构约定注入 `{project_architecture}` 4. **替换占位符**：将收集到的值替换模板中的 `{user_market}`, `{user_capital}`, `{user_focus}`, `{upstream_params}`, `{upstream_summary}`, `{project_architecture}` 5. **Dispatch subagent**：使用 Agent tool，`subagent_type: "general-purpose"`，`model: "sonnet"`（注册表中 `complexity: high` 的角色使用 `model: "opus"`），注入替换后的完整 prompt 6. **质量门检查**：subagent 完成后，解析输出中的 `[QAGATE]...[/QAGATE]` 块（见下方"质量门检查"）。有异常 → 追加标记（`[输出不完整]`, `[数值异常]` 等），必要时提示用户决定（重做 / 接受 / 手动修复） 7. **写入 state 文件**：按格式追加角色输出到 `state/research-context.md`： ``` <!-- ROLE_OUTPUT_START:{NN} --> ### {NN} {角色名} ✅ [subagent 输出内容] <!-- ROLE_OUTPUT_END:{NN} --> ``` 更新 frontmatter：`current_role_id`, `completed_roles`, `next_recovery` 8. **展示摘要**：向用户展示 1-2 行摘要 + 质量标记 9. **提示下一步**：扫描注册表中 `depends_on` 包含当前角色 ID 且 Phase 已实现的角色，提示：`下一步建议：用"{next_role}"角色，或说"从角色 {next_NN} 启动流水线"` ### Pipeline 模式：启动场景流水线 Pipeline 是 Toolbox 的序列化封装，**按预设轨道（Track）**串行调用角色，而非跑全部 15 个。每个角色的执行复用 Toolbox 步骤 2-7（加载模板 → 收集上下文 → 替换占位符 → dispatch subagent → 质量门 → 写入 state）。 **触发方式**：用户说"启动流水线"、"pipeline"、"跑全流程"，或指定轨道名如"因子流水线"、"执行流水线"。也支持"从角色 NN 恢复"、"从角色 NN 重新执行"。 #### Pipeline 轨道定义 15 个角色构成了一个有向无环图（DAG），而非一条线。不同策略场景走不同的角色序列： | 轨道名称 | 触发关键词 | 角色序列 | 预估耗时 | 适用场景 | |:---|:---|:---|:---|:---| | **核心流水线**（默认） | "启动流水线" / "pipeline" | 01→02→03→04→10 | ~15min | 标准策略：设计→回测→风控→Alpha→执行 | | 因子流水线 | "因子流水线" / "因子挖掘" | 01→02→06→14→12 | ~20min | 因子研究：构建→回测→因子验证→组合 | | 执行流水线 | "执行流水线" / "交易系统" | 01→10→13→15 | ~18min | 系统落地：执行算法→交易系统→合规 | | 宏观流水线 | "宏观流水线" / "宏观策略" | 01→08→03→12 | ~18min | 宏观策略+风控+组合配置 | | 统计套利流水线 | "套利流水线" | 01→07→02→10 | ~18min | 配对交易/协整策略 | | ML 流水线 | "ML流水线" / "机器学习" | 01→11→02→03 | ~18min | ML 驱动策略研发 | | 做市流水线 | "做市流水线" | 01→05→10→13 | ~18min | 做市系统设计 | | 全量流水线 | "全量" / "完整流水线" | 01→02→03→04→06→07→08→09→10→11→12→13→14→15 | ~40min | 端到端完整流程（慎用，建议分轨道跑） | > **轨道设计原则**：每个轨道以 01（策略架构师）为根节点，按依赖拓扑序串联。独立角色（09 数据管道）可按需单独 Toolbox 触发。用户也可以自定义轨道："走 01→04→11 的流水线"——编排层按指定 ID 列表执行即可。 #### 串行调度流程 1. **选择轨道**： - 用户说"启动流水线" / "pipeline" 未指定轨道 → 展示轨道选择菜单：`请选择流水线轨道：1)核心流水线(默认) 2)因子 3)执行 4)宏观 5)套利 6)ML 7)做市 8)全量。直接说编号或轨道名即可。` - 用户指定了轨道关键词（如"因子流水线"）→ 匹配对应轨道 - 用户说"全量" → 走全量流水线轨道 - 用户自定义序列（如"走 01→04→11"）→ 解析 ID 列表作为自定义轨道 2. **确定起始角色**： - 用户说"从角色 NN 恢复" → 从所选轨道中 state 文件的 `current_role_id` 开始（断点恢复逻辑见下方） - 用户说"从角色 NN 重新执行" → 先丢弃 NN 及之后角色的输出（见下方"重新执行逻辑"），再从 NN 开始 - 默认 → 从轨道的第一个角色开始 3. **生成执行序列**：从起始角色到轨道末尾，序列生成后向用户展示：`轨道: {track_name}。执行序列: [01, 02, 03, 04, 10]（共 5 个角色）。预计 {estimate} 分钟。确认开始？` 4. **逐角色串行执行**：对序列中每个角色： a. 检查 state 文件是否已有该角色输出（搜索 `ROLE_OUTPUT_START:{$id}` 标记）→ 有则跳过 b. 执行 Toolbox 步骤 2-7（加载模板 → 收集上下文 → 替换占位符 → dispatch subagent → 质量门检查 → 写入 state） c. 上下文自动注入：当前角色完成后，提取 QAGATE 中的 `downstream_fields` 和 `core_conclusion` 注入下一个角色 d. 展示摘要 + 进度：`[{i}/{total}] {id} {角色名} 完成 [QAGATE: PASS|WARN ...]` e. **用户中断处理**：用户可随时说"暂停"。完成当前角色后写入 state，更新 frontmatter（含 `pipeline_track`），展示恢复命令 5. **全部完成后**：设置 frontmatter `status: complete`。提示：`轨道 {track_name} 完成（{total}/{total}）。如需落地为生产代码，说"实现这个"。也可继续其他轨道，如"因子流水线"。` #### 断点恢复（"从角色 NN 恢复"） 1. 读取 state 文件的 YAML frontmatter，提取 `pipeline_track` 轨道名 2. 验证 NN 属于当前轨道且 `ROLE_OUTPUT_START:NN` 标记存在 3. 如不包含：提示 `角色 {NN} 不在当前轨道 {pipeline_track} 中或无输出记录。` 4. 确定下一个待执行角色：当前轨道中 ID 序列里排在 NN 之后的第一个角色 5. 更新 frontmatter，从该角色继续执行 #### 重新执行（"从角色 NN 重新执行"） 1. 计算丢弃集合：`D = {NN} ∪ {当前轨道中排在 NN 之后的所有角色 ID}` 2. 对 D 中每个角色 ID，在 state 文件中删除 `<!-- ROLE_OUTPUT_START:{$id} -->` 至 `<!-- ROLE_OUTPUT_END:{$id} -->` 块 3. 从 frontmatter 的 `completed_roles` 中移除 D 中的 ID 4. 展示丢弃摘要并确认，从 NN 重新开始 #### Pipeline 中的质量门集成 Pipeline 模式下每个角色完成后，自动复用 `### 质量门检查` 中的检查流程： 1. 搜索 subagent 输出中的 `[QAGATE]...[/QAGATE]` 块 2. 执行 3 项检查（必填字段 / 数值合理性 / 双重签名） 3. 检查结果追加标记到角色输出块的末尾：`[QAGATE 结果: PASS|WARN ...]` 4. 展示给用户时包含标记：`[{i}/{total}] {id} {角色名} 完成 [QAGATE: PASS]` 5. **异常处理**：如标记含 WARN 或 FAIL： - 默认自动继续到下一个角色，但在输出中标注异常 - 如用户说"严格模式"或触发时加 `--strict` → 遇到 WARN/FAIL 时暂停，提示用户选择：`质量门警告 [{角色名}]: {标记列表}。选择: (C)ontinue 忽略继续 / (R)etry 重新执行当前角色 / (A)bort 中断 Pipeline` - 用户未回应时默认选择 (C)ontinue ### 质量门检查 每个角色 subagent 完成后，编排层从 `[QAGATE]...[/QAGATE]` 块提取数据进行以下检查： | 检查项 | 适用 | 检查方式 | 不通过时 | |:---|:---|:---|:---| | 必填字段 | 全部 | `[QAGATE]` 块存在 + 自由文本含核心结论/关键参数/传给下游的字段 | 标记 `[输出不完整]` | | 数值合理性 | 数值角色 | 默认模式：Sharpe < 50, MaxDD > -99% | 标记 `[数值极端异常]` | | 双重签名 | 数值角色 | method_signature 和 data_signature 均非空 | 标记 `[缺少签名]` | **检查流程**： 1. 在 subagent 输出中搜索文本 `[QAGATE]` 和 `[/QAGATE]`（字面字符串匹配，非 markdown 解析） 2. 缺失 `[QAGATE]` 块 → 标记 `[缺少QAGATE]`，跳过后续检查 3. 提取 QAGATE 块内字段（按 `key: value` 或 YAML 格式解析）： - `core_conclusion` / `核心结论` — 自由文本字段，非空即通过 - `key_params` / `关键参数` — 含关键参数列表即通过 - `downstream_fields` / `传给下游` — 含下游字段即通过 - `method_signature` — 方法签名，数值角色必须非空 - `data_signature` — 数据签名，数值角色必须非空 4. 数值合理性仅在角色标签含"回测/风控/因子/优化"时检查 5. 检查结果追加到 subagent 输出末尾，展示给用户：`[QAGATE 结果: PASS | WARN 输出不完整]` ### 状态管理 **`state/research-context.md`** 是 Pipeline 的单一真相源。格式： ```yaml --- pipeline_id: {project}-{date} pipeline_track: "{track_name}" status: in-progress | complete current_role_id: "{NN}" completed_roles: ["01", "02"] next_recovery: "{next_role_id in track}" created_at: {ISO 8601} project: {basename} --- ``` **Toolbox 模式下的行为**： - 仅追加已完成角色的输出块（`ROLE_OUTPUT_START/END` 分隔），不修改 `status` - 更新 `current_role_id` 为最近完成的角色 ID - 更新 `completed_roles` 追加当前角色 ID - 更新 `next_recovery` 指向下一个 `depends_on` 包含当前角色 ID 的角色 - 当所有 Phase 1-3 注册表角色完成时，设置 `status: complete` **初始模板**（新 Pipeline 时创建）： ``` --- pipeline_id: {project}-{date} pipeline_track: "{track_name}" status: in-progress current_role_id: "" completed_roles: [] next_recovery: "" created_at: {now} project: {project_basename} --- ## 项目上下文 - **交易市场/标的**：{user_market} - **可用资金规模**：{user_capital} - **当前核心问题**：{user_focus} ## 角色输出 <!-- 每个角色完成后由编排层追加 --> ``` **Pipeline 模式下的行为**：见上方 `### Pipeline 模式`。 ### 查看进度（用户说"进度" / "status"） 1. 检查 `state/research-context.md` 是否存在 2. 如 state 文件不存在或 `status: ready` → 提示：`尚无活跃 Pipeline。说"启动流水线"开始新 Pipeline。` 3. 如 state 文件存在： - 读取 YAML frontmatter，提取 `pipeline_id`, `pipeline_track`, `status`, `current_role_id`, `completed_roles`, `next_recovery`, `project` - 展示进度摘要： ``` ## Pipeline: {pipeline_id} - 轨道: {pipeline_track} - 状态: {status} - 项目: {project} - 已完成角色 ({len(completed_roles)}): {completed_roles} - 当前角色: {current_role_id} ``` - 如 `status: in-progress`，追加恢复提示：`恢复命令：说"从角色 {next_recovery} 恢复"` - 如 `status: complete`，追加：`轨道 {pipeline_track} 已完成。可继续其他轨道，如"因子流水线"。` ### 重置（用户说"重置" / "reset"） 1. 检查 `state/research-context.md` 是否存在 → 不存在则提示：`尚无活跃 Pipeline，无需重置。` 2. 如 state 文件存在，向用户确认：`确认重置 Pipeline "{pipeline_id}"？这将清除所有角色输出。输入 yes 确认。` 3. 用户确认 `yes` 后： - **保留上下文模式**（默认）：将 state 文件重置为初始模板，保留 `## 项目上下文` 中的用户提供的信息（`{user_market}`, `{user_capital}`, `{user_focus}`），清空 `## 角色输出` 区所有 `ROLE_OUTPUT_START/END` 块，重置 frontmatter 为初始状态（`status: ready`, `current_role_id: ""`, `completed_roles: []`, `next_recovery: ""`） - **完全清除模式**（用户说"硬重置"）：直接删除 state 文件，下次触发时自动创建全新模板 4. 重置完成后提示：`Pipeline 已重置。说"启动流水线"重新开始。` ## 实现状态 - Phase 1: ✅ 已实现（01, 02, 03, 04, 10） - Phase 2: ✅ 已实现（06, 07, 09, 12, 13） - Phase 3: ✅ 已实现（05, 08, 11, 14, 15）

path: README_CN.md
content: <p align="center">
  <a href="README.md">English</a> |
  <a href="README_CN.md">中文</a> |
  <a href="README_JA.md">日本語</a> |
  <a href="README_FR.md">Français</a> |
  <a href="README_RU.md">Русский</a>
</p>

<p align="center">
  <h1 align="center">量化策略研发实验室</h1>
  <p align="center">
    <strong>多智能体量化策略研发框架</strong>
  </p>
  <p align="center">
    15 个专业化 LLM 智能体，对标顶级量化机构
  </p>
</p>

<p align="center">
  <a href="https://github.com/anthropics/claude-code" target="_blank"><img alt="Claude Code" src="https://img.shields.io/badge/Claude_Code-Compatible-D97706?logo=anthropic&logoColor=white"/></a>
  <a href="https://hermes.nousresearch.com" target="_blank"><img alt="Hermes Agent" src="https://img.shields.io/badge/Hermes_Agent-Skill-7C3AED?logo=data:image/svg+xml;base64,..." /></a>
  <img alt="Roles" src="https://img.shields.io/badge/Roles-15-blue" />
  <img alt="Pipeline Tracks" src="https://img.shields.io/badge/Pipeline_Tracks-8-green" />
  <a href="LICENSE"><img alt="License: MIT" src="https://img.shields.io/badge/License-MIT-yellow.svg" /></a>
</p>

---

> **量化策略研发实验室** 是一项 AI 智能体技能，将机构级量化策略研究工作流带给由 LLM 驱动的编程智能体。它部署了 15 个专业化智能体——每个都对标顶级量化机构（Goldman Sachs、Renaissance Technologies、Two Sigma、Citadel、Jane Street 等）的专业能力——协同完成量化交易策略的设计、回测、风控管理与验证。

> ⚠️ **免责声明**：本框架仅用于**研究和教育目的**，不构成金融、投资或交易建议。交易表现取决于多种因素，包括模型选择、数据质量和市场条件。请务必自行进行尽职调查。

---

## 目录

- [框架概述](#框架概述)
- [15 个角色](#15-个角色)
- [流水线架构](#流水线架构)
- [安装](#安装)
- [使用方法](#使用方法)
- [质量门控](#质量门控)
- [状态管理](#状态管理)
- [项目结构](#项目结构)
- [贡献指南](#贡献指南)
- [许可证](#许可证)

---

## 框架概述

量化策略研发实验室镜像了现实世界量化交易公司的运作方式：复杂的策略研究被分解为专业化角色，每个角色从不同机构视角带来领域专长。本框架通过两种模式编排这些角色：

- **工具箱模式** — 按需调用任意单个角色进行针对性分析
- **流水线模式** — 运行预配置的轨迹（角色序列）进行端到端策略研究

```
┌─────────────────────────────────────────────────────────────┐
│                    Quant Research Lab                        │
│                                                             │
│  ┌──────────┐  ┌──────────┐  ┌──────────┐  ┌──────────┐   │
│  │ Strategy  │→ │ Backtest │→ │   Risk   │→ │  Alpha   │   │
│  │ Architect │  │  Engine  │  │ Manager  │  │Researcher│   │
│  │ (GS)      │  │ (RenTech)│  │ (Two σ)  │  │ (Citadel)│   │
│  └──────────┘  └──────────┘  └──────────┘  └──────────┘   │
│       │              │             │              │         │
│       ▼              ▼             ▼              ▼         │
│  ┌──────────┐  ┌──────────┐  ┌──────────┐  ┌──────────┐   │
│  │Execution │  │  Factor  │  │ Stat Arb │  │  Macro   │   │
│  │ Algo     │  │  Model   │  │(D.E.Shaw)│  │(Bridge-  │   │
│  │ (Virtu)  │  │  (AQR)   │  │          │  │ water)   │   │
│  └──────────┘  └──────────┘  └──────────┘  └──────────┘   │
│       │              │             │              │         │
│       ▼              ▼             ▼              ▼         │
│  ┌──────────┐  ┌──────────┐  ┌──────────┐  ┌──────────┐   │
│  │Data Pipe │  │    ML    │  │Portfolio │  │ Trading  │   │
│  │ (Bloomberg)│ │Researcher│  │Optimizer │  │ System   │   │
│  │          │  │(Point72) │  │(Man Grp) │  │(Millenn.)│   │
│  └──────────┘  └──────────┘  └──────────┘  └──────────┘   │
│                                                             │
│  ┌──────────────┐  ┌──────────────┐                        │
│  │Factor Backtest│  │  Compliance  │                        │
│  │(Dimensional)  │  │    (GS)      │                        │
│  └──────────────┘  └──────────────┘                        │
│                                                             │
│  ┌─────────────────────────────────────────────────────┐   │
│  │              Quality Gate System                     │   │
│  │  Required Fields │ Numerical Sanity │ Dual Signatures│   │
│  └─────────────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────────────┘
```

---

## 15 个角色

每个智能体都由详细的提示词模板支撑，定义了智能体的人设、专业领域和结构化的多维度任务规格。没有哪个角色是泛用的"助手"——每个智能体都以其所属机构的风格进行思考和产出。

| ID | 角色 | 机构 | 依赖 | 复杂度 | 阶段 |
|:---|:-----|:-----|:-----|:-------|:-----|
| 01 | **策略架构师** | Goldman Sachs | — | 高 | 1 |
| 02 | **回测引擎** | Renaissance Technologies | 01 | 普通 | 1 |
| 03 | **风控经理** | Two Sigma | 01 | 普通 | 1 |
| 04 | **Alpha 研究员** | Citadel | — | 高 | 1 |
| 05 | **做市商** | Jane Street | 01 | 普通 | 3 |
| 06 | **因子模型构建师** | AQR | 02 | 普通 | 2 |
| 07 | **统计套利** | D.E. Shaw | 01 | 普通 | 2 |
| 08 | **宏观策略** | Bridgewater Associates | 01 | 普通 | 3 |
| 09 | **数据管道** | Bloomberg | — | 普通 | 2 |
| 10 | **执行算法** | Virtu Financial | 01 | 普通 | 1 |
| 11 | **ML 研究员** | Point72 | 01 | 高 | 3 |
| 12 | **组合优化器** | Man Group | 01,02,03,06 | 普通 | 2 |
| 13 | **交易系统** | Millennium Management | 10,12 | 普通 | 2 |
| 14 | **因子回测器** | Dimensional Fund Advisors | 01 | 普通 | 3 |
| 15 | **合规框架** | Goldman Sachs | 13 | 普通 | 3 |

### 角色亮点

**策略架构师 (01)** — 涵盖策略设计的 9 个维度：论题、标的筛选、信号生成、入场/出场规则、仓位管理、风险参数和实施规格。每个决策都有数学公式和伪代码支撑。

**回测引擎 (02)** — 10 维验证框架，包括数据质量、引擎架构、交易成本建模（Almgren-Chriss）、统计严谨性（缩尾夏普比率、错误发现率）和滚动前瞻测试。

**风控经理 (03)** — 多层风险评估：市场风险（VaR/CVaR）、流动性风险、对手方风险、尾部风险（极值理论），并提供源自历史危机的压力测试情景。

**Alpha 研究员 (04)** — Alpha 信号发现流水线，配备 IC/ICIR 分析、信号衰减建模和多因子正交化。

**因子模型构建师 (06)** — 完整的 Barra 风格因子模型构建：Alpha 因子、风险因子、因子协方差估计和基于因子的归因分析。

**ML 研究员 (11)** — 端到端机器学习流水线：特征工程、模型选择（XGBoost/LSTM/Transformer）、超参数优化和生产部署规格。

---

## 流水线架构

角色组成一个**有向无环图（DAG）**，而非线性链。不同的研究场景使用不同的轨迹：

| 轨迹 | 触发短语 | 角色序列 | 预计时间 | 使用场景 |
|:-----|:---------|:---------|:---------|:---------|
| **核心**（默认） | "启动流水线" / "pipeline" | 01→02→03→04→10 | ~15分钟 | 标准：设计→回测→风控→Alpha→执行 |
| **因子** | "因子流水线" | 01→02→06→14→12 | ~20分钟 | 因子研究：构建→回测→验证→优化 |
| **执行** | "执行流水线" | 01→10→13→15 | ~18分钟 | 系统部署：算法→交易系统→合规 |
| **宏观** | "宏观流水线" | 01→08→03→12 | ~18分钟 | 宏观策略 + 风控 + 组合配置 |
| **统计套利** | "套利流水线" | 01→07→02→10 | ~18分钟 | 配对交易 / 协整策略 |
| **ML** | "ML流水线" | 01→11→02→03 | ~18分钟 | ML 驱动的策略开发 |
| **做市** | "做市流水线" | 01→05→10→13 | ~18分钟 | 做市系统设计 |
| **全量** | "全量流水线" | 01→...→15 | ~40分钟 | 完整端到端（谨慎使用） |

### 流水线功能

- **断点续传** — 在任意角色处暂停，稍后从中断处继续
- **重新执行** — 从任意角色重新运行，丢弃下游输出
- **自定义轨迹** — 定义自己的角色序列（例如"运行 01→04→11"）
- **严格模式** — 遇到质量门控警告时暂停而非自动继续
- **进度追踪** — 实时进度显示，每个角色带有质量门控状态

---

## 安装

### 方式一：一行命令安装（推荐）

```bash
npx skills add https://github.com/yili1992/quant-research-lab --skill quant-research-lab
```

### 方式二：把下面这段话直接发给 Claude Code

> 帮我安装 `quant-research-lab` 这个技能。请按下面步骤做：
>
> 1. 确保当前项目的 `.claude/skills/` 目录存在（不存在就创建）
> 2. 执行 `git clone https://github.com/yili1992/quant-research-lab.git .claude/skills/quant-research-lab`
> 3. 验证：`ls .claude/skills/quant-research-lab/` 应该看到 `SKILL.md`、`roles/`、`pipelines/` 三项
> 4. 告诉我安装好了，之后我说"做一下回测"之类的话就会触发这个技能

把这段话复制粘贴给 Claude Code，它会自动完成安装。

### 方式三：手动命令行

```bash
git clone https://github.com/yili1992/quant-research-lab.git ~/.hermes/skills/quant-research-lab
```

### 方式四：作为独立参考

`roles/` 目录中的角色模板可以独立使用，作为任何 LLM 的高质量系统提示词——无需框架。每个 `.md` 文件都是自包含的，包含人设、任务规格和输出格式要求。

### 触发方式

装好后，当你描述量化研究需求时，技能会自动激活：

- "帮我设计一个费率套利策略" → 触发策略架构师
- "做一下这个策略的回测" → 触发回测引擎
- "启动量化流水线" → 显示流水线选择菜单
- "因子流水线" → 启动因子研究流水线
- "run a quant pipeline" / "backtest this strategy" → 英文触发
- "用高盛角色" / "做回测" / "风控分析" → 工具箱模式

---

## 使用方法

### 自然语言触发

当你描述量化研究需求时，技能会自动激活：

```
"帮我设计一个费率套利策略"           → Triggers Strategy Architect (01)
"做一下这个策略的回测"               → Triggers Backtest Engine (02)
"启动量化流水线"                     → Shows track selection menu
"因子流水线"                         → Starts Factor track
"从角色 03 恢复"                     → Resumes pipeline from Risk Manager
"用高盛角色" / "做回测" / "风控分析"  → Toolbox mode for specific roles
"流水线进度" / "status"              → Shows current pipeline progress
"重置流水线" / "reset"               → Resets pipeline state
```

### 工具箱模式

无需运行完整流水线，即可使用单个角色进行针对性分析：

1. 说出角色名称或描述任务
2. 技能匹配到合适的角色，加载其模板，并调度一个子智能体
3. 结果保存到 `state/research-context.md`，带有质量门控标注
4. 建议执行依赖该角色的下游角色作为下一步

### 流水线模式

运行端到端的研究轨迹：

1. 选择一条轨迹（或让技能根据你的目标推荐）
2. 审查执行计划：角色序列、预计时间、依赖图
3. 确认开始——角色依次执行，自动传递上下文
4. 以 `[1/5] 01 Strategy Architect ✅ [QAGATE: PASS]` 风格输出监控进度
5. 随时用"暂停"暂停，稍后用"从角色 NN 恢复"继续

---

## 质量门控

每个角色的输出在被接受进入流水线之前，都会经过自动化质量检查：

| 检查项 | 范围 | 捕获问题 | 失败时 |
|:-------|:-----|:---------|:-------|
| **必填字段** | 所有角色 | 缺失 `[QAGATE]` 块、核心结论为空、缺少下游字段 | `[输出不完整]` |
| **数值合理性** | 回测/风控/因子角色 | 夏普比率 > 50、最大回撤 > -99%，或其他不合理的值 | `[数值极端异常]` |
| **双重签名** | 数值类角色 | 缺失 `method_signature` 或 `data_signature` | `[缺少签名]` |

每个角色输出中嵌入的 QAGATE 块作为结构化的质量报告：

```
[QAGATE]
core_conclusion: Strategy achieves Sharpe 1.8 with 12% max drawdown
key_params: lookback=20, threshold=2.0σ, rebalance=weekly
downstream_fields: signal_formula, entry_rules, risk_params
method_signature: momentum_zscore_v1
data_signature: binance_btcusdt_perp_2023_2025
[/QAGATE]
```

---

## 状态管理

流水线状态持久化存储在 `state/research-context.md` 中——一个带有 YAML 前置元数据的单一 markdown 文件：

```yaml
---
pipeline_id: btc-arb-20260504
pipeline_track: "核心流水线"
status: in-progress
current_role_id: "03"
completed_roles: ["01", "02"]
next_recovery: "04"
created_at: 2026-05-04T02:16:00Z
project: btc-arb
---
```

每个角色的完整输出追加在 `<!-- ROLE_OUTPUT_START:{ID} -->` 和 `<!-- ROLE_OUTPUT_END:{ID} -->` 标记之间，支持：

- **可恢复性** — 关闭会话，稍后回来，从中断处继续
- **选择性重新执行** — 丢弃特定角色的输出并重新运行
- **跨角色上下文** — 下游角色自动接收上游参数和结论
- **审计跟踪** — 每个角色输出的完整历史，包含质量门控结果

---

## 项目结构

```
quant-research-lab/
├── SKILL.md                          # Skill definition & orchestration logic
├── README.md                         # This file
├── LICENSE                           # MIT License
├── roles/                            # Role prompt templates
│   ├── 01-gs-strategy-architect.md   # Goldman Sachs Strategy Architect
│   ├── 02-rentec-backtest-engine.md  # Renaissance Technologies Backtest Engine
│   ├── 03-twosigma-risk-manager.md   # Two Sigma Risk Manager
│   ├── 04-citadel-alpha-researcher.md# Citadel Alpha Researcher
│   ├── 05-js-market-maker.md         # Jane Street Market Maker
│   ├── 06-aqr-factor-builder.md      # AQR Factor Model Builder
│   ├── 07-deshaw-stat-arb.md         # D.E. Shaw Statistical Arbitrage
│   ├── 08-bridgewater-macro.md       # Bridgewater Macro Strategy
│   ├── 09-bbg-data-pipeline.md       # Bloomberg Data Pipeline
│   ├── 10-virtu-execution.md         # Virtu Execution Algorithm
│   ├── 11-point72-ml-researcher.md   # Point72 ML Researcher
│   ├── 12-man-portfolio-optimizer.md # Man Group Portfolio Optimizer
│   ├── 13-millennium-trading-system.md # Millennium Trading System
│   ├── 14-dimensional-factor-backtest.md # Dimensional Factor Backtest
│   └── 15-gs-compliance.md           # Goldman Sachs Compliance Framework
├── state/                            # Pipeline state (auto-generated)
│   └── research-context.md
└── docs/                             # Design documents & specs
    └── superpowers/
```

---

## 底层工作原理

1. **技能激活** — 自然语言匹配或显式 `/quant-research-lab` 触发
2. **上下文收集** — 读取角色注册表，检查现有流水线状态，收集用户输入（市场、资金、关注点）
3. **模板加载** — 读取目标角色的 `.md` 文件获取完整提示词模板
4. **占位符替换** — 将 `{user_market}`、`{user_capital}`、`{user_focus}`、`{upstream_params}`、`{upstream_summary}` 替换为收集到的值
5. **子智能体调度** — 使用完成后的提示词生成一个专用子智能体（高复杂度角色使用 Opus，普通角色使用 Sonnet）
6. **质量门控评估** — 解析 QAGATE 块，运行 3 项自动化检查
7. **状态持久化** — 将输出追加到状态文件并附带标记，更新前置元数据
8. **下一步建议** — 扫描依赖图，建议下一个逻辑角色

---

## 贡献指南

欢迎贡献！以下是你能提供帮助的方式：

### 添加新角色

1. 按照现有模板结构创建 `roles/NN-your-role.md`：
   - **人设**部分：机构背景、专业领域、工作理念
   - **任务描述**部分：编号维度，包含具体量化要求
   - **输出格式**部分：结构化 markdown，含表格、公式和伪代码
   - **QAGATE**部分：必填字段和质量标准
2. 将角色添加到 `SKILL.md` 中的注册表
3. 定义 `depends_on` 依赖关系并分配 `Phase`（1/2/3）

### 添加新流水线轨迹

1. 基于依赖 DAG 定义角色序列
2. 添加到 `SKILL.md` 中的轨迹表
3. 添加用于自然语言匹配的触发关键词

### 改进现有角色

每个角色模板旨在产出机构级输出。欢迎在以下方面进行改进：
- 更精确的数学规格
- 更多边界情况处理
- 更好的统计方法论
- 现实约束建模

---

## 许可证

MIT License — 详见 [LICENSE](LICENSE)。

---



Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)