# Thematic Analysis

> 基于 Braun & Clarke 反思性主题分析框架的质性研究辅助工具。 支持两种输入模式： （1）直接提供原始访谈文本 → skill 逐份完成 TA 初始编码，汇总后进入主题识别； （2）提供已有初始编码池 → 直接进入聚类、审查、命名建议流程。 输出结构化候选主题表，明确标注边界模糊编码与待研究者裁定的命名建议。 当用户提到"主题分析"“主题编码”"帮我聚类编码""从编码提炼主题""Braun Clarke""候选主题" "这些编码怎么归主题""帮我看看主题结构""对访谈做主题分析"时触发此 skill。 注意与 grounded-coding 的区别：grounded-coding 面向程序化扎根理论的类属建构与理论关系； thematic-analysis 面向 Braun & Clarke 路线的语义主题识别，输出主题结构而非理论命题。

- Skill: `yipng05-max/thematic-analysis` (Agent Skill)
- Install (CLI): `npx skillmds@latest add yipng05-max/thematic-analysis`
- Raw SKILL.md: https://api.skillmd.com/api/skills/yipng05-max/thematic-analysis/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: yipng05-max (https://skillmd.com/u/yipng05-max)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/yipng05-max/thematic-analysis

---


# 主题分析辅助工具（Thematic Analysis）

本 skill 基于 Braun & Clarke（2006, 2019）的反思性主题分析框架，支持从原始访谈文本
到候选主题结构的完整分析流程。

**重要定位**：主题命名是分析行为，体现研究者的理论判断，最终命名必须由研究者作出。
本 skill 在命名阶段只提供备选，不做裁定。

**方法论前提**：Braun & Clarke 的反思性 TA 要求研究者对**所有**访谈逐份独立完成初始编码，
再将全部编码汇总为统一的编码池，然后才进入主题搜寻阶段。

---

## 启动：确认输入类型

触发后，**第一步必须确认输入类型**：

> "你现在准备做主题分析——你手上有的是：
> A. 原始访谈文本（尚未编码）
> B. 已完成的初始编码（一份或多份）
> 哪种情况？"

**情况 A：提供原始访谈文本 → 进入初始编码阶段**

**情况 B：提供已有初始编码 → 询问是否已汇总，进入编码池处理**

---

## 编码风格确认（情况 A 专用，可选）

确认为情况 A 后，在正式开始编码前，询问研究者是否希望提供示范编码：

> "在正式编码前，你可以选择：
> **A. 研究者示范**：你先对文本中任意一小段（3–5 句）做示范编码，AI 会识别你的编码风格，然后按你的风格完成后续编码
> **B. AI 直接编码**：跳过示范，AI 按照标准原则直接开始
>
> 哪种方式？（选 B 或不回应则直接开始）"

**若研究者选择 A（研究者示范）：**

1. 请研究者提供示范片段及其对应编码（格式：`"原文" → [编码标签]`）
2. AI 分析示范编码的风格特征，明确说明：
   - 粒度：偏细（逐句）还是偏粗（逐段）？
   - 用词：in-vivo（受访者原话）为主，还是研究者概括语言为主？
   - 长度：编码标签通常几个字？
   - 描述取向：倾向描述行为，还是描述情绪/态度？
3. 输出风格确认：
   > "我理解你的编码风格是：[描述]。我将按照此风格完成后续编码。如有偏差，请随时纠正。"
4. 按研究者风格继续执行步骤 1–2.5

**若研究者选择 B 或未回应：**

直接进入步骤 1，按标准原则编码。

---

## 初始编码阶段（情况 A）

TA 的初始编码与扎根理论的开放编码有本质差异：

| | TA 初始编码 | GT 开放编码 |
|--|------------|------------|
| 目标 | 捕捉意义单元，贴近数据语言 | 为类属建构准备，需要概念抽象 |
| 粒度 | 短语级，尽量用受访者原话 | 可更高度概括 |
| 后续 | 汇总后搜寻主题（并列结构） | 归并类属、属性维度分析（层级结构） |

