---
name: brainstorming-research
description: Use before writing any paper - clarifies paper type, discipline, topic, methodology, and chapter structure through natural dialogue
---

# 科研写作头脑风暴

通过自然的协作对话，帮助用户将论文想法转化为完整的写作计划。

**核心原则：一次只问一个问题，等待用户回答后再继续下一个。**

**交互原则：让用户少做选择，多做确认。提供推荐方案，让用户确认或微调。**

<EXTREMELY-IMPORTANT>
## 交互方式约束

你必须以**对话方式**进行头脑风暴，而不是列出表单让用户填写：

**正确做法**：
- 每次只问一个问题
- 用自然语言提问，像同事间的讨论
- 等待用户回答后，确认理解，再问下一个问题
- **提供推荐方案，让用户确认**，而不是让用户从零开始选择
- 给出你的建议和理由，帮助用户做选择

**错误做法**：
- 一次性列出所有问题
- 把问题编号像表单一样展示
- 不等用户回答就继续
- 干巴巴地列选项不给建议
- 让用户从空白开始填写

**示例对比**：

❌ 错误："请选择：1.本科 2.硕士 3.博士 4.期刊 5.会议 6.课程"

✅ 正确："你这次要写的是什么类型的论文？是毕业论文、期刊投稿，还是课程作业？如果是毕业论文，是本科、硕士还是博士阶段的？"
</EXTREMELY-IMPORTANT>

<HARD-GATE>
在完成所有问答并获得用户最终确认之前，禁止：
- 写任何正文内容
- 创建 chapters/ 目录
- 调用 writing-chapters 技能
- 输出任何论文章节的实际内容

无论用户的任务看起来多么"简单"，都必须经过此流程。
</HARD-GATE>

## 语言默认规则

| 论文类型 | 默认语言 | 说明 |
|----------|----------|------|
| 本科毕业论文 | 中文 | 除非用户明确要求英文 |
| 硕士毕业论文 | 中文 | 除非用户明确要求英文 |
| 博士毕业论文 | 中文 | 除非用户明确要求英文 |
| 中文核心期刊 | 中文 | |
| SCI/SSCI期刊 | 英文 | 根据期刊要求 |
| 会议论文 | 英文 | 国际会议为主 |
| 课程论文 | 中文 | 除非课程要求英文 |

**不需要主动询问语言**，根据论文类型自动确定。只有当用户有特殊语言需求时才调整。

## 已有论文信息提示

在开始问答前，检查用户是否已有论文相关信息：

> "在开始之前，如果你已经有论文的相关材料（比如题目、摘要、导师要求的结构），可以现在发给我，我会根据这些信息来规划。如果没有也没关系，我们从头开始讨论。"

**等待用户回复**，如果提供了材料，快速浏览并提取关键信息，然后在后续问答中确认。

## 反模式："这太简单了不需要讨论"

每个论文项目都要经过这个流程。一篇课程论文、一个简单修改、一段摘要 — 都需要。"简单"的项目往往因为未经检验的假设导致最多的返工。讨论可以很简短，但必须呈现信息并获得确认。

## Checklist

按顺序完成：

1. **探索项目上下文** — 检查是否已有 plan/、现有文件、用户提供的信息
2. **确认论文类型** — 对话式提问，等待回答
3. **确认学科领域** — 对话式提问，等待回答
4. **确认论文题目** — 对话式提问，等待回答
5. **确认研究背景与目的** — 对话式提问，等待回答
6. **确认研究方法** — 对话式提问，等待回答
7. **检测 LaTeX 模板** — 如果存在，询问是否使用
8. **确认章节结构** — **根据论文类型提供标准结构，让用户确认**
9. **汇总确认** — 展示所有信息，获得最终确认
10. **创建项目结构** — 创建 plan/ 和 chapters/
11. **转到章节写作** — 询问从哪章开始

## 流程图

```dot
digraph brainstorming_research {
    "探索上下文" [shape=box];
    "问论文类型" [shape=box];
    "等待回答" [shape=diamond];
    "问学科领域" [shape=box];
    "问论文题目" [shape=box];
    "问研究背景" [shape=box];
    "问研究方法" [shape=box];
    "检测LaTeX模板" [shape=box];
    "确认章节结构" [shape=box];
    "汇总确认" [shape=box];
    "用户确认?" [shape=diamond];
    "创建项目" [shape=box];
    "开始写作" [shape=doublecircle];

    "探索上下文" -> "问论文类型";
    "问论文类型" -> "等待回答";
    "等待回答" -> "问学科领域" [label="收到回答"];
    "问学科领域" -> "等待回答";
    "等待回答" -> "问论文题目" [label="收到回答"];
    "问论文题目" -> "等待回答";
    "等待回答" -> "问研究背景" [label="收到回答"];
    "问研究背景" -> "等待回答";
    "等待回答" -> "问研究方法" [label="收到回答"];
    "问研究方法" -> "等待回答";
    "等待回答" -> "检测LaTeX模板" [label="收到回答"];
    "检测LaTeX模板" -> "确认章节结构";
    "确认章节结构" -> "汇总确认";
    "汇总确认" -> "用户确认?";
    "用户确认?" -> "问论文类型" [label="需要修改"];
    "用户确认?" -> "创建项目" [label="确认"];
    "创建项目" -> "开始写作";
}
```

---

## 对话指南

### 第一个问题：论文类型

用自然语言询问，给出你的观察和建议：

