Skip to content
Back to skills

Student Recommendation

ASecurity

高校教师推荐信与证明材料全流程辅助:保研/考研推荐信、出国留学推荐信、求职实习推荐信、专家推荐(职称/项目评审/人才计划)、证明类文书(在职、参会、指导关系、经费)、会议邀请函与合作感谢信。核心方法是「先收素材再动笔」——没有具体事例就留占位,绝不用形容词填充;推荐强度必须与事实相符,不得拔高。当教师说「写封保研推荐信」「留学推荐信怎么写」「给这个学生写推荐」「这几个学生的推荐信别写重了」「开个在职证明」「写封会议邀请函」「帮我写封感谢信」「专家推荐意见怎么写」「实习推荐信」时使用。Triggers: 写封保研推荐信、留学推荐信怎么写、开个在职证明、写封会议邀请函、给这个学生写推荐、帮我写封感谢信、专家推荐意见怎么写、推荐信别写重了、实习推荐信、参会证明、指导关系证明、经费证明、人才计划推荐意见。

  • 11 stars
  • 0 votes
  • 1 copy
  • 1 view
  • Added October 20, 2026
educationpythongobashspringperformance

Works with

  • cli

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned October 20, 2026

npx -y skills add EtherealMingo/university-teacher-skills --skill student-recommendation --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Student Recommendation?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Student Recommendation
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/etherealmingo-student-recommendation/badge)](https://www.skillsdirectory.com/skills/etherealmingo-student-recommendation)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: student-recommendation
description: "高校教师推荐信与证明材料全流程辅助:保研/考研推荐信、出国留学推荐信、求职实习推荐信、专家推荐(职称/项目评审/人才计划)、证明类文书(在职、参会、指导关系、经费)、会议邀请函与合作感谢信。核心方法是「先收素材再动笔」——没有具体事例就留占位,绝不用形容词填充;推荐强度必须与事实相符,不得拔高。当教师说「写封保研推荐信」「留学推荐信怎么写」「给这个学生写推荐」「这几个学生的推荐信别写重了」「开个在职证明」「写封会议邀请函」「帮我写封感谢信」「专家推荐意见怎么写」「实习推荐信」时使用。Triggers: 写封保研推荐信、留学推荐信怎么写、开个在职证明、写封会议邀请函、给这个学生写推荐、帮我写封感谢信、专家推荐意见怎么写、推荐信别写重了、实习推荐信、参会证明、指导关系证明、经费证明、人才计划推荐意见。"
---

# 推荐信与证明材料

> **Goal**:解决教师每年最耗神的一类写作——**每个学生都得单独写、不能套模板,
> 但挤在一起写就必然写成套话**。
>
> 本技能的做法是:动笔前先把「这个学生独有的事实」采集齐,用事例替代形容词,
> 用同一批学生之间的**区分度设计**替代模板复用,最后用机器把套话与雷同查出来。
>
> **产出是草稿,不是终稿。** 推荐信是**署名文书**——署的是教师本人的名字,
> 一旦失实,受损的是推荐人自己的学术信誉。所以:AI 只出草稿,
> 每一句事实性陈述都必须由教师通读确认后才能署名。

## 何时使用

- 「写封保研推荐信」/「给这个学生写推荐」(推荐信主流程)
- 「留学推荐信怎么写」/「英文推荐信帮我看看」(中英文体差异)
- 「实习推荐信」/「求职推荐信,要贴合岗位」(岗位匹配举证)
- 「专家推荐意见怎么写」/「职称评审的推荐意见」(同行专家推荐)
- 「开个在职证明」/「开个参会证明」/「写个指导关系证明」/「经费证明」(证明类文书)
- 「写封会议邀请函」/「请专家来评审的邀请函」/「写封合作感谢信」
- 「这几个学生的推荐信别写重了」(**同批区分度设计**,本技能最能省事的一环)

**不适用**:为学生代写个人陈述(PS/SOP)、代填网申表格、代写学生自荐信 ——
那是学生本人的文书,见「红线」第 6 条。

**与其他子技能的分工**(避免重复劳动,也别互相推诿):

| 诉求 | 走哪个技能 |
|---|---|
| 给学生本人写的推荐信、证明类文书、要盖章的正式邀请函/感谢信 | **本技能** |
| 首次邮件邀约、征稿通知、合作洽谈、催回复等**邮件往来** | `academic-correspondence` |
| 奖学金 / 评奖评优的**推荐意见** | `student-affairs` |
| 实习鉴定表、实习材料盖章与归档 | `internship-practice` |
| 学生论文的评语、答辩意见 | `thesis-supervisor` |

## 底座(禁止重写)

引用前均已 `ls` 验证存在。

| 路径 | 用途 |
|---|---|
| `skills/office-layer/` | **文件产出唯一通道**;docx / xlsx 全部从这里出 |
| `skills/office-layer/scripts/docx_kit.py` | `spec` 生成带**人工确认位**的推荐信、`md` 生成常规稿、`comment` 写 Word 原生核对批注、`inspect` 自检 |
| `skills/office-layer/scripts/xlsx_kit.py` | `build` 生成**素材采集表**(阶段一的核心工具) |
| `skills/awesome-benzi/references/LANGUAGE_MODEL.md` | **AI 味治理口径**,推荐信最怕写成模板,本技能套话清理直接引用其规则号 |
| `skills/awesome-benzi/references/EVIDENCE_MODEL.md` | 事实分级与未知项占位(`EV-FACT-*`、`EV-UNKNOWN-*`),防止写出无依据的溢美之词 |
| `skills/awesome-benzi/references/QUALITY_GATES.md` | 质量门与 `blocked` / `needs-review` / `advisory` 三级问题模型 |
| `skills/awesome-benzi/references/INPUT_MODEL.md` | `IN-QUESTION` 式一次性收集缺失信息(`question-batch`)的规则来源 |
| `THIRD_PARTY_NOTICES.md` | 底座溯源与许可证 |
| `skills/student-recommendation/scripts/cliche_scan.py` | **自建**:套话扫描 + 同批草稿雷同度检测(阶段五核心) |

## 前置信息收集(intake,一次性问完)

按 `INPUT_MODEL.md` 的 `question-batch` 思路,把下面这些**合并成一次提问**。不要边做边问。

| # | 要问什么 | 为什么必须问 | 缺省时怎么办 |
|---|---|---|---|
| 1 | **推荐类型** | 决定走哪套结构(保研/留学/求职/专家/证明/邀请) | 无法默认,必须问 |
| 2 | **目标院校 / 单位 / 用途** | 国内院校看中排名与保研资格,海外看中对比参照,企业看中岗位匹配 | 用通用结构并标注 |
| 3 | **学生基本信息** | 姓名、专业、年级、学号(学号只进内部文件,不出现在信中) | 留 `【待补:姓名】` |
| 4 | **已知素材** | 成绩单、项目书、获奖证书、论文、竞赛记录 —— 有则用,无则列缺口 | 列成缺口清单交学生填 |
| 5 | **是否有格式模板** | 学校/系统常有固定模板、字数上限、必答问题 | 按本技能通用结构,标注「非校方模板」 |
| 6 | **截止时间** | 决定先写哪封、是否分批 | 按最紧的排 |
| 7 | **中英文要求** | 是否要英文版、是否要中英双版、是否网申系统直接填写 | 默认中文 |
| 8 | **推荐强度(由教师定,不由学生定)** | 强推 / 推荐 / 有保留 —— 见「推荐强度分级」 | **不得默认强推** |
| 9 | **同批是否多人** | 决定是否启用「区分度设计」 | 多人时必做 |

**可直接发给学生的那一段**(学生填素材,比教师回忆可靠得多):

```
请把下面这些信息填好发我,越具体越好,能附材料就附材料:
1. 我教过你的课程名称、学期、你的总评成绩、班内大致排名(或问教务要排名证明)
2. 你在我这里参与过的项目/竞赛/毕设:名称、起止时间、你在里面具体负责哪一块
3. 你自己独立完成、且结果可验证的一件事(写了多少行代码/跑了多少组数据/修复了什么问题)
4. 一次你印象最深的、能体现你特点的场合(哪次答辩、哪次组会、哪次实验出问题)
5. 和目标院校/岗位相关的一段经历(如果有)
6. 你的目标单位、截止时间、要不要英文版
注意:以上信息必须是真实发生过的。推荐信造假是学术不端,会同时毁掉你和我的信誉。
```

## 工作流

### 阶段零 · 定类型与信息确认

- **输入**:教师一句话需求(如「给李明写封保研推荐信」)
- **动作**:按 intake 表一次性问完 9 项;先用安全默认值继续,不干等
- **输出**:需求确认单(复述:给谁、什么类型、给哪家、什么语言、何时交、有无模板)
- **退出条件**:9 项都有值(未提供的明确标「未提供,用默认值」),教师点头确认类型

### 阶段一 · 素材采集(**没有素材就不写**)

- **输入**:学生回填的素材 + 成绩单/项目书/证书等材料
- **动作**:
  1. 按「素材采集表」逐项填,每条素材必须标**来源**(`user-confirmed` / `material-verified` / `【待补】`,口径见 `EVIDENCE_MODEL.md` 的 `EV-FACT-001`)
  2. 生成 `素材采集表.xlsx` 与 `素材缺口清单.md`
  3. 逐段检查:这一段的每个论点,有没有对应素材?
- **输出**:`素材采集表.xlsx`、`素材缺口清单.md`
- **退出条件**:拟写的**每个段落至少 1 条带来源的具体素材**。
  达不到的段落降级为占位(`【待补:具体事例】`)——
  **绝不允许用「学习刻苦、成绩优异」这类形容词把段落填满**(见「AI 味治理」)。

生成采集表:

```bash
PY="skills/office-layer/.venv/bin/python"
$PY skills/office-layer/scripts/xlsx_kit.py build \
    --spec 素材采集表.json --out 素材采集表.xlsx
```

`素材采集表.json` 结构(已实测):

```json
{"sheets": [{"name": "素材采集表",
  "header": ["编号", "素材项", "需要拿到什么", "来源", "对应段落", "状态"],
  "rows": [
    ["1", "课程与成绩", "课程名/学期/学时/选课人数/总评/班内排名", "成绩单或教务记录", "学业表现", "待补"],
    ["2", "具体项目", "项目名/起止/学生角色/任务范围", "立项书或任务书", "科研或竞赛能力", "待补"],
    ["3", "一次具体事件", "某次答辩或组会中的某个亮点(含场景细节)", "教师回忆或学生自述", "性格与团队协作", "待补"],
    ["4", "对比参照", "与同届学生的相对位置(前 X% / 第几名 / 近五年指导的 N 人中)", "教师判断,须可追溯", "综合推荐强度", "待补"],
    ["5", "量化指标", "时长/次数/数据量/性能提升/名次/获奖等级", "材料或记录", "科研或竞赛能力", "待补"],
    ["6", "反面素材", "需要如实反映的短板或保留意见(有保留推荐必填)", "教师判断", "综合推荐强度", "待补"]
  ]}]}
```

**素材采集表必含六类**:① 课程与成绩 ② 具体项目 ③ 具体贡献(学生独立做了哪一块)
④ **一次具体事件**(某次答辩的某个亮点 —— 这是全信最有区分度的一段)
⑤ 对比参照 ⑥ 反面素材(有保留推荐时不能空)。

### 阶段二 · 推荐强度定级(**教师决定,AI 只列证据**)

- **输入**:填好的素材表
- **动作**:按「推荐强度分级」表列出**候选级别 + 支撑证据 + 缺失证据**;AI 不下结论
- **输出**:定级记录(级别 + 依据 + 尚缺证据)
- **退出条件**:教师在三个级别中**显式选定**。未选定不得进入起草。
  **默认值是「推荐」,不是「强推」** —— 见「红线」第 3 条

### 阶段三 · 区分度设计(同批多人时**必做**)

- **输入**:同批各学生的素材表
- **动作**:一人一「标签」;核心事例去重;开篇关系去重(详见「区分度设计」)
- **输出**:`区分度对照表.md`(学生 × 核心事例 × 标签 × 开篇关系)
- **退出条件**:**没有两名学生共用同一核心事例**,且开篇的关系建立方式不重复

### 阶段四 · 起草

- **输入**:素材表 + 定级结果 + 区分度表 + 校方模板(若有)
- **动作**:
  1. 按「六类信件写法」中对应类型的结构逐段写
  2. 每写一句事实性陈述,都要能指回素材表编号;指不回去的**立刻改成占位**
  3. 涉及评价与结论的段落,插入 `【待教师确认:…】`
  4. 需要英文版时,不逐句直译,按「中英对照」的口径重写
- **输出**:`推荐信_<学生姓名>_draft.md`
- **退出条件**:段落级回溯检查通过 —— 每一段都能说出素材编号;
  所有无素材句都已变为 `【待补:具体事例】`;占位**只增不减**(不得为了让文章通顺而删掉占位)

### 阶段五 · 套话与雷同清理

- **输入**:`draft.md`(同批多份一起给)
- **动作**:跑自建扫描脚本,逐条改写;同批雷同处逐一换成该生自己的事例
- **输出**:`套话与雷同报告.md` + 修订稿
- **退出条件**:套话命中清零(或教师显式接受某条并说明理由);
  同批两两重合率 **< 0.10**(脚本判读口径);`blocked` 项必须清零

```bash
PY="skills/office-layer/.venv/bin/python"
$PY skills/student-recommendation/scripts/cliche_scan.py \
    推荐信_李明.md 推荐信_王芳.md 推荐信_张野.md \
    --out 套话与雷同报告.md
# 退出码 1 = 命中套话或雷同度过高,需改写后重跑;0 = 机器可判定项通过
```

### 阶段六 · 教师通读定稿(**强制,不可跳过**)

- **输入**:修订稿
- **动作**:
  1. 用 `docx_kit.py comment` 把待核对项**锚在原文对应句上**,师资打开 Word 就能看到批注气球
  2. 教师逐句核对每一处事实性陈述(分数、排名、项目角色、获奖名称、时间)
  3. 教师 resolve 全部批注,签署姓名与日期
- **输出**:`推荐信_<学生姓名>_待教师定稿.docx`(含 Word 原生批注)
- **退出条件**:**教师本人通读完毕并逐句确认**,批注全部 resolve。
  AI 不代签、不代按章、不代替教师做推荐决定

```bash
# 1) 常规稿(Markdown → DOCX,中文排版已处理)
$PY skills/office-layer/scripts/docx_kit.py md \
    --in 推荐信_李明.md --out 推荐信_李明_初稿.docx --title "推荐信"

# 2) 把待核对项锚到原文(anchor 必须与正文逐字一致,含标点)
$PY skills/office-layer/scripts/docx_kit.py comment \
    --in 推荐信_李明_初稿.docx --out 推荐信_李明_待教师定稿.docx \
    --comments 核对.json --author "AI 草稿(待教师核对)"

# 3) 自检:段落数 / 批注数 / 字数是否符合预期
$PY skills/office-layer/scripts/docx_kit.py inspect --in 推荐信_李明_待教师定稿.docx
```

`核对.json`(anchor 也可以直接锚在 `【待补:…】` 占位上,效果最好,已实测 2/2 命中):

```json
[
  {"anchor": "42 ms", "text": "【事实核对】请确认该测试数据来自实验记录,并注明测试环境。"},
  {"anchor": "【待补:具体事例", "text": "【待补素材】此段必须有具体事例,不得用形容词填充。"}
]
```

> `comment` 找不到锚点会进 `failed` 并**以退出码 2 结束** —— 这个非零退出码不要忽略。

### 阶段七 · 交付与敏感数据处理

- **输入**:教师定稿的 docx
- **动作**:生成交付说明;列出所有 `【待补】` 与 `【待教师确认】` 位置;
  提醒教师**删除中间文件**(转换产物、采集表内的学号与身份证号、批注草稿)
- **输出**:定稿 docx + `交付说明.md`
- **退出条件**:交付说明写明「本文件含学生个人信息,请注意保管」;
  教师确认定稿中已无遗留占位

## 素材采集表(阶段一展开)

写信前先向学生/自己收集素材。**没有素材就不写**,宁可留占位。六类必采:

| 素材类 | 具体要拿到 | 好素材长什么样 | 烂素材长什么样 |
|---|---|---|---|
| 课程与成绩 | 课程名、学期、学时、选课人数、总评、班内排名或百分位 | 「《数据结构与算法》120 人选修,总评 96,班内第 2」 | 「成绩优异」 |
| 具体项目 | 项目名、起止、学生角色、任务范围 | 「大创项目,负责索引模块,独立实现」 | 「参加过项目」 |
| 具体贡献 | 学生**独立**完成的哪一块、用了什么方法、解决什么卡点 | 「把查询耗时从 42 ms 降到 6 ms」 | 「表现很好」 |
| **一次具体事件** | 某次答辩/组会/实验中的某个亮点,含场景细节 | 「答辩时评委追问索引退化,他当场画图说明分裂策略」 | 「深受师生好评」 |
| 对比参照 | 与同届的相对位置 | 「近五年我指导的 23 名本科生中排前三」 | 「非常优秀」 |
| 反面素材 | 需如实反映的短板 | 「长期独立研究需更多训练」 | (空白,却说强推) |

**来源分级**(照 `EVIDENCE_MODEL.md`):`user-confirmed`(教师确认)>
`material-verified`(有材料佐证)> `【待补:…】`。
`model-inference`(AI 推测)**不得当作学生事实写进信里**(`EV-FACT-004`)。

## 推荐强度分级

| 级别 | 适用情形 | 中文语言特征 | 英文语言特征 | 硬禁区 |
|---|---|---|---|---|
| **强推** | 有明确排名/量化证据,且教师愿意无条件背书 | 给出排序或百分位;「我愿意推荐他到任何一所学校」;不加条件状语 | `I recommend him without reservation`;`one of the top 5% of students I have taught` | 拿不出排序依据时**不得**使用 |
| **推荐** | 认可,但不宜作最强排序 | 「我推荐该生攻读贵校硕士研究生」;支持明确但不作横向排名 | `I recommend him with confidence`;`I am glad to support his application` | 不得加「无条件」「最优秀」 |
| **有保留推荐** | 有真实短板必须先讲清 | **显式写出保留内容与适用范围**:「在……方面尚需锻炼,但在……方面可以胜任」 | `I recommend him with the following caveat: …` | **不得把有保留写成强推** |
| **不推荐 / 拒绝出具** | 教师判断不宜背书 | 可礼貌拒出:「我与该生接触有限,难以作出有分量的评价」 | `I do not feel I can write a strong letter` | 不出具负面意见时,也不得改为正面虚构 |

**这是诚信问题,单独强调**:推荐强度必须与事实相符。
把「有保留」写成「强推」,或者把「了解有限」写成「非常熟悉」,
一旦目标单位复核(现在很多学校会回访推荐人),受损的是推荐人的学术信誉,
且可能被认定为学术不端。**宁可写得平实,也不要写得漂亮。**
如果教师拿不准,标准动作是:**列出三级候选 + 各自需要的证据,让教师选**,AI 不替教师选。

## 区分度设计:同一批学生怎么不写重

这是本技能省事最多、也最容易翻车的一环。三个人以上一起写,不设计就必然雷同。

**四个动作**:

1. **一人一标签**:给每个学生定一个**唯一**的核心差异点(不是优点,是差异点)。
   例:甲=「自己找问题并解决」、乙=「把复杂事情讲清楚」、丙=「扛住高强度交付」。
2. **同一优点用不同事例表述** —— 这是核心方法:

| 优点 | 套话写法(禁止) | 学生甲的事例化 | 学生乙的事例化 |
|---|---|---|---|
| 学习能力强 | 学习能力强、基础扎实 | 3 周自学完课程未覆盖的凸优化前 5 章,并直接用于项目调参 | 两天内定位并修复了自己从未接触过的多线程竞态问题 |
| 抗压能力 | 吃苦耐劳、任劳任怨 | 竞赛答辩前 72 小时连续调试,最终按期提交 | 同期承担 3 门课的项目,仍按期交付全部模块 |
| 团队协作 | 团队协作能力强 | 主动接手队友未完成的模块,重写接口并补齐测试 | 组织 4 人分工,统一了代码规范,使合并冲突下降 |
| 表达沟通 | 沟通能力强 | 组会讲解论文时用一张图讲清对比基线,方案随即被采用 | 答辩中回答评委追问,当场画出索引分裂示意 |
| 动手能力 | 动手能力强 | 独立搭好实验平台,含数据采集与可视化全链路 | 把课程作业改造成可复用工具,被下一届继续使用 |

3. **开篇去重**:关系建立方式不能都一样。
   可用的开篇关系:任课教师 / 毕业设计导师 / 学科竞赛指导 / 大创项目指导 /
   班主任 / 实验室轮转 / 助教同事。**同批内每种关系只用一次**,自然就分开了。
4. **机器复核**:跑 `cliche_scan.py` 看两两重合率,`≥ 0.10` 逐对改写。

**诚实约束**:区分度设计是「**选不同的真实素材**」,不是「编造差异」。
如果两个学生确实高度相似,就换**证据维度**(一个写独立解决,一个写带动他人),
而**不是**给其中一个编一段没发生过的经历。

## 六类信件写法

### 1. 保研 / 考研推荐信(中文,600–1000 字,一页 A4 内)

按固定六段推进,**每段都要有具体事例,不许形容词堆砌**:

| 段 | 内容 | 必须写实的要素 | 反例(禁止) |
|---|---|---|---|
| 一 | **与被推荐人的关系与熟悉程度** | 课程名、学期、学时、选课人数;指导时长与频次 | 「我与该生很熟悉」 |
| 二 | **学业表现** | 具体课程 + 分数 + 排名/百分位 | 「成绩优异」 |
| 三 | **科研/竞赛能力** | 项目名、学生角色、方法、**量化结果**、卡点怎么解的 | 「有较强的科研潜力」 |
| 四 | **性格与团队协作** | **一次具体事件**(何时、何场合、做了什么、结果) | 「乐于助人、团结同学」 |
| 五 | **综合推荐强度** | 级别 + 排序依据 + 是否无条件 | 「强烈推荐」但无依据 |
| 六 | **联系方式** | 姓名、职称、单位、电话、邮箱、签名与日期 | 缺失(无法回访 = 可信度打折) |

**考研推荐信与保研的差别**:考研更侧重**学习能力、自学能力与方向匹配度**(因为要考),
可以写他自学了哪些考研范围外的内容、为什么选这个方向;
保研更侧重**已完成的科研训练与可塑性**,要有项目实证。

### 2. 出国留学推荐信(英文,400–600 words,一页)

结构:`Relationship & context` → `Academic performance` → `Research ability` →
`Personal qualities` → `Overall recommendation with ranking` → `Contact`。

**中英文体差异(必须照做)**:

| 维度 | 中文推荐信 | 英文推荐信 |
|---|---|---|
| 开篇 | 可先交代身份背景 | **第一段就要给出定位与关系强度**(`I have taught X for two years in a class of 120`) |
| 评价方式 | 可有整体性评价 | 忌整体性道德评价,**只给行为与结果** |
| 参照 | 常省略 | **必须有对比参照**:`ranked 2nd out of 120`、`top 5% of students I have taught` |
| 形容词 | 四字格可行(但要少) | **忌三连形容词**(`diligent, hardworking and helpful` 一律改写) |
| 量化 | 有则加分 | **近乎必须**:分数、名次、样本量、性能提升 |
| 长度 | 600–1000 字 | 400–600 words,**更短更直接,一段一个主张** |
| 时态 | 不涉及 | 叙述具体事实用过去时,给判断用现在时 |
| 落款 | 姓名+职称+单位+联系方式 | 同左,另注意网申系统要填推荐人邮箱(通常是**单位邮箱**) |

**留学推荐信常见硬伤(逐条自查)**:
① 中式赞美直译(`studies hard`、`noble character`)② 无对比参照
③ 复述成绩单(推荐信不该重复 CV 里已有的信息,要提供 CV 里没有的判断)
④ 形容词密度过高而事实为零 ⑤ 一段里塞三个主张 ⑥ 全信没有一处量化。

### 3. 求职推荐信 / 实习推荐信(300–500 字)

**核心是岗位匹配的能力举证**。做法:先把 JD 拆成能力项,再逐项找素材。

| JD 要求 | 学生对应素材 | 信中的举证句 |
|---|---|---|
| 熟悉 Python 数据处理 | (素材编号 3) | 「他用 pandas 处理过 10 万条日志,把清洗脚本从 40 分钟优化到 3 分钟」 |
| 有团队协作经验 | (素材编号 5) | 「在 4 人项目中负责接口层,主动合并了队友的两个冲突模块」 |
| 能承受项目节奏 | (素材编号 7) | 「竞赛前 72 小时连续调试并按期提交」 |

**找不到素材的 JD 项,留 `【待补:与 X 相关的经历】`,不要硬编。**
实习推荐信更短,重点写**可迁移能力**(学习速度、交付习惯、沟通),不必铺开学术表现。

### 4. 专家推荐(职称评审、项目评审、人才计划)

**同行专家推荐与师生推荐的写法差异**:

| 维度 | 师生推荐 | 专家推荐 |
|---|---|---|
| 推荐人定位 | 师长视角,评价学习与潜力 | **同行视角**,评价学术水平与成果价值 |
| 必须先立住资质 | 不必 | **必须**:本人研究方向、与申请人的学术关系、为何有资格评价 |
| 评价对象 | 学业表现 + 人品 | **学术贡献与学术判断**,不评价「人好不好」 |
| 语气 | 赞赏与期许 | **平级同行的专业判断**,克制、可证伪 |
| 对比参照 | 与同届学生比 | 与**同领域同龄学者**比 |
| 利益冲突 | 一般不写 | 模板有要求时**必须声明**(同单位、合作者、师生关系) |
| 结论句 | 推荐强度 | 明确的「推荐意见」结论句 + 逐项评分(若模板有) |

红线:**不得替申请人拔高成果等级**。「国际领先」「填补空白」这类表述
只有在能指回已核实证据、且限定对象/时间/范围时才允许克制使用(`LANGUAGE_MODEL.md` 的 `WR-STYLE-013`),
否则降级为「该成果在……方面有所推进」。

### 5. 证明类文书(在职、参会、指导关系、经费)

**格式规范与要素齐全**是全部要求。统一骨架:

```
标题(在职证明 / 参会证明 / 指导关系证明 / 经费证明)
抬头(致 XX 单位 或 To Whom It May Concern)
被证明人身份要素(姓名、工号/学号、单位、身份或职务)
证明事项(一句话讲清证明什么)
事实依据(依据什么材料或记录)
落款(单位名称、盖章、日期、经办人及联系方式)
```

各类要素表:

| 类型 | 必含要素 |
|---|---|
| **在职证明** | 姓名、身份(在职/在读)、起止时间、职务或岗位、在职状态、用途(如签证、贷款、报考) |
| **参会证明** | 会议全称、时间、地点、参会形式(口头报告/海报/主持/评审)、报告题目、主办单位 |
| **指导关系证明** | 指导教师、学生姓名、指导起止时间、指导内容(竞赛/毕设/大创)、项目名称与编号 |
| **经费证明** | 项目名称、项目编号、经费来源、金额、用途范围、是否已支出、支出区间 |

红线:证明类文书**只能证明依据范围内的事**。
没有学籍记录就不能开在读证明;没有项目立项书就不能写项目编号。
身份证号、银行账号等敏感项**只在用户明确要求且确有必要时出现**,并在交付说明里提示保管。

### 6. 邀请函 / 感谢信

**学术会议邀请函**:抬头(尊敬的 XX 教授)→ 受邀人身份与学术地位 →
会议名称/时间/地点 → 邀请事由与承担职责(主旨报告/分会主持/评审专家)→
费用说明(差旅、讲课费由谁承担 —— **必须写清,否则对方无法答复**)→
回执要求与截止日期 → 联系方式 → 落款与盖章。

**专家邀请函**(评审用)另需:评审范围与工作量、**保密要求**、
**回避要求**、报酬或致谢方式、联系人。

**合作感谢信**:具体感谢什么(**不能只写「感谢支持」**)→ 对方的具体贡献 →
对自己工作的实际影响 → 落款。
红线:**不得虚构未发生的合作内容**;感谢信里的每一件事都必须是真实发生的。

## 中英对照

**示例**(同一段事实,中文与英文的写法差异):

> **中文(保研推荐信 · 学业表现)**
> 李明是我在 2024 年春季学期《数据结构与算法》(72 学时,选课 120 人)课程的学生,
> 也是我指导的大学生创新训练项目成员,前后接触约 14 个月。该课程他总评 96 分,班内排名第 2;
> 项目里他负责索引模块,独立完成了基于跳表的索引结构实现。

> **英文(留学推荐信 · Academic performance)**
> I taught Li Ming in Data Structures and Algorithms (Spring 2024, 120 students). He finished the
> course ranked 2nd out of 120 with a score of 96. I have also supervised him for 14 months on an
> undergraduate research project, where he independently implemented a skip-list-based index.

**差异说明**:

1. **定位前置**:英文第一句就把「谁的课、多少人」给出,让参照系立刻成立;中文可以稍后补。
2. **排名与人数绑写**:英文必须 `2nd out of 120`,不能只写 `ranked 2nd`(没有分母就没有参照)。
3. **忌整体评价**:中文可写「表现突出」,英文**删掉**,直接给分数与名次。
4. **少用形容词**:中文「独立完成」可保留为 `independently implemented`,
   但不要叠加成 `independently, diligently and successfully`。
5. **时态分工**:`I taught` / `He finished` 用过去时(具体事实);
   `I recommend` / `He is` 用现在时(当下判断)。
6. **不逐句直译**:中英不是互译关系,是**两封不同的信**。字数、段落节奏、
   强调重点都要重新安排(英文更短、更直接)。

**反例对照**:

| 中文套话 | 错误直译(中式英文) | 应该改成 |
|---|---|---|
| 该生学习刻苦,成绩优异,乐于助人 | `This student studies hard, has excellent grades, and is willing to help others.` | `He ranked 2nd out of 120 in my course with a score of 96, and spent two weeks helping a classmate debug her project.` |
| 该生品学兼优 | `This student is excellent in both character and learning.` | 删。拆成一条成绩事实 + 一次具体协作事件 |
| 该生综合素质高 | `The student has high overall quality.` | 改为 2–3 项可举证能力,每项配事例 |
| 我强烈推荐 | `I very strongly recommend him!!!` | `I recommend him without reservation; he ranks among the top 5% of students I have taught.` |

## AI 味治理:推荐信最该删的套话

直接引用 `skills/awesome-benzi/references/LANGUAGE_MODEL.md` 的口径。

**判定一条通用判据 —— 「名字替换测试」**:
把这句话里学生的名字换成**任意一个学生**,如果句子仍然成立,**这句话就没有信息量,删掉**。

> 「该生学习刻苦、成绩优异、乐于助人。」→ 换成任何一个学生都成立 → **零信息量,删**。

**推荐信里最该删的套话清单**(完整词表与逐条改法见
`skills/student-recommendation/scripts/cliche_scan.py`,机器可直接扫):

| 类别 | 典型句子 | 依据 | 改法 |
|---|---|---|---|
| 零信息量评价 | 该生学习刻苦、成绩优异、乐于助人;品学兼优;综合素质高;表现突出;深受师生好评 | `WR-STYLE-024` 空泛判断 | 换成具体事例 + 数字 |
| 无据能力断言 | 具有较强的科研潜力;有较强的创新能力;基础扎实;动手能力强 | `WR-STYLE-024` | 换成本人已完成的动作与结果 |
| 礼节性填充 | 尊敬师长、团结同学、乐观开朗、积极向上 | 与能力无关且不可核验 | 直接删 |
| 无信息转承 | 值得注意的是、综上所述、总而言之、众所周知、不难发现、由此可见、不言而喻 | `WR-STYLE-010` | 删 |
| 简报与营销腔 | 赋能、抓手、闭环、底层逻辑、颗粒度、倒逼、深耕、助力、形成合力、全面提升 | `WR-STYLE-011` | 删,或改为直述做了什么 |
| 夸张副词 | 极其、极为、非常、最优秀、无人能及、天才、完美、无可挑剔、首屈一指 | `WR-STYLE-016` / `WR-STYLE-017` | 改为可核验的比较级 |
| 无据拔高 | 国际领先、世界一流、填补空白、开创性、史无前例 | `WR-STYLE-013` | 降级为「在……方面有所推进」,并限定范围 |
| 聊天残留 | 下面我将、以下是为你、希望对你有帮助、如需我继续 | `WR-STYLE-012` | 删 |
| 格式噪音 | 感叹号、连续三个句子同一开头、机械「首先…其次…最后…」 | `WR-STYLE-015` / `WR-STYLE-020` / `WR-STYLE-014` | 改为长短句交替的平实叙述 |

**机器清理**(阶段五):

```bash
$PY skills/student-recommendation/scripts/cliche_scan.py 推荐信_李明.md 推荐信_王芳.md \
    --out 套话与雷同报告.md
```

输出三部分:**套话命中明细**(逐条给改法)、**同批雷同度**(两两重合率 + 判定)、
**名字替换测试候选句**。退出码 1 表示需要改写后重跑。

> 机器只做**可判定**的部分。通过不等于合格 ——
> 事实核验与推荐强度定级**必须由教师完成**。

## 产出物

| 文件 | 内容 | 生成方式 |
|---|---|---|
| `素材采集表.xlsx` | 六类素材 + 来源 + 对应段落 + 状态 | `xlsx_kit.py build` |
| `素材缺口清单.md` | 还缺哪些事实,需向学生索要 | 手写 |
| `区分度对照表.md` | 同批学生 × 核心事例 × 标签 × 开篇关系 | 手写 |
| `推荐信_<姓名>_draft.md` | 草稿,含全部 `【待补:…】` | 手写 |
| `套话与雷同报告.md` | 套话命中 + 雷同度 + 替换候选 | `cliche_scan.py` |
| `推荐信_<姓名>_初稿.docx` | 排版稿 | `docx_kit.py md` |
| `推荐信_<姓名>_待教师定稿.docx` | **含 Word 原生核对批注**,教师逐条 resolve | `docx_kit.py comment` |
| `推荐信_<姓名>_EN_draft.docx` | 英文版(需英文时) | `docx_kit.py md` |
| `证明_<类型>_<姓名>.docx` | 证明类文书,要素齐全 | `docx_kit.py spec` |
| `邀请函_<会议名>.docx` / `感谢信_<对象>.docx` | 对外文书 | `docx_kit.py md` |
| `交付说明.md` | 占位清单 + 敏感信息提示 + 定稿指引 | 手写 |

`spec` 模式可留**人工确认位**(`placeholder` 字段会在该节末尾输出斜体提示行,已实测):

```json
{"title": "推荐信",
 "subtitle": "(初稿·AI 起草,未经教师定稿不得使用)",
 "sections": [
   {"heading": "一、与被推荐人的关系与熟悉程度",
    "paras": ["我指导【待补:学生姓名】共【待补:月数】个月……"]},
   {"heading": "五、综合推荐强度",
    "paras": ["【待教师确认:推荐强度 = 强推 / 推荐 / 有保留推荐】"],
    "placeholder": "【待教师确认:上述每一句事实性陈述是否属实;确认后方可署名】"}
 ]}
```

## 红线

1. **绝不虚构学生的经历、成果、排名、事迹。**
   推荐信造假是**严重学术不端**,且会**连累推荐人信誉**(署名的是教师本人,
   目标单位回访推荐人是常规操作)。凡是素材表里没有的事实,一个字都不写。
2. **没有具体素材时留 `【待补:具体事例】`,不得用形容词填充。**
   「该生学习刻苦、成绩优异」这类句子在信息量上等于空白,
   而它制造了「已经写了」的假象,比留白更危险。
3. **推荐强度必须与事实相符,不得拔高。**
   不得把「有保留推荐」写成「强推」;不得把「了解有限」写成「非常熟悉」;
   不得在无排序依据时写「最优秀」。**这是诚信问题。**
4. **学生个人信息本地处理。** 成绩、学号、身份证号、联系方式只在本机使用,
   不上传、不外发;中间文件(采集表、转换产物、批注草稿)在任务结束后提醒教师删除;
   交付说明里必须写明「本文件含学生个人信息,请注意保管」。
5. **推荐信是署名文书,教师本人必须通读并定稿,AI 只出草稿。**
   必须明确要求教师**逐句确认每一处事实性陈述**(分数、排名、角色、获奖名称、时间)。
   AI 不代签、不代按章、不代替教师作出推荐决定。
6. **不代写学生本人的文书。** 个人陈述(PS/SOP)、自荐信、简历正文
   是学生自己的材料,一律不写、不润色成「学生口吻的成品」。
7. **不伪造签章、日期与文号。** 证明类文书只出正文草稿,盖章与编号由单位办理;
   没有依据的记录(未立项的项目编号、未开具的证明事项)一律留占位。
8. **证明类文书不得超出依据范围下结论。**
   没有学籍记录不开在读证明,没有立项书不写项目编号。
9. **不替代教师的判断。** 推荐强度、是否出具、如何写保留意见,全部由教师决定;
   AI 只负责列证据、出草稿、查套话。

## 自检清单

交付前逐项过:

- [ ] intake 九项是否**一次性问完**(推荐类型/目标单位/学生信息/已知素材/模板/截止/语言/强度/同批人数)
- [ ] 素材采集表是否六类齐全,每条素材是否标了**来源**
- [ ] 是否**存在无素材的段落**?如有,是否已留 `【待补:具体事例】` 而**没有**用形容词填充
- [ ] 推荐强度是否为**教师显式选定**(而不是默认成「强推」)
- [ ] 同批多人时,是否做了**区分度设计**,核心事例有无重复
- [ ] `cliche_scan.py` 是否跑过;套话命中是否清零;同批重合率是否 < 0.10
- [ ] 每一段是否都能**回溯到素材编号**(无来源句是否已占位)
- [ ] 中英文要求是否满足;英文版是否是**重写**而非逐句直译;是否有对比参照与量化
- [ ] 信件是否**六要素齐全**(保研类:关系/学业/科研/性格/强度/联系方式)
- [ ] 是否用 `docx_kit.py comment` 把待核对项锚到了原文
- [ ] 是否 `inspect` 过(段落数/批注数/字数符合预期)
- [ ] **教师是否已通读并逐句确认每一处事实性陈述**(未确认不得交付为定稿)
- [ ] 交付说明是否写明「含学生个人信息,请注意保管」与中间文件删除提醒
- [ ] 是否明确告知教师「**这是初稿,请重点核对分数、排名、项目角色、获奖名称、时间**」

Files in this skill

  • SKILL.md36.3 KB
  • scripts/cliche_scan.py17.7 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.