程序化扎根理论编码(Grounded Theory Coding)工具。对访谈记录或其他质性资料进行系统化的 开放编码(识别事件→提炼类属→分析类属)、主轴编码(典范模型关系分析)、选择性编码(核心类属→研究问题→故事线→理论对话), 每份访谈完成后自动保存为 Markdown 文件,所有访谈完成后按需生成汇总 Excel。 当用户提到需要进行扎根编码/扎根理论编码/开放编码/质性编码/grounded coding/open coding/ qualitative coding,或者提到需要对访谈资料/质性资料进行编码分析,或者上传/提供了访谈 记录的本地文件路径时触发此skill。即使用户只是笼统地说"帮我对这份访谈进行编码"、 "扎根编码分析"、"对访谈做开放编码"、"质性资料编码"、"帮我做扎根理论分析",也应触发此skill。
对访谈记录或其他质性资料进行系统化的扎根理论编码分析。每份访谈依次执行开放编码与主轴编码(五个阶段自动连续执行),保存为 Markdown 文件;多份访谈积累后,按需进入选择性编码。
当用户触发此skill时,首先获取以下信息(如用户未提供,则主动询问):
类属1:[类属名称]
包含编码:编码A, 编码B, ...
属性1:[名称](维度:[极端A] ←→ [极端B])
属性2:[名称](维度:[极端C] ←→ [极端D])
类属2:...
如果用户在触发时已经提供了部分信息(如直接给出文件路径和研究主题),不要重复询问已知信息,只补充缺失的必要信息。
收到基本信息、读取质性资料全文后,在进入编码之前,询问研究者是否希望提供示范编码:
"在正式编码前,你可以选择: A. 研究者示范:你先对文本中任意一小段(3–5 个句群)做示范编码,AI 会识别你的编码风格,然后按你的风格完成后续开放编码 B. AI 直接编码:跳过示范,AI 按照标准原则直接开始
哪种方式?(选 B 或不回应则直接开始)"
若研究者选择 A(研究者示范):
S1 "原文" → 编码标签)"我理解你的编码风格是:[描述]。我将按照此风格完成后续开放编码。如有偏差,请随时纠正。"
若研究者选择 B 或未回应:
直接进入五阶段,按标准原则编码。
阅读完全部质性资料后,提炼出几个大的主题方向,为后续微分析提供全局视野。
输出格式:
这一步的目的是让研究者在进入逐句编码之前,先对资料有一个整体认知框架。就像阅读一本书之前先浏览目录,整体主题概览帮助研究者明确后续微分析的方向和重点。
开放编码是扎根理论的基础阶段,目标是从原始资料中逐步建构概念。包含三个连续步骤,对应从具体到抽象的逐步提升:
针对质性资料进行逐句微分析,逐项识别出资料中的事项、事情、事务,进行命名。这一步的抽象层次较低,紧贴原始资料——回答的是"这里发生了什么"。
编码原则:
在编码过程中,用"S+序号"标记每个句群(如S1、S2、S3...),便于后续引用和追溯。
输出数据结构:
句群序号 | 原文内容 | 事件命名(编码)
S1 | 原文... | 编码A
S2 | 原文... | 编码B
...
对步骤一识别出的具体事件进行分类合并,形成更高抽象层次的概念(类属)。这是从"描述"到"概念化"的关键跃升。
持续比较(Constant Comparison)是本步骤的核心操作。 S&C 的持续比较要求:每一个新编码都要与已有的全部编码/类属进行比较, 而不是孤立地对单份文本建构类属。
正常进行类属提炼。
归并原则:
持续比较分三步进行:
比较步骤 1:对每个新编码,优先尝试归入既有类属
逐一检查:这个新编码,是否描述了既有类属中已有的经验或现象?
比较步骤 2:对"待判断"编码,判断是否构成新类属
检查所有"待判断"编码:
比较步骤 3:检查是否需要修订既有类属
输出数据结构:
句群序号 | 原文内容 | 事件命名(编码) | 类属 | 类属状态(既有/新增/修订)
S1 | 原文... | 编码A | 类属X | 既有
S2 | 原文... | 编码B | 类属X | 既有(属性扩展:新的维度极端证据)
S3 | 原文... | 编码C | 类属Z | 新增
S4 | 原文... | 编码D | 类属X→类属X' | 修订(类属X因本次材料重命名为类属X')
...
对每一个类属定义其内容、分析其特征、进行分类。这是开放编码的收尾工作,使类属从"标签"变为"有内涵的概念"。
概念定义:
分析要求:
输出格式(每个类属):
类属名称:XXX
属性1:[属性名称]
维度:[极端A] ←————→ [极端B]
属性2:[属性名称]
维度:[极端C] ←————→ [极端D]
四象限分类:
属性2-极端C 属性2-极端D
属性1-极端A 类型I名称 类型II名称
属性1-极端B 类型III名称 类型IV名称
备忘录提示(可选): 属性维度分析过程中,如果某个类属触发了推演冲动——觉得"这里有什么"——现在是写备忘录的好时机。直接说"备忘录"或描述你的想法,即可启动
memo-coach。分析动能稍纵即逝,不要等到编码全部完成再回想。
主轴编码的核心任务是使用**典范模型(Paradigm Model)**将类属之间的关系进行逻辑关联,形成理论化表述。这是从"描述现象"跨向"解释机制"的关键步骤。
典范模型框架(Strauss & Corbin):
因果条件(Causal Conditions)
↓ 触发
现象(Phenomenon)——核心关注的类属
↓ 发生在
情境脉络(Context)
↓ 受到
中介条件(Intervening Conditions)影响
↓ 行动者采取
行动/互动策略(Action/Interaction Strategies)
↓ 导致
结果(Consequences)
步骤 1:标注类属角色
逐一审视第二阶段提炼的每个类属,判断其在典范模型中可能扮演的角色。注意:一个类属在不同语境下可能扮演不同角色(如某类属在一组关系中是"条件",在另一组中是"结果")。
步骤 2:建立关系命题
尝试用典范模型的逻辑写出类属之间的关系,格式:
当 [因果条件] 时,在 [情境脉络] 的背景下,受到 [中介条件] 的影响,[行动者] 采取 [行动/策略] 的方式应对 [现象],导致了 [结果]。
不必追求一次写出完整命题——有些位置可能暂时空缺,标注"待后续数据补充"即可。
步骤 3:标注确定性
每个关系标注确定性水平:
输出格式:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
典范模型关系分析
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
现象:[类属名称]
因果条件:
- [类属名] → [现象]:[关系说明](确定性:有据/初现/推测,证据:Sx, Sy)
情境脉络:
- [类属名]:[如何构成背景条件](确定性:...)
中介条件:
- [类属名]:[如何影响行动策略](确定性:...)
行动/互动策略:
- [类属名]:[行动者如何应对](确定性:...)
结果:
- [类属名]:[产生什么后果](确定性:...)
关系命题(暂定):
"当 [因果条件] 时,在 [情境脉络] 的背景下,受 [中介条件] 影响,
[行动者] 采取 [策略] 应对 [现象],导致 [结果]。"
未归位类属:
- [类属名]:暂无法在典范模型中定位,待后续数据
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
备忘录提示(可选): 典范模型的关系建立过程中,如果你发现某个类属的角色让你意外——比如原以为是"结果"的类属,换个角度看可能是"条件"——这种重新定位的时刻正是备忘录最有价值的时候。直接说"备忘录"或描述你的想法,即可启动
memo-coach。
对编码结果进行量化统计,帮助研究者从数量角度理解资料结构:
如果是第二份及以后的访谈,额外输出"类属演化摘要":
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
类属演化摘要(本次持续比较结果)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【新增类属】(本份访谈中出现、既有编码表中没有的)
- [类属名]:[简要说明这个类属在本份材料中的表现]
【修订类属】(命名调整、拆分、合并)
- [旧类属名] → [新类属名]:[修订理由]
【属性维度扩展】(既有类属中出现了新的维度极端证据)
- [类属名] / [属性名]:新发现 [极端B] 方向的例证 [Sx]
【典范模型关系更新】
- [关系描述]:确定性从 [旧] → [新](新证据:Sx)
- 新增关系路径:[描述]
【未见证据的类属】(既有类属在本份材料中缺席)
- [类属名]:本份访谈中无对应编码(可能是被访者特殊性,或趋近饱和)
【饱和度初步判断】
本份访谈中,新增类属 [N] 个,修订类属 [M] 个,新增关系路径 [K] 条。
[若新增/修订极少,可注明:核心类属已趋于饱和,建议进行理论抽样以检验薄弱环节]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
这一摘要是研究者判断是否继续访谈(理论饱和)的重要依据,也是理论抽样方向的提示。
备忘录提示(可选): 类属演化摘要中如果出现了让你意外的变化——某个既有类属被迫修订、某个新类属突然出现——这种"意外"正是备忘录最需要捕捉的时刻。直接说出来,
memo-coach可以帮你把它推演成理论命题。
第四阶段完成后,必须立即调用 Write 工具将本份访谈的完整编码结果写入 Markdown 文件。不得仅在对话中输出而不写文件。
文件命名规则:coding_GT_[被访者编号或简称].md
(如 coding_GT_A.md、coding_GT_P1.md)
保存路径:当前工作目录(即项目目录根目录)
文件内容格式:
# 扎根编码:【被访者编号/简称】
编码日期:[日期]
研究主题:[研究主题]
## 一、整体主题概览
[第一阶段输出]
## 二、开放编码表
| 句群序号 | 原文内容 | 事件命名(编码) | 类属 |
|---------|---------|----------------|------|
| S1 | ... | ... | ... |
## 三、属性与维度分析
[每个类属的属性、维度、四象限]
## 四、典范模型关系分析
[第三阶段输出]
## 五、编码统计摘要
[第四阶段统计输出]
## 六、类属演化摘要(如适用)
[第四阶段演化摘要输出]
Write 工具调用完成后,告知研究者:
"本份编码已通过 Write 工具保存至
coding_GT_[被访者编号].md。如需继续下一份访谈,请提供文本;如所有访谈已完成,输入"生成Excel"可生成完整编码表。"
当研究者说"生成Excel""所有访谈完成"或主动请求时,才执行此步骤。
将当前项目目录中所有 coding_GT_*.md 文件的数据整合,生成一份汇总所有访谈的 Excel 文件。
使用 scripts/export_coding.py 脚本生成。先将编码数据构造为 JSON,写入临时文件,再调用脚本。
Excel文件结构(5个工作表):
Sheet 1:完整编码表(所有访谈合并)
| 访谈编号 | 句群序号 | 原文内容 | 事件命名(编码) | 类属 |
|---|
Sheet 2:编码-类属汇总
| 类属 | 包含的编码 | 编码数量 |
|---|
Sheet 3:属性与维度
| 类属 | 属性1 | 属性1维度 | 属性2 | 属性2维度 | 四象限分类 |
|---|
Sheet 4:典范模型
| 现象 | 因果条件 | 情境脉络 | 中介条件 | 行动/互动策略 | 结果 | 关系命题 | 确定性 |
|---|
Sheet 5:编码统计 包含跨访谈的汇总统计数据
生成命令:
python3 <skill_path>/scripts/export_coding.py --output "<项目目录>/扎根编码_汇总.xlsx" --json-file /tmp/_grounded_coding_data.json
当研究者说"进入选择性编码""开始整合理论""确定核心类属"时,执行此阶段。
前提:已完成至少 3–4 份访谈的开放编码与主轴编码,有足够的类属积累和典范模型关系基础。
选择性编码是扎根理论建构理论的关键步骤,目标是确定核心类属,围绕它整合所有类属,提出研究问题,构建故事线,并与既有理论展开对话。
从累积的所有类属中,选择一个既有类属作为核心类属,或者构建一个共同上位概念作为核心类属。
核心类属的判断标准(S&C):
两种确定方式:
输出候选核心类属(1–3个),并说明每个的理由和确定方式。
核心类属确定后,围绕它明确或修订研究问题。在扎根理论中,研究问题不是事先给定的,而是在分析过程中逐渐聚焦的。
操作:
输出格式:
核心类属:[名称]
研究问题(聚焦后):
[一句话陈述]
聚焦路径:
初始切入点:[研究者最初的宽泛问题]
→ 开放编码发现:[关键发现]
→ 主轴编码揭示:[核心关系]
→ 最终聚焦:[当前研究问题]
围绕核心类属,将所有类属按典范模型框架整合为一个连贯的理论叙事。
核心类属(Central Category):[名称]
因果条件(Causal Conditions):[触发核心现象的类属]
情境脉络(Context):[背景性条件类属]
中介条件(Intervening Conditions):[影响行动策略的类属]
行动/互动策略(Action/Interaction Strategies):[应对核心现象的类属]
结果(Consequences):[行动带来的结果类属]
用 1–2 段话写出分析故事线:
"在这个研究中,核心现象是 [核心类属]。它的发生受到 [条件类属] 的影响,发生在 [情境类属] 的背景下。行动者通过 [行动/策略类属] 加以应对,最终产生了 [结果类属] 的结果。"
对归位不确定的类属,标注"归属待研究者判断"。
将涌现的理论与既有文献进行对话,明确本研究的理论贡献定位。
操作:
注意:理论对话中涉及的文献必须是真实存在的。如果不确定某文献是否真实,必须明确告知"此文献需要你自行核实"。
基于典范模型和故事线,提出 3–5 条可被后续数据检验的理论命题,格式:
命题 N:当 [条件] 时,[行动者] 倾向于采取 [策略],从而导致 [结果]。
每条命题附说明:目前有哪些数据支持,哪些维度尚待补充证据。
移交声明:选择性编码的核心类属确定和命题取舍是研究者的理论判断,以上结果仅供参考。建议在确定核心类属后,使用
negative-case-finder对命题进行反例压测。
虽然编码过程是自动连续执行的,但在对话中仍然需要逐步呈现分析过程和中间结果,让用户能够跟踪分析进展。具体地:
编码过程中始终遵循以下原则: