| name | analyze-sentence |
| description | 对考研英语文章中的长难句进行结构分析,提取主干、标记修饰成分、绘制结构图解、给出参考译文和考点提示。分析完成后询问用户来源文件,将分析结果插入到原文对应句子之后。用户粘贴英文句子时触发。 |
长难句分析技能 (analyze-sentence)
对考研英语阅读中的长难句进行深度结构分析,拆解每个句子的语法层次。分析完成后,询问用户这些句子来自哪个文件,然后将分析结果插入到该文件中每个句子原文之后。
前置条件
输出遵循 Obsidian Flavored Markdown 规范。参考:
obsidian-markdown 技能 — 完整语法
obsidian-markdown/references/CALLOUTS.md — callout 类型(用于考点提示)
输入
用户提供:
- 英文句子 — 从文章中选取的 1-5 个长难句:
- 直接在消息中粘贴句子(每句一行或空行分隔)
- 或提供文件路径
工作流
步骤 1:读取输入
- 从粘贴文本或文件读取句子
- 按空行或编号识别每个独立句子
- 确认句子数量和内容
步骤 2:逐句分析
对每个句子执行以下分析:
2a. 句子原文
展示完整英文句子,用 > 引用块包裹。
2b. 主干提取
找出主句的核心结构(SVOCA):
- S (Subject):主语
- V (Verb/Predicate):谓语动词
- O (Object):宾语
- C (Complement):补语
- A (Adverbial):状语(仅主句级别)
去除所有修饰成分后,展示主句的简化版本。
2c. 修饰成分分析
逐一标记所有修饰成分:
| 修饰类型 | 示例引导词 | 缩写标记 |
|---|
| 定语从句 | that, which, who, whom, whose, when, where, why | 定从 |
| 状语从句 | although, because, if, when, while, unless, so that | 状从 |
| 名词性从句 | that, what, whether, whoever | 名从 |
| 非谓语短语 | V-ing, V-ed, to V | 非谓语 |
| 介词短语 | in, of, with, by, for, from, to | 介短 |
| 同位语 | that, 破折号, 逗号 | 同位 |
2d. 结构图解
用树形缩进展示句子层次关系:
主句: [主语 + 谓语 + 宾语]
├── 定从: (that ...) → 修饰 [先行词]
│ └── 介短: (in ...) → 修饰定从中的[名词]
├── 状从: (Although ...) → 让步状语
│ └── 非谓语: (V-ing ...) → 伴随
└── 非谓语: (to V ...) → 目的状语
2e. 参考译文
给出符合考研翻译"信达雅"标准的中文译文。
2f. 考点提示
用 > [!tip] callout 标注考研真题中常考的语法点:
- 定语从句的省略与分隔
- 虚拟语气的倒装
- 强调句型
- 名词性从句的识别
- 非谓语动词的逻辑主语判断
- 省略与替代
步骤 3:询问来源文件并定位句子
完成所有句子分析后,向用户提问:"这些句子来自哪个文件?请提供文件路径。"
用户提供文件路径后:
- 用 Read 工具读取该文件
- 在文件中查找每个分析的句子:
- 逐字符精确匹配
- 若因换行或空格差异导致精确匹配失败,尝试去除多余空白后匹配
- 标记每个句子在文件中的位置
- 若某个句子在文件中无法找到:
- 报告用户:"未能找到句子:'[句子前 50 个字符]...',请确认句子是否来自该文件。"
- 提供选项:跳过该句子,或用户手动指定插入位置
步骤 4:将分析结果插入源文件
对于每个成功定位的句子,在其原文之后插入完整的分析块。插入格式使用 Obsidian callout:
> [!abstract]- 长难句分析
> **原句**:[完整英文原句]
>
> **主干提取**:[主干内容]
>
> **修饰成分**:
>
> | 类型 | 引导词 | 修饰对象 |
> |------|--------|----------|
> | [类型] | [引导词] | [被修饰成分] |
>
> **结构图解**:
> ```
> 主句: [主语 + 谓语 + 宾语]
> ├── 定从: (that ...) → 修饰 [先行词]
> └── 状从: (Although ...) → 让步状语
> ```
>
> **参考译文**:[译文]
>
> **考点提示**:[考点说明]
插入规则:
- 插入位置:该句子所在段落之后(段落末尾空行之前)
- 若同一段落中有多个分析的句子,分析块按句子出现顺序依次排列
- 用 Edit 工具执行插入操作
- 不修改原文内容
- 若源文件有 YAML frontmatter,更新
updated 时间戳
步骤 5:质量审查(SubAgent)
分析结果全部插入源文件后,启动一个临时 subagent 对已插入的分析块进行质量审查:
- subagent 启动方式:必须使用
subagent_type="fork" 模式(继承当前会话的已授权权限),否则独立 agent 会因权限审批阻塞导致超时
- subagent 角色:语法审查员,专注于长难句分析的准确性
- subagent 任务:
- 读取源文件中刚刚插入的所有
> [!abstract]- 长难句分析 callout 块
- 逐条检查以下维度:
- 语法归类准确性:修饰成分的类型分类是否正确(如非谓语 vs 介词短语、定语从句 vs 名词性从句)
- 主干提取是否完整:是否遗漏主句核心成分
- 结构图解层次:缩进和层级关系是否准确反映句子结构
- 译文准确性:是否有误译、漏译
- 考点针对性:考点是否具体且对应考研真题实际考点
- 格式校验:
- 每个 callout 的第一行必须是
> **原句**:
- 每个 callout 内的 Markdown 表格(
| 开头的行)前必须有空行
- 检查后续段落开头是否完整:任何以逗号、分号、连词(and/or/but)开头的段落都是异常信号
- 若发现错误,直接用 Edit 工具修正源文件中的分析块
- 若全部正确,报告无问题
- subagent 完成后向主流程报告审查结果
审查完成后进入下一步验证。
步骤 6:验证
- 报告验证结果:分析的句子数量、成功插入的句子数量、未能定位的句子数量、审查修正的数量
- 向用户确认操作完成
步骤 7:自我学习(可选)
若执行中出现值得记录的分析难点或格式改进,检查 .learnings/ 目录。若存在,追加到 LEARNINGS.md。
输出格式
分析结果以 > [!abstract]- 长难句分析 callout 块插入到源文件中。完整示例参见 references/SENTENCE_ANALYSIS_TEMPLATE.md。
核心约定:
- 分析块使用
> [!abstract]- callout 包裹(折叠形式),以清晰区分于原文
- 每个 callout 第一行必须是
> **原句**:[完整英文原句]
- 主干提取用 SVOCA 分项列出
- 修饰成分用表格展示(类型 | 引导词 | 修饰对象)
- 表格前必须留空行(包括 callout 内的表格)
- 结构图解用 ASCII 树形缩进(
├── └── │)
- 参考译文单独一行
- 考点提示包含在 callout 内
约束
- 只分析用户提供的句子,不自行从文章中选取
- 结构图解必须清晰展示层次关系,不可省略修饰成分
- 考点提示需对应考研真题的实际考点类型,不可泛泛而谈
- 每个句子的分析需完整(六要素缺一不可:原文、主干、修饰、图解、译文、考点)
- 分析结果插入源文件后,不得修改源文件的原文内容
- 若无法精确匹配句子位置,必须向用户报告,不得随意猜测插入位置
相关技能
此技能是考研英语阅读精讲工作流的长难句分析环节:
translate — 翻译文章
format-article — 排版文章
organize-grammar — 整理语法笔记
compile-note — 整合笔记(compile-note 直接包含源文件内容时,行内分析 callout 会自然带入)
extract-vocabulary — 提取生词表