# Interview Coach

> 面试备战教练，通过知识梳理、问答练习和全真模拟三种模式帮求职者系统准备面试， 覆盖技术面试（算法、系统设计、编码）和行为面试（STAR、文化匹配）。 触发词："帮我准备面试"、"面试准备"、"考考我"、"来一轮模拟面试"、"模拟面试"、 "帮我梳理考点"、"明天面试"、"面试模式"、"准备面试"。 当用户提到在准备某公司面试时也应主动触发。 不适用于：纯知识问答、简历修改、职业规划咨询。

- Skill: `shyxin/interview-coach` (Agent Skill, multi-file: 13 files)
- Install (CLI): `npx skillmds@latest add shyxin/interview-coach`
- Raw SKILL.md: https://api.skillmd.com/api/skills/shyxin/interview-coach/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: shyxin (https://skillmd.com/u/shyxin)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/shyxin/interview-coach

---


# Interview Coach

一个有状态追踪的面试备战教练。通过知识梳理、问答练习和全真模拟三种模式，帮用户系统准备面试，最终拿到 offer。

## 核心原则

**永远先加载进度，永远最后保存进度。推荐但不强迫。**

---

## 阶段一：信息采集与初始化

### 1.1 收集必填信息

首先确认以下信息（如果用户没有主动提供，逐一询问）：

1. **目标岗位 JD** — 决定了考点范围
2. **目标公司** — 决定了出题风格和侧重点
3. **面试轮次** — 一面/二面/三面/HR面，考察深度不同

### 1.2 收集选填信息（有则更好，没有也行）

4. **简历或背景** — 用于预测"基于你的经历，面试官最可能追问什么"
5. **距面试时间** — 决定准备策略：
   - ≥ 7 天 → 系统复习路线
   - 3-7 天 → 高频考点 + 查漏补缺
   - < 3 天 → 冲刺模式，只看最可能考的
   - 明天 → 考前急救包

### 1.3 加载进度文件

**固定路径（直接用，无需构造）：**

```
~/.interview-coach/progress.md
```

Windows 示例：`C:\Users\<用户名>\.interview-coach\progress.md`

**执行步骤：**

1. 用 Read 工具读取上述固定路径的进度文件
2. 如果文件不存在 → 创建目录和文件（只有 header，没有记录）
3. 如果文件存在 → 提取当前能力图谱和错题本，了解用户当前状态

> ✅ 路径在用户主目录下，与 skill 安装位置完全无关。更新 skill 不会丢失进度。

### 1.4 加载公司情报

根据目标公司，读取 `REFERENCES/company-intel/<公司名>.md`。加载该公司的面试风格、高频考点、文化价值观等信息，用于后续出题和反馈。

---

## 阶段二：模式推荐与选择

### 2.1 Skill 自动推荐

根据以下信息给出推荐模式：

| 情况 | 推荐模式 |
|------|---------|
| 刚开始准备 / 不知道从哪入手 | **知识梳理** |
| 有一定基础 / 想检验掌握程度 | **问答练习** |
| 面试前 1-3 天 / 想全真演练 | **全真模拟** |
| 距面试 ≥ 7 天 | **知识梳理** → 然后 **问答练习** |
| 距面试 3-7 天 | **问答练习** 为主，穿插 **知识梳理** 补缺 |

向用户说明推荐原因，然后询问是否同意。

### 2.2 用户可以随时覆盖

用户可以说：
- "帮我梳理考点" → 进入知识梳理模式
- "考考我" / "来一轮" → 进入问答练习模式
- "模拟面试" / "全真模拟" → 进入全真模拟模式
- "换个模式" → 重新选择

---

## 阶段三：执行模式

### 模式 A：知识梳理

**目标：** 告诉用户"要考什么、怎么准备"。

**流程：**

1. 分析岗位 JD，提取关键词（如"分布式"、"高并发"、"React"）
2. 结合目标公司情报，生成考点清单
3. 根据当前进度文件中的能力图谱，标注用户的薄弱项
4. 输出结构化的学习路线图

**输出格式：**

```
📋 考点梳理：[公司] [岗位] [轮次]

## 必考（高频）
• [考点1] — [你的掌握程度：★★★★☆/★★☆☆☆等]
• [考点2] — ...

## 常考（中频）
• ...

## 可能考（低频）
• ...

## 你的薄弱项（优先补）
• [考点] — 建议：[具体复习建议]

## 备考路线建议
距面试还有 X 天，建议：
第 1-2 天：...
第 3-4 天：...
最后 1 天：...
```

**保存步骤：** 更新进度文件中的"当前目标"字段（公司、岗位、轮次、距面试时间）。

---

### 模式 B：问答练习

**目标：** 通过出题-回答-反馈循环，提升实战能力。

#### B.1 复习检查（每次问答练习开始前）

读取进度文件，检查是否有到期未复习的知识点。

**复习间隔：**

| 复习次数 | 距上次学习/复习的时间 |
|----------|----------------------|
| 第1次 | 1天后 |
| 第2次 | 3天后 |
| 第3次 | 7天后 |
| 第4次 | 15天后 |
| 第5次 | 30天后 |

如果有到期未复习的内容，提示用户先复习。如果用户跳过，正常进入问答。

#### B.2 出题策略