### 单份访谈编码操作

研究者提供原始访谈文本后，执行以下步骤：

**步骤 1：通读全文，识别意义单元**

逐句扫描全文。**只有**以下两类才可跳过，且必须在编码结果中标注"已跳过"：
- 纯粹的单词应答，独立成句（如仅有"嗯""对""好的"）
- 访谈者的提问语句本身（非受访者发言）

其余所有语句，**无论看起来信息量多少，都作为意义单元处理并给出编码**。某句话是否重要，是研究者的判断权，不是 AI 的判断权。当不确定时，给出一个描述性编码（如"重复前述观点""表达不确定"），而不是跳过。

**步骤 2：逐单元生成初始编码**

编码原则：
1. **贴近数据**：编码词汇尽量来自受访者的语言，而非研究者的理论术语
2. **描述性**：编码描述"发生了什么"或"受访者表达了什么"，不解释"为什么"
3. **细粒度**：一个意义单元只给一个最准确的编码，不做归并
4. **in-vivo 优先**：若受访者某个表达特别精准，直接用原话作为编码
5. **禁止对仗整齐**：编码标签的字数和句法结构应由数据内容决定，而非由输出形式决定。in-vivo 编码可长可短，描述性编码因意义单元的复杂程度而异。**如果回头检查发现大多数编码字数相近、结构相同（如全部是"X的Y"或"对X的Z"），说明在优化形式而非忠实于数据，必须主动打破这种整齐感，让编码长短形态反映数据本身的多样性。**

输出格式：
```
【访谈 N】初始编码
（被访者简称 / 编号）

原文片段 → 编码
"......" → [编码标签]
"......" → [编码标签]
...

本份编码总数：N 条
```

**步骤 2.5：自动保存编码结果到文件（强制执行，不可跳过）**

编码输出完成后，**必须立即调用 Write 工具**将编码写入文件。不得仅在对话中输出而不写文件。

文件命名规则：`coding_[被访者编号或简称].md`
（如 `coding_A.md`、`coding_P1.md`）

保存路径：当前工作目录（即项目目录根目录）

文件内容格式：
```
# 【访谈 X】初始编码
被访者：[编号/简称]
编码日期：[日期]

## 编码列表
"原文片段" → [编码标签]
"原文片段" → [编码标签]
...

## 统计
本份编码总数：N 条
```

Write 工具调用完成后，告知研究者：
> "本份编码已通过 Write 工具保存至 `coding_[被访者编号].md`。"

**步骤 3：询问是否继续下一份**

> "【访谈 N】初始编码完成，共 N 条。
> 还有下一份访谈文本吗？如有，请提供；
> 如果这是最后一份，我们进入编码汇总。"

所有访谈编码完成后，自动进入辅助汇总流程。

---

## 编码池处理（情况 B）

研究者已有初始编码时，询问汇总状态：

> "你已有的初始编码来自几份访谈？是否已经汇总到一份列表里？"

**已汇总 → 直接进入后续信息收集**

**未汇总 → 执行辅助汇总**

研究者依次提供各份访谈的编码：
```
【访谈 N】（被访者简称或编号）
编码1
编码2
...
```

---

## 辅助汇总

无论来自情况 A 还是情况 B，所有编码汇总后输出：

```
汇总编码池
总编码数：N 条
来源访谈：P1, P2, ... PN

跨访谈重复出现的编码（出现 ≥2 次）：
- [编码名]：出现于 P1, P3
- ...

单份访谈独有的编码：
- [编码名] [P2]
- ...
```

汇总完成后，收集后续必要信息：

**必填：研究问题**——用一句话说明研究在问什么，是判断主题相关性的基本参照。

**选填：理论视角**——若有，在主题审查阶段提示主题与理论的对话关系。

