Agent skill

defense-committee

Simulate an academic defense committee with multiple mentors. | 多导师答辩委员会模拟,支持开题/中期/毕业答辩

Stars 1
Forks 0

Install this agent skill to your Project

npx add-skill https://github.com/Azurboy/Professor_skill/tree/main/defense-committee

SKILL.md

Language / 语言: 自动检测用户语言,始终用用户语言回复。


触发方式

  • /defense-committee — 交互式启动,引导配置委员会
  • /defense-committee --mode 开题 — 直接指定开题模式
  • /defense-committee --mode 中期 — 直接指定中期检查模式
  • /defense-committee --mode 答辩 — 直接指定毕业答辩模式
  • /defense-committee --resume {session-id} — 继续上次答辩

Phase 1:配置答辩委员会

Step 1.1:确定模式

问用户(若未通过参数指定):

这是一场什么类型的答辩?

A) 开题报告 — 验证选题可行性,规划研究方案
B) 中期检查 — 汇报研究进展,暴露潜在风险
C) 毕业答辩 — 完整答辩演练,获取最终评审

Step 1.2:组建委员会

问用户:

请提供答辩委员名单(3-5 人为宜)。

格式:姓名,学校/机构(每行一位)

示例:
张三,清华大学计算机系
李四,北京大学信息科学学院
王五,中国科学院计算技术研究所

如果某位委员已经通过 /create-mentor 创建过,直接写 slug 即可:
已有:zhang-san
新增:李四,北京大学

Step 1.3:批量导入委员(核心功能)

收到名单后,并行处理每位委员

对每位委员 {name, institution}:

IF mentors/{slug}/ 已存在:
  → 直接复用,跳过爬取
  → 显示:"✅ {name}(已有档案)"

ELSE:
  → 调用 scraper.py 爬取学术信息(复用 create-mentor 的工具)
  → 生成精简版 persona.md + academic.md(不询问聊天记录)
  → 存入 mentors/{slug}/
  → 显示:"🔍 {name}(新导入,爬取中...)"

精简版 persona.md 的生成策略(无聊天记录时):

  • Layer 0:从学科规范推断底线(计算机领域 vs 人文领域 vs 理工科)
  • Layer 1-2:从论文摘要语言风格推断
  • Layer 3-5:使用领域通用模板,标注"基于公开数据推断,可纠偏"

批量爬取完成后显示摘要:

委员会已就绪:

👨‍🏫 张三(清华大学)—— 主席 · 机器学习 · h-index: 32
👩‍🏫 李四(北京大学)—— 委员 · 自然语言处理 · h-index: 18
👨‍🏫 王五(中科院)  —— 委员 · 计算机视觉 · h-index: 25

模式:毕业答辩

Step 1.4:导入论文

请粘贴你的论文摘要(必须)+ 目录大纲(可选):

摘要会帮助委员了解你的工作,目录会让提问更有针对性。

保存到 committees/{session-id}/config.json


Phase 2:答辩人陈述

提示:

答辩开始。请你用 3-5 分钟介绍你的研究工作。

建议包括:
- 你研究的问题是什么(Why)
- 你用了什么方法(How)  
- 你得到了什么结果(What)
- 这个工作的意义是什么(So what)

介绍完成后,委员们将开始提问。

等待用户输入陈述内容。

收到后,显示:

[委员会]
好的,感谢你的介绍。委员们将开始提问。

Phase 3:质询轮

提问顺序与规则

  1. 轮次制:每轮每位委员提 1-2 个问题,共 2-3 轮
  2. 主席先行:第一轮由主席开场
  3. 接话机制:每位委员看到前一位的问题和用户的回答,可以追问、补充或切换角度
  4. 模式感知:问题类型根据答辩模式自动调整(见下方)

各模式提问策略

开题报告模式

委员关注点:
- 选题动机:为什么这个问题值得研究?现有研究有哪些空白?
- 文献综述:你对领域的掌握够不够?遗漏了哪些重要工作?
- 研究方案:方法可行吗?时间规划合理吗?
- 预期贡献:如果做出来,贡献是什么?

语气:建设性、探索性,帮助完善方案
典型问句:"你如何界定…" / "有没有考虑过…" / "这个方法和X相比优势在哪里?"

中期检查模式

委员关注点:
- 进展核查:计划里说要做X,做了吗?做到什么程度?
- 问题暴露:遇到了什么困难?怎么解决的?
- 方向确认:有没有偏离原来的方向?为什么?
- 风险预警:后续最大的风险是什么?

语气:检查式、追问式,不放水
典型问句:"你的开题报告说…,现在的进展是?" / "这个结果和预期差距挺大的,原因是?"

毕业答辩模式

委员关注点:
- 贡献审查:你的创新点是什么?和已有工作的本质区别?
- 实验设计:实验够不够严谨?对照组设置合理吗?
- 局限性:你的工作有什么局限?你自己清楚吗?
- 延展性:这个工作能往哪里走?

语气:正式、挑战性,标准最高
典型问句:"你提到贡献X,这和[某论文]有什么区别?" / "如果我把这个条件换一下,你的结论还成立吗?"

委员发言格式

---

**[张三教授(主席)]**

[结合自身研究方向(PART C)+ 论文内容 + 模式上下文,提出具体问题]

---

**[李四教授]**

([接上一个问题 / 切换新角度])[提问]

---

**[王五教授]**

[提问,可能和前两位有分歧或补充]

---

接话逻辑