> "你这次要写的是什么类型的论文？
>
> 比如：
> - 毕业论文（本科/硕士/博士）
> - 期刊投稿（中文核心 / SCI）
> - 会议论文
> - 课程论文或报告
>
> 不同类型的论文在篇幅、结构和语言风格上会有差异，我需要先了解这个来帮你规划。"

**等待用户回答。** 收到回答后，确认你的理解：
> "好的，[论文类型]。这类论文通常使用 [引用格式]，写作风格偏向 [风格特点]。"

然后进入下一个问题。

### 第二个问题：学科领域

> "你的研究属于哪个学科领域？
>
> 这会影响我给你的写作建议和章节安排。比如工科论文侧重技术方案和实验验证，社科论文更强调理论框架和数据分析，医学论文有特殊的报告规范要求。"

**等待用户回答。**

### 第三个问题：论文题目

> "论文题目定了吗？可以是暂定的，我们后面还可以调整。
>
> 如果还在犹豫，可以告诉我你想研究的大方向，我帮你一起想想怎么聚焦。"

**等待用户回答。**

### 第四个问题：研究背景与目的

根据用户的学科和题目，用更具体的方式提问：

> "关于你的研究，我想了解一下：
>
> 你为什么选择这个题目？是发现了什么问题想解决，还是想验证某个想法？
>
> 简单说说背景就好，不用太正式。"

**等待用户回答。** 如果回答不够清晰，可以追问：
> "明白了。那你希望通过这个研究达成什么目标？解决什么具体问题？"

### 第五个问题：研究方法

根据学科领域，问题侧重点不同：

**工科**：
> "你打算用什么技术方案或方法？有没有要做的实验或系统？性能怎么评估？"

**社科**：
> "你的研究方法是什么？问卷调查、访谈、案例分析，还是其他？数据怎么收集和分析？"

**医学**：
> "这是临床研究还是基础研究？样本量大概多少？伦理审批这块有没有考虑？"

**文科**：
> "你打算从什么理论视角切入？研究的文本或材料来源是什么？"

**法学**：
> "你要分析的法律问题是什么？会用到案例分析还是比较法研究？"

**等待用户回答。**

### LaTeX 模板检测

检查 `latex-templates/` 目录：

**如果存在模板文件**：
> "我注意到你放了 LaTeX 模板文件。你想用这个模板来输出论文吗？
>
> 用模板的话，我会直接生成 .tex 文件，可以用 LaTeX 编译成 PDF。
> 不用的话，我会输出 Markdown 文件，你可以后续复制到 Word。
>
> 你想怎么处理？"

**如果不存在模板**：默认使用 Markdown，不需要询问。

### 第六个问题：章节结构

根据用户确认的论文类型，**自动推荐**对应的章节结构：

> "根据你的 [论文类型]，我建议这样的章节结构：
>
> [展示对应类型的结构，>
> [从 templates.md 读取]
>
> 这是 [论文类型] 的标准结构。你可以：
> 1. **直接确认** — 使用这个结构
> 2. **微调** — 告诉我需要增删或调整的章节
>
> 你想怎么处理？"

**重要**：优先让用户确认, 而不是让用户设计。如果用户没有特殊要求, 使用默认结构即可.

### 汇总确认

收集完所有信息后，呈现汇总：

> "好，我整理一下我们讨论的内容：
>
> - **论文类型**：[类型]
> - **学科领域**：[领域]
> - **论文题目**：[题目]
> - **研究背景**：[简述]
> - **研究目的**：[简述]
> - **研究方法**：[简述]
> - **输出格式**：[Markdown / LaTeX]
> - **章节结构**：
>   - [章节列表]
>
> 这些信息都对吗？确认后我会创建项目结构，然后我们就可以开始写了。"

<HARD-GATE>
必须等待用户明确确认（如"对"、"可以"、"确认"、"没问题"）后才能继续。
不得假设用户同意。
</HARD-GATE>

---

## 创建项目结构

用户确认后，执行以下操作：

1. **创建 plan/ 目录**（如不存在）
2. **填充 project-overview.md**：

```markdown
# 项目概览

## 基本信息

- **论文类型**：[类型]
- **学科领域**：[领域]
- **论文题目**：[题目]
- **创建时间**：[日期]
- **输出格式**：[Markdown / LaTeX]
- **当前阶段**：头脑风暴完成，待开始写作

## 研究信息

### 研究背景
[用户描述]

### 研究目的
[用户描述]

### 研究方法
[用户描述]

## 章节结构

[章节列表]

## 写作规范

- **语言**：[中文/英文]
- **引用格式**：[格式]
- **写作模块**：[对应模块]
```

3. **填充 outline.md**：详细章节大纲
4. **更新 progress.md**：记录头脑风暴完成
5. **创建 chapters/ 目录**：创建空的章节文件

## 转到写作

> "项目结构已经创建好了。
>
> 你想从哪一章开始写？
>
> 我的建议是先写绪论，把研究问题和目标明确下来，这样后面的章节写起来会更顺。不过如果你对文献综述或方法部分更有把握，也可以先从那里开始。
>
> 你想先写哪部分？"

**等待用户回答**，然后调用 `writing-chapters` 技能。

---

## 关键原则

- **一次只问一个问题** — 不要用多个问题压倒用户
- **等待回答再继续** — 不要假设用户的选择
- **对话式而非表单式** — 像同事讨论，不是填问卷
- **给出建议和理由** — 帮助用户做选择，不是干巴巴列选项
- **灵活调整** — 如果用户想跳过某些讨论，可以简化但不能跳过最终确认
- **记录一切** — 所有决策都写入 plan/