**选填：当前困惑**——若对某些编码归属已有疑虑，先行标注，优先处理。

---

## 执行流程

确认编码池完整后，**自动连续执行**以下四个阶段，无需每步等待用户确认。

---

### 第一阶段：编码全貌扫描

在进入聚类之前，先对全部编码做一次整体扫描，输出：

- 编码总数
- 编码的大致分布特征（哪些概念域出现频繁）
- 初步识别出的"编码聚集带"（尚未命名的雏形聚类）
- 标记出你认为"孤立编码"（与其他编码缺少关联的）

这一步的目的是让研究者在进入正式聚类前，先看到编码的整体地形。

---

### 第二阶段：候选主题聚类

将编码归入候选主题，输出 **5–8 个候选主题**（若编码数量极少可减少）。

聚类原则：
1. **语义相关性优先**：同一主题内的编码应指向同一类经验或意义
2. **不强行归并**：宁可留出"边界模糊编码"，也不牵强归类
3. **不以频率决定主题**：高频编码不等于独立主题，低频编码可能是重要主题
4. **允许层级结构**：若某主题内部明显可分为两个子方向，可提出主题+子主题

每个候选主题的输出格式：

```
候选主题 [序号]：[暂定名称（描述性，非最终）]

核心含义：用1-2句话说明这个主题在捕捉什么经验或意义

包含编码：
- [编码1]
- [编码2]
- ...

边界模糊编码（归属不确定，需研究者判断）：
- [编码X]：模糊原因
- [编码Y]：模糊原因
```

---

### 第三阶段：主题审查

对每个候选主题从以下三个维度进行审查，输出审查意见：

#### 内部一致性
这个主题内部的编码，是否都在描述同一种经验或意义？
还是有些编码其实属于不同的现象被勉强归在一起？

#### 外部区分度
这个主题与其他候选主题之间的边界是否清晰？
如果有两个主题高度重叠，指出它们的差异在哪里，以及是否应该合并或拆分。

#### 与研究问题的相关性
这个主题是否真正在回应研究问题？
还是它只是材料中的一个高频现象，但与研究问题关系较弱？

审查结果中，对每个候选主题给出明确判断：
- **保留**：内部一致、外部清晰、与研究问题相关
- **建议合并**：与某主题高度重叠，说明合并依据
- **建议拆分**：内部包含两个不同方向，说明拆分依据
- **建议降级**：可作为某主题的子主题，而非独立主题
- **存疑待判**：内部一致性或相关性尚不确定，需研究者决定

> **备忘录提示（可选）：** 主题审查过程中，如果某个主题让你产生了理论联想——觉得"这个主题和某个理论概念很像"或"这两个主题之间的张力说明了什么"——现在就可以切到 `analytic-memo`，把这个想法写成分析备忘录。TA 的备忘录不需要遵循扎根理论的结构，直接说出你的想法即可。

---

### 第四阶段：命名建议与移交

这是 skill 移交给研究者的关键节点。

对每个通过审查的主题，提供：

#### 命名建议（2–3 个备选）
每个备选名称附说明：
- 这个名称捕捉了什么？
- 它遗漏了什么？
- 它在理论上暗示了什么立场？

格式：
```
备选名称 A：[名称]
- 优点：...
- 局限：...
- 理论暗示：...

备选名称 B：[名称]
- 优点：...
- 局限：...
- 理论暗示：...
```

#### 理论定位追问

在呈现完所有主题的备选名称后，输出以下追问：

> **命名背后的理论立场值得多停一步。**
> 不同的备选名称往往暗示不同的理论对话方向——
> 对于让你犹豫的主题，可以问自己：
> - 这个名称是在描述现象，还是在解释机制？
> - 它更靠近哪个已有的理论概念？这种靠近是你想要的吗？
> - 如果换一个名称，你的研究会加入一场不同的理论对话——你想去哪场？

#### 移交声明
在所有命名建议之后，输出以下固定文字：

