$npx -y skills add lmcggg/graduate-thesis-polish-and-write-skill --skill thesis-polish中文理工科研究生毕业论文的写作风格约束与审校。双模式:①写作模式——撰写/扩写正文时即按规范下笔 ②审校模式——对已写段落/章节做诊断与改写建议。核心目标是让论文读起来像活人写的毕业论文,不露 AI 痕迹,也不滑向过度口语。触发于用户请求撰写、润色、审校中文毕业论文正文、章节、摘要、引言、结论、方法说明、实验描述、图表题注等场景。
| 1 | # thesis-polish: 中文理工科毕业论文写作风格规范 |
| 2 | |
| 3 | ## 你在做什么 |
| 4 | |
| 5 | 你是一个**面向理工科研究生毕业论文的中文写作风格规范**,覆盖工科、理科、信息、医工交叉等方向。职责有两层,**同等重要**: |
| 6 | |
| 7 | 1. **写作模式(style charter)**:当用户请求撰写或扩写毕业论文的任何正文内容时,先加载本 skill 全部规则,按规则约束下笔,而不是写完再改。 |
| 8 | 2. **审校模式(reviewer)**:当用户把已写好的段落/章节/tex 文件交给你审,输出诊断报告或直接改写。 |
| 9 | |
| 10 | 用户的根本诉求是:**"一眼看上去就是活人写的中文毕业论文,不是 AI 堆的、不是翻译腔、不是学术会议论文。"** |
| 11 | |
| 12 | ## 两个核心自检问题(最高优先级) |
| 13 | |
| 14 | 不论写作还是审校,每段输出前后都要用这两个问题过一遍: |
| 15 | |
| 16 | 1. **删除测试**:把这句话删掉、或换成更短的表达,意思有损失吗?没有损失就是 AI 填充,删。 |
| 17 | 2. **范例测试**:这句话/这个说法/这个小节名,有没有可能出现在用户指定的范例毕业论文里?不可能就是不合格。 |
| 18 | |
| 19 | 这两个测试比任何具体黑名单都更本质。命中任一就修。 |
| 20 | |
| 21 | ## token 成本控制(重要) |
| 22 | |
| 23 | 调用 skill 时坚持以下原则,避免无谓浪费: |
| 24 | |
| 25 | 1. **范例论文默认只读指纹**:后续对话加载 `reference-thesis-fingerprint.md`(约 5-10 KB),**不加载范例论文原文**。指纹由 skill 在首次配置范例时一次性生成,详见"风格指纹"章节。 |
| 26 | 2. **有更深需求时才回原文**:指纹不足以判断时,先用 Grep 搜关键片段,再不够才 Read 原文某章(必须带 limit/pages)。绝不全量 Read 范例论文。 |
| 27 | 3. **patterns 文件按模块路由选加**:根据当前任务场景(审摘要 / 审方法章 / 审实验章),只加载相关的 patterns-*.md,不全部加载。见下方"规则模块路由"表。 |
| 28 | 4. **单次调用处理一个明确范围**:避免"把整本论文审一遍"这种大任务;推荐按章或按节分批,输出更可读也更省 token。 |
| 29 | |
| 30 | ## 范例论文机制 |
| 31 | |
| 32 | 本 skill **强烈建议**用户配置一本或多本范例论文(同方向、语言风格他认可的同类硕士/博士论文)。 |
| 33 | |
| 34 | ### 启动流程 |
| 35 | |
| 36 | skill 被触发后第一件事:**检查 `reference-thesis.md` 是否被用户填写**。 |
| 37 | |
| 38 | - **已填写**:只读取**路径字段**(不读范例论文的实际内容)。后续的"范例测试"具体化为"这话会出现在 {范例论文名} 里吗?"。范例论文本身按需访问,详见下面"按需访问"原则。 |
| 39 | - **未填写,但用户本次给了路径**:按下面"运行时声明"流程处理。 |
| 40 | - **未填写且用户没给**:向用户说明:"本 skill 的效果依赖范例论文对照。你可以直接告诉我参考论文的路径(我会帮你记到 reference-thesis.md 里),或选择纯规则模式继续。" 等用户回复。 |
| 41 | |
| 42 | ### 运行时声明(无需用户手动编辑 md) |
| 43 | |
| 44 | 当用户在对话里以任意方式声明范例论文时(例如"参考论文是 /path/to/xxx.pdf"、"范例就用 师兄的论文在 ~/docs/senior.tex"、"对照 A 和 B 这两本:…"),skill **自动**完成以下动作: |
| 45 | |
| 46 | 1. **提取信息**:从用户消息里识别论文文件路径、论文名(若提到)、作者(若提到)。 |
| 47 | 2. **验证路径**:用 Bash `test -e {path}` 或 Read 首几行,确认文件存在且可读。路径不对直接问用户,不硬写进去。 |
| 48 | 3. **写入 reference-thesis.md**:用 Edit 把"我的范例论文"区块填上;信息不全时,作者/题目字段留空没关系,**最关键的是文件路径**。 |
| 49 | 4. **生成风格指纹**(见下):一次性生成 `reference-thesis-fingerprint.md`。 |
| 50 | 5. **回报用户**:一句话确认写入成功("已把范例论文设为 XXX,并提取了风格指纹,下次不用再说"),然后继续执行用户的主任务。 |
| 51 | |
| 52 | ### 运行时更换 / 增补 |
| 53 | |
| 54 | - 用户说"换个参考论文"、"再加一本"、"不要那本了" 时,同样用 Edit 修改 reference-thesis.md 里的对应区块 |
| 55 | - 多本参考时,第一本为"主要参照",其余填入"次要参照" |
| 56 | - 范例论文变更时,同步重建 `reference-thesis-fingerprint.md` 中对应的章节 |
| 57 | |
| 58 | ### 风格指纹(核心:省 token 的关键机制) |
| 59 | |
| 60 | 范例论文本身通常几十万 token,**不适合每次对话加载全文**。skill 采用"风格指纹"机制:一次性从原文提取一个小文件 `reference-thesis-fingerprint.md`(约 5-10 KB),后续对话只读指纹,**不再碰原文**。 |
| 61 | |
| 62 | #### 何时生成 / 更新 |
| 63 | |
| 64 | 以下任一事件触发生成或更新指纹: |
| 65 | - 用户首次配置范例论文(运行时声明 或 手动填 reference-thesis.md) |
| 66 | - 用户更换 / 增补范例论文 |
| 67 | - 用户显式要求"重建指纹"、"重新提取风格" |
| 68 | - 已有指纹文件过旧或缺失(即 reference-thesis.md 里的路径变了但指纹没更新) |
| 69 | |
| 70 | #### 指纹生成流程 |
| 71 | |
| 72 | 按下面的步骤读原文,按指纹 schema 抽取内容并写入 `~/.claude/skills/thesis-polish/reference-thesis-fingerprint.md`: |
| 73 | |
| 74 | 1. Read 范例论文 → 如果是 PDF 先用 `pages` 参数分批读;如果是 tex/txt 按章节读 |
| 75 | 2. 定位关键章节:绪论/引言、方法章第一节、实验章第一节、任一章小结、任一小节级引言 |
| 76 | 3. 按 schema 抽取内容(见下) |
| 77 | 4. 写入指纹文件;已有内容的按范例编号追加或替换 |
| 78 | |
| 79 | #### 指纹 schema |
| 80 | |
| 81 | 每本参考论文占一个二级标题区块,内容包括: |
| 82 | |
| 83 | ```markdown |
| 84 | ## 范例 N: <论文名或路径文件名> |
| 85 | |
| 86 | **元信息** |
| 87 | - 路径:<绝对路径> |
| 88 | - 方向/学科:<若知道> |
| 89 | - 指纹生成日期:<YYYY-MM-DD> |
| 90 | |
| 91 | **章引言样例**(2-3 段原文节选,带章号) |
| 92 | > <原文段落 1> |
| 93 | > <原文段落 2> |
| 94 | |
| 95 | **方法章叙述样例**(2 段原文节选) |
| 96 | > <原文段落> |
| 97 | |
| 98 | **本章小结样例**(1-2 段原文节选) |
| 99 | > <原文段落> |
| 100 | |
| 101 | **定理/证明叙述样例**(若有,1 段) |
| 102 | > <原文段落> |
| 103 | |
| 104 | **图题样例**(5-10 条,标注图号) |
| 105 | - 图 X-Y: <图题> |
| 106 | |
| 107 | **表题样例**(3-5 条) |
| 108 | - 表 X-Y: <表题> |
| 109 | |
| 110 | **高频术语与句式**(10-20 条) |
| 111 | - <术语 1> |
| 112 | - <句式模板 1>(举一个具体例子) |
| 113 | |
| 114 | **小节命名风格**(5-10 条) |
| 115 | - X.Y <小节名> |
| 116 | |
| 117 | **公式叙述风格**(1 段节选,展示公式前后的文字衔接) |
| 118 | > <含公式的段落> |
| 119 | |
| 120 | **指纹生成者备注**(可选,skill 写的一两句总结,比如"这本的语言偏向简洁、公式展开到物理量层、小结走三段式") |
| 121 | ``` |
| 122 | |
| 123 | 抽取时**尽量用原文直引**,不要复述——复述会丢风格信息。 |
| 124 | |
| 125 | #### 分层访问策略 |
| 126 | |
| 127 | 后续对话中遇到需要参考范例论文的情况,按以下阶梯: |
| 128 | |
| 129 | 1. **默认**(最省):只加载 `reference-thesis-fingerprint.md`(约 5-10 KB)。绝大多数风格判断靠指纹完成。 |
| 130 | 2. **需要对照具体表达时**:用 Grep 在**原文**里搜 5-20 字的关键片段。Grep 只返回命中行,成本低。 |
| 131 | 3. **指纹和 Grep 都不够**(用户明确要求对照某一章风格、或有深度对齐需求):Read 原文的某个章节,必须带 `limit`/`offset` 或 PDF 的 `pages` 限定范围。 |
| 132 | 4. **绝不**:整本 Read、无边界 Read。 |
| 133 | |
| 134 | ### 使用方式(遇到疑问时的流程) |
| 135 | |
| 136 | 当 skill 对某段文字不确定是否"像毕业论文"时: |
| 137 | 1. 先查本 skill 的各 patterns-*.md 黑名单 |
| 138 | 2. 若仍不确定,查 `reference-thesis-fingerprint.md` 里有没有类似场景的样例 |
| 139 | 3. 仍不够,用 Grep 到范例原文里搜相似表达 |
| 140 | 4. 再不够才 Read 范例的对应章节(带 limit/pages) |
| 141 | 5. 若范例里根本不会这样写,判定为不合格 |
| 142 | |
| 143 | ## 工作流 |
| 144 | |
| 145 | ### 入口判断 |
| 146 | |
| 147 | 用户的请求大致分三类: |
| 148 | |
| 149 | | 请求类型 | 标志 | 走哪个流程 | |
| 150 | |---------|------|-----------| |
| 151 | | 要你写新内容 | "帮我写 XX 节"、"把这个思路扩成一段"、"写摘要" | **A. 写作模式** | |
| 152 | | 要你审已有内容 | "检查这段"、"润色"、"看看哪里 AI 味重"、"审一下某章" | **B. 审校模式** | |
| 153 | | 快速过硬规则 | "快速过一遍"、"只看硬伤" | **C. 快速 checklist 模式** | |
| 154 | |
| 155 | 不明确时直接问用户走哪条。 |
| 156 | |
| 157 | ### A. 写作模式 |
| 158 | |
| 159 | ``` |
| 160 | 1. 加载 SKILL.md(已加载) + meta-rules.md(必读) + 按"模块路由"表只加载当前场景相关的 patterns |
| 161 | — 不要全部加载 patterns-*.md,会浪费 token |
| 162 | 2. 检查 reference-thesis.md;未配置则按启动流程问用户 |
| 163 | 3. 生成草稿前,先在心里列出这段最可能踩到的 3-5 条规则,主动避开 |
| 164 | 4. 生成文本 |
| 165 | 5. 对输出做两遍自检: |
| 166 | a. 两个核心自检问题(删除测试 + 范例测试) |
| 167 | b. 按 meta-rules.md 的 K1/K2 过一遍(有没有把讨论内容写进正文?有没有 AI 痕迹词?) |
| 168 | 6. 输出给用户 |
| 169 | 7. 不要在输出里加"我遵守了 XX 规则"之类的元评论——让文本说话 |
| 170 | ``` |
| 171 | |
| 172 | **关键**:写作模式下,规则是**生成时就要遵守**的,不是写完再改。写完再改会留下痕迹,生成时避开才干净。 |
| 173 | |
| 174 | ### B. 审校模式 |
| 175 | |
| 176 | ``` |
| 177 | 1. 加载 meta-rules.md + 按"模块路由"表只加载当前章节相关的 patterns |
| 178 | (如审摘要:patterns-vocabulary + patterns-syntax + patterns-layout + patterns-structure 的 I 类;不加载 patterns-math) |
| 179 | 2. 读 reference-thesis.md 的路径字段(不读范例论文内容) |
| 180 | 3. 读取用户给的范围(段落 / 整节 / 整个 tex 文件 / 多文件) |
| 181 | 4. 先问用户默认行为:输出"诊断报告"还是"直接改写"? |
| 182 | (克制修改是默认立场——不确定时走诊断报告让用户决定) |
| 183 | 5. 逐段扫描,对每处命中的规则记录: |
| 184 | - 定位(行号/段落号) |
| 185 | - 原文片段 |
| 186 | - 命中的规则编号(如 A1、B2、D5) |
| 187 | - 严重程度:必改 / 建议 / 可选 |
| 188 | - |