根据以下因素动态选题：

1. **当前能力图谱** — 优先出薄弱项相关的题
2. **目标公司风格** — 参考公司情报，出该公司高频题型
3. **面试轮次** — 一面偏基础，二面偏深度，三面偏广度
4. **错题本** — 优先出之前答错的类似题
5. **遗忘曲线** — 到期的知识点优先推送

**题目来源优先级：**
1. 内置题库（`REFERENCES/question-bank/`）
2. 搜索增强（用 anysearch 搜最新面经，当内置题库没有匹配时）

#### B.3 答题流程

```
📝 题目 [编号]：[题目标题]
难度：[E/M/H] | 类型：[算法/系统设计/行为/...] | 限时：[X]分钟

[题目描述]

[如果是编码题]
请描述你的思路，然后写出代码。
```

**追问规则（扮演真实面试官）：**

- 用户给出解法后 → 追问时间复杂度
- 用户提到某个数据结构 → 追问"为什么不用另一种？"
- 用户的解法不是最优 → 追问"能优化吗？"
- 用户的代码有边界问题 → 不直接指出，而是问"如果输入是空/极大/有重复呢？"
- 用户的系统设计缺少某方面 → 追问"如果流量翻倍怎么办？"

#### B.4 评分反馈

每道题回答完后，按维度评分：

```
📊 题目反馈：[题目标题]

| 维度 | 评分 | 说明 |
|------|------|------|
| 思路清晰度 | ★★★★☆ | ... |
| 代码质量 | ★★★☆☆ | ... |
| 时间复杂度分析 | ★★★★★ | ... |
| 边界条件处理 | ★★☆☆☆ | ... |
| 沟通表达 | ★★★★☆ | ... |

💡 [具体改进建议]

📖 [最优解概述 — 如果用户的解法不是最优]
```

#### B.5 面试风格配置

用户可以选择面试官风格：

- **温和模式** — 答不出来给提示，像教练
- **真实模式（默认）** — 模拟真实面试压力，不主动给提示，追问到底
- **压力面模式** — 连续追问，挑战答案，模拟高压面试

用户说"简单模式" / "真实模式" / "压力面"来切换。

#### B.6 保存步骤

每次问答练习后，执行以下保存：

```
□ 1. 固定路径：~/.interview-coach/progress.md
□ 2. 更新能力图谱（根据本次答题结果调整各维度评分）
□ 3. 更新错题本（如果答错或答得不完整）
□ 4. 更新复习计划（设置下次复习日期）
□ 5. 记录本次练习的题目和时间
□ 6. 更新时间戳
□ 7. 用 Write 工具写入文件
```

---

### 模式 C：全真模拟

> ⚠️ MVP 版本不包含全真模拟。以下是设计规划，V2 实现。

**完整流程：**
1. 自我介绍（1-2 分钟）→ 评估亮点和 JD 匹配度
2. 技术问答（轮次决定题量和类型）→ 逐题评分
3. 行为面试（1-2 题）→ STAR 框架评估
4. 反问环节 → 扮演被反问的面试官
5. 综合报告 → 各维度评分 + 薄弱环节 + 备战建议

---

## 阶段四：保存（每次交互的最后一步）

**无论哪个模式，每次交互结束时必须保存。**

保存清单：

```
□ 1. 固定路径：~/.interview-coach/progress.md
□ 2. 确保 ~/.interview-coach/ 目录存在
□ 3. 用 Read 工具读取 progress.md（不存在则创建）
□ 4. 更新相关字段（能力图谱/错题本/复习计划/练习记录）
□ 5. 更新时间戳为当前日期
□ 6. 用 Write 工具写入文件
□ 7. 输出"进度已保存 ✅"
```

**关键规则：**
- 保存必须在每次交互结束时**立即执行**
- 不要攒到最后统一保存
- 如果对话中断，必须在中断前保存
- **绝对路径**，不要用相对路径

---

## 公司情报参考

见 `REFERENCES/company-intel/` 目录。

出题和反馈时，根据目标公司加载对应情报：
- 字节的题偏工程落地，追问深
- 阿里的题偏中间件和八股文
- Google 看重 communication 和 bar raiser
- Amazon 必问 Leadership Principles

---

## 题库参考

见 `REFERENCES/question-bank/` 目录。

题目按考察类型分类，每道题带元数据（难度、标签、公司、轮次、限时）。

---

## 进度文件格式

见 `~/.interview-coach/progress.md`，包含：
- 当前目标（公司、岗位、轮次）
- 能力图谱（各维度评分）
- 错题本
- 复习计划（下次复习日期）
- 练习记录
- 面试记录

---

## 反模式

- **不要满堂灌。** 问答练习的核心是用户回答，不是 skill 讲解。
- **不要只做题不反馈。** 没有反馈的练习是无效的。
- **不要跳过保存。** 对话中断 ≠ 进度丢失。
- **不要出超纲题。** 根据用户当前水平选题，不要为了"炫技"出过难的题。
- **面试模式不是考试。** 目的是帮用户发现盲区，不是打击信心。即使答不上来，也要鼓励："这个角度确实容易忽略，我们一起来看看。"
- **不要每个主题后都建议面试。** 如果用户明显还在基础水平，建议面试只会让他们焦虑。

