grounded-coding
程序化扎根理论编码
对访谈记录或其他质性资料进行系统化的扎根理论编码分析。每份访谈依次执行开放编码与主轴编码(五个阶段自动连续执行),保存为 Markdown 文件;多份访谈积累后,按需进入选择性编码。
启动:获取基本信息
当用户触发此skill时,首先获取以下信息(如用户未提供,则主动询问):
- 质性资料路径:用户上传或提供的访谈记录/质性资料的本地文件路径(支持PDF、Word、TXT等格式)
- 研究领域:用户所在的研究领域(如教育学、管理学、社会学等)
- 研究主题:用户正在研究的具体主题
- 被访者信息:被访谈者的身份描述(如"某小学教师"、"创业者A"等)
- 研究议题焦点(可选):用户特别关注的研究议题或分析重点
- 访谈序号与既有编码表(持续比较关键信息):
- 这是你研究中的第几份访谈?(第一份 / 第N份)
- 如果是第二份及以后:之前访谈的累积编码表是否可以提供?
请提供文件路径,或直接粘贴类属列表,格式如下:
类属1:[类属名称] 包含编码:编码A, 编码B, ... 属性1:[名称](维度:[极端A] ←→ [极端B]) 属性2:[名称](维度:[极端C] ←→ [极端D]) 类属2:... - 如果是第一份访谈,直接开始全新建构。
如果用户在触发时已经提供了部分信息(如直接给出文件路径和研究主题),不要重复询问已知信息,只补充缺失的必要信息。
收到基本信息、读取质性资料全文后,在进入编码之前,询问研究者是否希望提供示范编码:
"在正式编码前,你可以选择: A. 研究者示范:你先对文本中任意一小段(3–5 个句群)做示范编码,AI 会识别你的编码风格,然后按你的风格完成后续开放编码 B. AI 直接编码:跳过示范,AI 按照标准原则直接开始
哪种方式?(选 B 或不回应则直接开始)"
若研究者选择 A(研究者示范):
- 请研究者提供示范片段及其对应编码(格式:
S1 "原文" → 编码标签) - AI 分析示范编码的风格特征,明确说明:
- 动名词使用程度:高度动名词化,还是更多名词短语?
- 抽象层次:贴近原文(描述性),还是已有一定理论提炼?
- 粒度:每个句群一个编码,还是允许多个?
- 用词风格:倾向本土化表达,还是理论术语?
- 输出风格确认:
"我理解你的编码风格是:[描述]。我将按照此风格完成后续开放编码。如有偏差,请随时纠正。"
- 按研究者风格继续执行五阶段流程
若研究者选择 B 或未回应:
直接进入五阶段,按标准原则编码。
执行流程(五阶段连续执行)
第一阶段:整体主题概览
阅读完全部质性资料后,提炼出几个大的主题方向,为后续微分析提供全局视野。
输出格式:
- 列出3-6个大的主题,每个主题附简要说明(1-2句话)
- 说明各主题在资料中的大致分布和权重
这一步的目的是让研究者在进入逐句编码之前,先对资料有一个整体认知框架。就像阅读一本书之前先浏览目录,整体主题概览帮助研究者明确后续微分析的方向和重点。
第二阶段:开放编码
开放编码是扎根理论的基础阶段,目标是从原始资料中逐步建构概念。包含三个连续步骤,对应从具体到抽象的逐步提升:
- 识别事件:逐项识别资料中的事项、事情、事务,进行命名(抽象层次较低)
- 提炼类属:对具体事件进行分类合并,形成概念(抽象层次较高)
- 分析类属:定义类属内容,分析特征,进行属性与维度分类
步骤一:识别事件(逐句微分析)
针对质性资料进行逐句微分析,逐项识别出资料中的事项、事情、事务,进行命名。这一步的抽象层次较低,紧贴原始资料——回答的是"这里发生了什么"。
编码原则:
- 逐句编码——按句群进行,不遗漏任何语句。只有纯粹的单词应答(独立成句,如仅有"嗯"、"对"、"好的")可以跳过,且必须在编码结果中标注"已跳过"。其余所有语句,无论看起来信息量多少,都必须给出编码。某句话是否重要,是研究者的判断权,不是 AI 的判断权;当不确定时,给出描述性编码(如"重复前述观点""表达不确定"),而不是跳过
- 优先使用动名词形式——GT 开放编码的标准格式是动名词(如"强调自主性""回避直接冲突""将平台规则合理化"),而非名词短语(如"自主性""冲突回避""规则合理化")。动名词保留了行动感和过程性,符合 GT 追问"正在发生什么"的分析取向。编码应简洁,通常 4–8 字,不宜过长
- 每个句群给出一个最合适的编码——同一个编码可以在不同句群重复出现(这说明该现象反复被提及)
- 紧扣研究议题——编码时重点关注与用户研究主题和研究议题相关的内容
- 禁止对仗整齐——编码标签的字数和句法结构应由数据内容决定,而非由输出形式决定。如果检查发现大多数编码字数相近、结构相同(如全部是四字动名词短语),说明在优化形式而非忠实于数据,必须主动打破这种整齐感。有些编码天然更长,有些更短,有些是受访者原话的动名词化,有些是描述性的过程短句,形态多样才符合 GT 的细粒度要求
在编码过程中,用"S+序号"标记每个句群(如S1、S2、S3...),便于后续引用和追溯。
输出数据结构:
句群序号 | 原文内容 | 事件命名(编码)
S1 | 原文... | 编码A
S2 | 原文... | 编码B
...
步骤二:提炼类属(含跨文本持续比较)
对步骤一识别出的具体事件进行分类合并,形成更高抽象层次的概念(类属)。这是从"描述"到"概念化"的关键跃升。
持续比较(Constant Comparison)是本步骤的核心操作。 S&C 的持续比较要求:每一个新编码都要与已有的全部编码/类属进行比较, 而不是孤立地对单份文本建构类属。
情况 A:第一份访谈(无既有编码表)
正常进行类属提炼。
归并原则:
- 不遗漏任何编码——每个事件命名都必须归入某个类属
- 类属数量适中——通常5-10个类属,过多则失去归并意义,过少则信息丢失
- 类属命名要求:
- 具有一定的抽象性——高于事件命名的概括层次
- 体现理论敏感度——能启发理论思考
- 兼顾本土化——不必强套西方概念,允许反映资料本身的特点
- 但也不要受制于现有理论——让类属从资料中自然涌现
情况 B:第二份及以后的访谈(有既有编码表)
持续比较分三步进行:
比较步骤 1:对每个新编码,优先尝试归入既有类属
逐一检查:这个新编码,是否描述了既有类属中已有的经验或现象?
- 是 → 归入既有类属,同时记录该编码是否在属性或维度上提供了新信息(属性扩展或维度极端的新证据)
- 否 → 暂标为"待判断——可能是新类属"
比较步骤 2:对"待判断"编码,判断是否构成新类属
检查所有"待判断"编码:
- 彼此之间是否存在共同的抽象指向?
- 它们描述的现象是否与全部既有类属都有本质差异?
- 如果是 → 建立新类属,命名,并说明与既有类属的区别
- 如果否 → 重新检视,看能否归入修订后的既有类属
比较步骤 3:检查是否需要修订既有类属
- 新文本是否让某个既有类属的边界变得模糊?(是否需要拆分?)
- 新文本是否揭示两个既有类属实为同一现象的不同侧面?(是否需要合并?)
- 新文本是否让某个类属的命名不再准确?(是否需要重命名?)
输出数据结构:
句群序号 | 原文内容 | 事件命名(编码) | 类属 | 类属状态(既有/新增/修订)
S1 | 原文... | 编码A | 类属X | 既有
S2 | 原文... | 编码B | 类属X | 既有(属性扩展:新的维度极端证据)
S3 | 原文... | 编码C | 类属Z | 新增
S4 | 原文... | 编码D | 类属X→类属X' | 修订(类属X因本次材料重命名为类属X')
...
步骤三:分析类属(属性与维度)
对每一个类属定义其内容、分析其特征、进行分类。这是开放编码的收尾工作,使类属从"标签"变为"有内涵的概念"。
概念定义:
- 属性(Property):类属的某些重要特征,使该类属区分于其他类属
- 维度(Dimension):属性的程度变化,通常用一对相反概念的连续统来表达(如强—弱、多—少、主动—被动、积极—消极)
分析要求:
- 每个类属提炼出2个属性
- 每个属性有2个维度(即两极)
- 形成四象限的理想类型分类(2属性×2维度极端值 = 4种类型)
- 结合原始资料中的具体描述来确定属性和维度,确保有据可依
- 为四象限的每种类型尝试给出一个简短的类型名称
输出格式(每个类属):
类属名称: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:标注确定性
每个关系标注确定性水平:
- 有据:有多个句群直接支持(标注支持句群编号)
- 初现:仅 1–2 个句群支持,需后续访谈验证
- 推测:基于分析直觉,尚无直接证据
跨访谈演化
- 第一份访谈:典范模型是初步的、暂定的,很多关系标注为"初现"或"推测",这是正常的
- 后续访谈:每份新访谈完成开放编码后,重新审视典范模型:
- 哪些"初现"关系得到了新证据支持?(升级为"有据")
- 哪些关系被新证据质疑?(需修订方向或降级)
- 是否出现了新的关系路径?
- 典范模型的整体结构是否需要调整?
输出格式:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
典范模型关系分析
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
现象:[类属名称]
因果条件:
- [类属名] → [现象]:[关系说明](确定性:有据/初现/推测,证据:Sx, Sy)
情境脉络:
- [类属名]:[如何构成背景条件](确定性:...)
中介条件:
- [类属名]:[如何影响行动策略](确定性:...)
行动/互动策略:
- [类属名]:[行动者如何应对](确定性:...)
结果:
- [类属名]:[产生什么后果](确定性:...)
关系命题(暂定):
"当 [因果条件] 时,在 [情境脉络] 的背景下,受 [中介条件] 影响,
[行动者] 采取 [策略] 应对 [现象],导致 [结果]。"
未归位类属:
- [类属名]:暂无法在典范模型中定位,待后续数据
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
备忘录提示(可选): 典范模型的关系建立过程中,如果你发现某个类属的角色让你意外——比如原以为是"结果"的类属,换个角度看可能是"条件"——这种重新定位的时刻正是备忘录最有价值的时候。直接说"备忘录"或描述你的想法,即可启动
memo-coach。
第四阶段:编码统计摘要与类属演化记录
对编码结果进行量化统计,帮助研究者从数量角度理解资料结构:
- 总句群数
- 事件命名(编码)总数(去重后)
- 类属总数
- 每个类属包含的编码数量及占比
- 编码出现频次最高的前5个编码
如果是第二份及以后的访谈,额外输出"类属演化摘要":
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
类属演化摘要(本次持续比较结果)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【新增类属】(本份访谈中出现、既有编码表中没有的)
- [类属名]:[简要说明这个类属在本份材料中的表现]
【修订类属】(命名调整、拆分、合并)
- [旧类属名] → [新类属名]:[修订理由]
【属性维度扩展】(既有类属中出现了新的维度极端证据)
- [类属名] / [属性名]:新发现 [极端B] 方向的例证 [Sx]
【典范模型关系更新】
- [关系描述]:确定性从 [旧] → [新](新证据:Sx)
- 新增关系路径:[描述]
【未见证据的类属】(既有类属在本份材料中缺席)
- [类属名]:本份访谈中无对应编码(可能是被访者特殊性,或趋近饱和)
【饱和度初步判断】
本份访谈中,新增类属 [N] 个,修订类属 [M] 个,新增关系路径 [K] 条。
[若新增/修订极少,可注明:核心类属已趋于饱和,建议进行理论抽样以检验薄弱环节]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
这一摘要是研究者判断是否继续访谈(理论饱和)的重要依据,也是理论抽样方向的提示。
备忘录提示(可选): 类属演化摘要中如果出现了让你意外的变化——某个既有类属被迫修订、某个新类属突然出现——这种"意外"正是备忘录最需要捕捉的时刻。直接说出来,
memo-coach可以帮你把它推演成理论命题。
第五阶段:保存编码结果到 Markdown 文件(强制执行,不可跳过)
第四阶段完成后,必须立即调用 Write 工具将本份访谈的完整编码结果写入 Markdown 文件。不得仅在对话中输出而不写文件。
文件命名规则:coding_GT_[被访者编号或简称].md
(如 coding_GT_A.md、coding_GT_P1.md)
保存路径:当前工作目录(即项目目录根目录)
文件内容格式:
# 扎根编码:【被访者编号/简称】
编码日期:[日期]
研究主题:[研究主题]
## 一、整体主题概览
[第一阶段输出]
## 二、开放编码表
| 句群序号 | 原文内容 | 事件命名(编码) | 类属 |
|---------|---------|----------------|------|
| S1 | ... | ... | ... |
## 三、属性与维度分析
[每个类属的属性、维度、四象限]
## 四、典范模型关系分析
[第三阶段输出]
## 五、编码统计摘要
[第四阶段统计输出]
## 六、类属演化摘要(如适用)
[第四阶段演化摘要输出]
Write 工具调用完成后,告知研究者:
"本份编码已通过 Write 工具保存至
coding_GT_[被访者编号].md。如需继续下一份访谈,请提供文本;如所有访谈已完成,输入"生成Excel"可生成完整编码表。"
最终输出:生成完整 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 份访谈的开放编码与主轴编码,有足够的类属积累和典范模型关系基础。
选择性编码是扎根理论建构理论的关键步骤,目标是确定核心类属,围绕它整合所有类属,提出研究问题,构建故事线,并与既有理论展开对话。
步骤 1:确定核心类属
从累积的所有类属中,选择一个既有类属作为核心类属,或者构建一个共同上位概念作为核心类属。
核心类属的判断标准(S&C):
- 出现频率高:在多份访谈中反复出现
- 关联性强:与其他大多数类属存在实质性联系(在典范模型中处于枢纽位置)
- 解释力强:能统摄其他类属,说明"这里的核心现象是什么"
- 概念饱满:属性和维度已有充分的数据支撑
两种确定方式:
- 选择既有类属:从已有类属中选出最具统摄力的一个,说明理由
- 构建上位概念:如果没有单一类属能统摄全局,可以在既有类属之上构建一个更高抽象层次的概念作为核心类属,说明它如何整合多个类属
输出候选核心类属(1–3个),并说明每个的理由和确定方式。
步骤 2:依据核心类属提出研究问题
核心类属确定后,围绕它明确或修订研究问题。在扎根理论中,研究问题不是事先给定的,而是在分析过程中逐渐聚焦的。
操作:
- 基于核心类属,用一句话陈述"这个研究最终在回答什么问题"
- 对照研究者最初的宽泛切入点,说明研究问题如何从最初的开放探索聚焦到当前的理论焦点
- 检验研究问题是否是过程性问题("如何……""怎样……""什么条件下……"),而非静态描述性问题
输出格式:
核心类属:[名称]
研究问题(聚焦后):
[一句话陈述]
聚焦路径:
初始切入点:[研究者最初的宽泛问题]
→ 开放编码发现:[关键发现]
→ 主轴编码揭示:[核心关系]
→ 最终聚焦:[当前研究问题]
步骤 3:构建故事线(Storyline)
围绕核心类属,将所有类属按典范模型框架整合为一个连贯的理论叙事。
核心类属(Central Category):[名称]
因果条件(Causal Conditions):[触发核心现象的类属]
情境脉络(Context):[背景性条件类属]
中介条件(Intervening Conditions):[影响行动策略的类属]
行动/互动策略(Action/Interaction Strategies):[应对核心现象的类属]
结果(Consequences):[行动带来的结果类属]
用 1–2 段话写出分析故事线:
"在这个研究中,核心现象是 [核心类属]。它的发生受到 [条件类属] 的影响,发生在 [情境类属] 的背景下。行动者通过 [行动/策略类属] 加以应对,最终产生了 [结果类属] 的结果。"
对归位不确定的类属,标注"归属待研究者判断"。
步骤 4:理论对话
将涌现的理论与既有文献进行对话,明确本研究的理论贡献定位。
操作:
- 识别对话对象:核心类属和关系命题最接近哪些已有理论概念或框架?列出 2–3 个最相关的理论
- 比较异同:本研究的涌现理论与这些已有理论在哪些方面一致?在哪些方面不同或推进了?
- 定位贡献:本研究的理论发现对已有知识体系的贡献是什么——是验证、修正、扩展、还是挑战?
- 标注局限:诚实标注理论对话中的不确定性——哪些对话需要更多数据支持
注意:理论对话中涉及的文献必须是真实存在的。如果不确定某文献是否真实,必须明确告知"此文献需要你自行核实"。
步骤 5:理论命题草案
基于典范模型和故事线,提出 3–5 条可被后续数据检验的理论命题,格式:
命题 N:当 [条件] 时,[行动者] 倾向于采取 [策略],从而导致 [结果]。
每条命题附说明:目前有哪些数据支持,哪些维度尚待补充证据。
移交声明:选择性编码的核心类属确定和命题取舍是研究者的理论判断,以上结果仅供参考。建议在确定核心类属后,使用
negative-case-finder对命题进行反例压测。
过程中的对话输出
虽然编码过程是自动连续执行的,但在对话中仍然需要逐步呈现分析过程和中间结果,让用户能够跟踪分析进展。具体地:
- 第一阶段完成后:输出主题概览的文字说明
- 第二阶段完成后:依次输出事件命名表 → 含类属列的编码表 → 每个类属的属性与维度分析
- 第三阶段完成后:输出典范模型关系分析
- 第四阶段完成后:输出编码统计摘要(含类属演化摘要和典范模型关系更新)
- 第五阶段完成后:告知用户 Markdown 文件的保存路径
编码质量原则
编码过程中始终遵循以下原则:
- 忠于原始资料——编码必须有原文依据,不能凭空臆造
- 保持开放性——不预设理论框架,让概念从资料中涌现
- 持续比较——每处理一个新编码,都要与既有编码和类属进行比较:这个现象在此前的访谈中出现过吗?属性是否一致?是否需要修订类属边界?这是跨文本比较,不是单份文本内的一致性检查
- 理论敏感性——对资料中隐含的概念和关系保持敏感,但不受既有理论束缚
- 饱和性检查——如发现某些编码反复出现且不再产生新的属性或维度,在统计摘要中注明可能已达到理论饱和
- 三阶段递进——开放编码建构概念(是什么),主轴编码建立关系(怎么关联),选择性编码整合理论(核心是什么、如何解释)。三个阶段的抽象层次逐步提升,不可跳跃
语言
- 默认使用中文进行编码和输出
- 如果质性资料为英文,则编码词汇用英文,但分析说明仍用中文(除非用户要求英文输出)
- 编码词汇尽量简洁,以动名词形式为主
More from yipng05-max/-skills
literature-verifier
Verify the authenticity of literature references and detect hallucinations in both English and Chinese (中文) sources. Use when users need to check if a citation is real, verify a DOI, confirm a paper/article/book exists, cross-check author-title-journal-year metadata, detect fabricated references, validate URLs of online articles, or audit a reference list for accuracy. Covers journal papers, conference papers, preprints, books, monographs, newspaper articles, magazine articles, web articles, dissertations, government documents, and any other published works. Supports Chinese academic databases including CNKI (知网), Wanfang (万方), CQVIP (维普), Baidu Scholar (百度学术), and core journal list verification (北大核心, CSSCI, CSCD).
11cnki-advanced-search
>
11literature-review-writer
>
9feishu-paper-reviewer
飞书文档论文审阅工具。直接在飞书云文档上进行学术论文审阅,支持高亮、删除线、加粗变色、划词批注、插入审阅意见等多种修订标记。当用户提到对飞书文档/云文档进行论文审阅、审稿、评阅、修改批注,或提供飞书文档链接要求审阅时触发。关键词:飞书论文审阅、飞书审稿、云文档评阅、飞书批注论文。
9cjournal-analyzer
>
8paper-analyzer
学术论文结构化阅读、拆解与分析工具。基于12个阅读要素(研究背景、研究问题、研究结论、文献综合、文献批评、研究方法、理论视角与理论框架、一致性发现、不一致性发现、研究贡献、研究不足、未来研究展望)对论文进行深度拆解,结果保存为Excel文件。当用户提到需要针对论文/文献/paper进行拆解、解析、分析、阅读、梳理,并上传或告知一篇或多篇论文的本地文件路径(PDF、Word等)时触发此skill。
8