> **命名判断移交研究者。**
> 主题命名体现研究者的理论立场，以上备选名称仅供参考。
> 以下问题请研究者自行判断后告知，以便进入后续工作：
> 1. 哪些主题的名称已确定？
> 2. 哪些主题的名称需要修改？
> 3. 是否需要对某些主题进行合并、拆分或删除？

---

## 强制：主题汇总表自动保存

研究者确认主题命名后，**必须立即执行以下保存步骤（不可跳过）**：

调用 Write 工具，将最终主题结构保存至项目目录：

文件命名：`themes_[研究主题].md`（如 `themes_快车司机.md`、`themes_平台工人.md`）
保存路径：当前工作目录（项目根目录）

文件内容：
1. 研究问题（一句话）
2. 主题结构表（含主题编号、名称、核心含义、包含编码数、代表性语句）
3. 边界模糊编码的处理记录

Write 完成后告知研究者：
> "`themes_[研究主题].md` 已保存至项目目录，供后续 `ta-methods-writer`、`ta-findings-writer` 等 skill 自动读取。"

---

## 可选后续操作

研究者确认主题命名后，还可继续请求以下任意操作：

### 操作 A：生成主题结构摘要
输出一份完整的主题结构表，格式如下：

| 主题编号 | 主题名称 | 核心含义 | 包含编码数 | 代表性语句（若有原文） |
|---------|---------|---------|-----------|----------------------|

### 操作 B：追问特定主题
对研究者指定的某个主题，做更深入的分析：
- 这个主题在材料中是如何被体现的？
- 它内部是否存在张力或矛盾？
- 它与哪个理论概念最接近？距离在哪里？

### 操作 C：识别主题之间的关系
分析候选主题之间是否存在：
- 因果或条件关系
- 对立或张力关系
- 层级或包含关系
- 时间序列关系

输出主题关系图谱（文字版）。

### 操作 D：保存主题结构到本地
将最终确认的主题结构保存为 Markdown 文件。

文件名格式：`YYYY-MM-DD_themes_<研究主题关键词>.md`

默认保存路径：`~/Documents/research-memos/themes/`

文件内容包含：研究问题、主题结构表、各主题含义说明、边界模糊编码处理记录。

---

## 与其他 skill 的关系

| Skill | 定位 | 何时使用 |
|-------|------|---------|
| `thematic-analysis` | 初始编码 + 主题识别与结构化 | 从原始访谈文本到候选主题的完整 TA 流程 |
| `grounded-coding` | 开放编码与类属建构（GT专用） | 需要程序化扎根理论的系统编码与持续比较 |
| `negative-case-finder` | 反例与边界条件识别 | 主题确定后，挑战主题的普遍性 |
| `analytic-memo` | 分析备忘录（AI代写） | 主题审查中产生分析直觉，需要快速记录 |

推荐流程：

```text
thematic-analysis（逐份初始编码 → 汇总编码池 → 候选主题）
    ↓
negative-case-finder（挑战主题的边界）
    ↓
analytic-memo（深化核心主题的理论思考）
```

---

## 参考文献

- Braun, V., & Clarke, V. (2006). Using thematic analysis in psychology. *Qualitative Research in Psychology*, 3(2), 77–101.
- Braun, V., & Clarke, V. (2019). Reflecting on reflexive thematic analysis. *Qualitative Research in Sport, Exercise and Health*, 11(4), 589–597.
- Clarke, V., & Braun, V. (2017). Thematic analysis. *Journal of Positive Psychology*, 12(3), 297–298.

说明：
- 2006年论文是主题分析最核心的方法论来源
- 2019年论文是 Braun & Clarke 对"反思性主题分析"的重要修订，明确反对机械化六步执行
- 本 skill 的设计以反思性取向为指导，强调研究者主导判断，避免把主题分析变成流程执行

---

## 语言

- 默认中文
- 若用户用英文输入，输出用英文，frontmatter 字段名保持英文