委员 B 在委员 A 提问后,可以:

  • 追问(接张三的问题)那如果…呢?
  • 补充我想补充一点,除了张三说的X,你的Y部分…
  • 分歧我和张三的看法稍有不同,我觉得…
  • 转换张三那边的问题先留着,我想问你另一个方面…

Phase 4:委员讨论(仅委员发言)

用户陈述完所有回答后,触发讨论阶段:

[答辩委员会内部讨论]

请稍候,委员们正在进行评议...

然后模拟真实讨论场景,委员之间有真实分歧和交锋:

---

**[张三教授(主席)]**
总体来说工作量是够的。但我对方法论部分还有疑虑——他解释第三章的时候有点含糊。

**[李四教授]**
我同意方法这块需要在论文里写清楚。不过我觉得他的 RQ2 回答挺好的,思路清晰。

**[王五教授]**
实验结果那里——他说提升了 3.2%,但没说 baseline 是什么配置,这在答辩里不太够。

**[张三教授(主席)]**
好,那我们的意见是:通过,但需要修改。重点是方法论描述和实验配置说明。

---

Phase 5:最终裁定

每位委员给出个人评价,主席宣布结论:

开题报告裁定

**最终意见**

[张三教授]:选题有意义,文献梳理还需补充近三年工作。建议:...

[李四教授]:方法可行,但时间规划过于乐观。建议:...

[王五教授]:同意开题,关注点在于数据获取的可行性。建议:...

---
[主席宣布]:开题通过 / 修改后通过 / 暂不通过

主要修改要求:
1. ...
2. ...

中期检查裁定

**中期检查结果**

整体进展:[超前 / 正常 / 略有滞后 / 严重滞后]
主要问题:...
后续要求:...

结论:通过 / 有条件通过(需在X时间内完成Y)/ 需重大调整

毕业答辩裁定

**答辩评审结果**

[张三教授]:[个人评语,保持人物风格]
[李四教授]:[个人评语]
[王五教授]:[个人评语]

---
综合评定:优秀 / 通过 / 修改后通过(小修 / 大修)/ 不通过

主要修改意见(如有):
1. ...
2. ...

恭喜你完成答辩。/ 请在X周内完成修改后再次提交。

存档

答辩结束后,写入以下文件:

committees/{session-id}/
├── config.json      ← 委员名单、模式、论文信息、时间
├── transcript.md    ← 完整问答记录(Phase 2-5 的全文)
└── verdict.md       ← 最终评审意见摘要

verdict.md 格式:

markdown
# 答辩评审意见
**日期**:2026-04-02  
**模式**:毕业答辩  
**委员**:张三(主席)、李四、王五  

## 综合结论
修改后通过(小修)

## 主要意见
1. 方法论描述需要更清晰...
2. 实验 baseline 配置需说明...

## 各委员评语
- 张三:...
- 李四:...
- 王五:...

演化与复用

  • 同一批委员可以用于多次答辩(开题 → 中期 → 毕业,档案复用)
  • 使用 --resume {session-id} 可以继续一场未完成的答辩
  • 已导入的委员存入 mentors/,下次直接复用,不重新爬取

实现细节

依赖

复用 create-mentor/scraper.py(批量导入时调用):

bash
# 对每位新委员并行执行
python3 ~/.claude/skills/create-mentor/scraper.py \
  "{name}" "{institution}" "" \
  "mentors/{slug}/raw_data.json"

Session ID 生成

python
import datetime, hashlib
ts = datetime.datetime.now().strftime("%Y%m%d-%H%M%S")
session_id = f"defense-{ts}"

精简 Persona 生成(无聊天记录时)

不询问用户,直接从公开数据推断,在 persona.md 顶部标注:

markdown
> ⚠️ 此画像基于公开学术数据自动生成,未经聊天记录校准。如发现不准确,
> 可通过 `/mentor-append {slug}` 补充信息,或在答辩中直接说"这个问题他不会这样问"来实时纠偏。

Expand your agent's capabilities with these related and highly-rated skills.

mattpocock/skills

setup-pre-commit

Set up Husky pre-commit hooks with lint-staged (Prettier), type checking, and tests in the current repo. Use when user wants to add pre-commit hooks, set up Husky, configure lint-staged, or add commit-time formatting/typechecking/testing.

111,310 9,758
Explore
mattpocock/skills

edit-article

Edit and improve articles by restructuring sections, improving clarity, and tightening prose. Use when user wants to edit, revise, or improve an article draft.

111,310 9,758
Explore
mattpocock/skills

git-guardrails-claude-code

Set up Claude Code hooks to block dangerous git commands (push, reset --hard, clean, branch -D, etc.) before they execute. Use when user wants to prevent destructive git operations, add git safety hooks, or block git push/reset in Claude Code.

111,310 9,758
Explore
mattpocock/skills

migrate-to-shoehorn

Migrate test files from `as` type assertions to @total-typescript/shoehorn. Use when user mentions shoehorn, wants to replace `as` in tests, or needs partial test data.

111,310 9,758
Explore
mattpocock/skills

scaffold-exercises

Create exercise directory structures with sections, problems, solutions, and explainers that pass linting. Use when user wants to scaffold exercises, create exercise stubs, or set up a new course section.

111,310 9,758
Explore
mattpocock/skills

obsidian-vault

Search, create, and manage notes in the Obsidian vault with wikilinks and index notes. Use when user wants to find, create, or organize notes in Obsidian.

111,310 9,758
Explore

Didn't find tool you were looking for?

Be as detailed as possible for better results