| name | swcc-mock |
| description | Use when the user wants a mock interview / timed simulated exam over a topic, not a guided study session. 触发:「模拟面试」「mock」「面我一次」「来场模拟」「模拟考」「mock interview」「考一套」。 |
| argument-hint | [topic] [level] |
| user-invocable | true |
swcc · mock — 大厂业务研发岗模拟面试
跨节点连续出题 + 综合评分报告。一气呵成地考一整套,最后给分数、亮点、改进建议。默认定位是大厂业务研发岗面试:题目以场景/实践/选型为主,概念题为辅,避免纯源码细节和书本背诵。
开始前先读:
${CLAUDE_PLUGIN_ROOT}/skills/_shared/data-contract.md(落盘格式、大文件分块写、stats/weakPoints)
${CLAUDE_PLUGIN_ROOT}/skills/_shared/mock-rubric.md(题型配比、评分、回写、业务研发视角规则)
本技能会写:新增一份 mock-sessions 报告,并回写 progress.json 的 weakPoints 与 stats。
参数:$ARGUMENTS —— 可选 topic(默认 activeTopic)、可选 level(默认该专题 frontmatter 的 level)。
核心原则
- 先连续作答,再统一评分。 像真面试:一题接一题问完,中途只简短承接、不长篇点评;全部答完后一次性出报告。
- 评分由独立子智能体做。 不靠主对话主观印象;按 mock-rubric 客观打分。
- 抽样,不重定节点掌握度。 一场面试覆盖有限,只回写 weakPoints + 计一次 stats,不直接改各节点 mastery。
- 题型随专题 kind。 算法/实操题仅
kind: coding 且 level ≥ p7 出;conceptual 专题不出算法题。
- 建议用时,不真倒计时。 每题标「建议 X 分钟」即可。
- 业务研发视角。 优先考"业务代码里怎么用、怎么踩坑、怎么做取舍";avoid 纯源码细节、纯事实记忆。
subagent 纪律
本技能 stage 3 的评分由独立子智能体完成,主对话与该子智能体都必须遵守以下纪律,避免临时联网导致评分失真或输出格式错误。
- 工具权限
- 评估子智能体严禁使用 WebSearch / WebFetch;它只能读取本场完整 Q&A 文本与
mock-rubric.md。
- 主对话在执行
mock 期间默认也不调用 WebSearch / WebFetch;专题材料、题目、评分全部来自本地 knowledge-tree / knowledge-system / progress / references。
- 输入来源
- 子智能体输入仅限:本场模拟面试的完整题目 + 用户作答、
mock-rubric.md。
- 禁止为某道题临时上网查答案、查文档或查文章。
- 输出契约
- 子智能体只评估、不写文件,严格按
mock-rubric.md 第五节返回 JSON:
totalScore:总分
questionCount:总题数
typeDistribution:题型分布(concept / scenario / algo)
byType:各题型实际得分
items:逐题得分与点评
weakConcepts:薄弱概念列表
advice:改进建议
- 不得返回 Markdown 报告、不得自行写
mock-sessions/ 或 progress.json。
- 结果校验
- 主对话收到子智能体输出后,先检查是否包含
http(s):// 链接、未提供的外部网页/文章引用、或 "according to web / article / online / 网上 / 网页" 等表述。
- 若出现上述痕迹,视为违规联网,丢弃该输出并按评估失败处理。
- 失败回退
- 若 Agent 调用失败,或输出格式不符,或校验发现联网痕迹 → 暂停报告生成。
- 不向
mock-sessions/ 写报告,不回写 progress.json。
- 向用户说明「评估暂不可用,本次未写入,请稍后重试
/swcc-mock」,然后停止。
流程
1. 加载 & 选题篮
- topic 缺省 → activeTopic(缺失按数据契约第九节兜底)。读
knowledge-tree.md(取 level、kind,以及每 ## 子主题的「核心问题」「本章考察点」)、knowledge-system.md、progress.json、references.json。
- 读全局
learner-profile.md(若存在),据其中风格偏好调整出题/点评风格——只调风格,不放松题型配比与独立评分纪律。见 data-contract 第十四节。
- 按 mock-rubric 组卷:
- 偏向 weakPoints 与低 mastery 节点(查漏) + 主干高频点(覆盖)。
- 题型配比:场景/实践/选型题 ≥ 70% 总题数(
kind: conceptual 可降至 ≥ 50%),且 ≥ 概念题数量。
- 算法/实操题仅
kind: coding 且 level ≥ p7 时保留,否则省略。
- 每题按业务研发视角重构:场景、线上排查、技术选型、系统设计取舍、项目经验追问。
- 判断规则:worth assessing if (1) 业务代码因不理解可能写出性能/稳定性/可维护性问题;(2) 理解它可帮助日常编码做更好取舍/设计。avoid 纯源码细节、纯事实记忆。
宣布:
🎤 模拟面试:<topic>(level <level>,kind <kind>)
题型:业务研发岗面试,以场景/实践/选型题为主
预计 <N> 题,建议总时长 ~<n> 分钟
开始后我会一题题问,全部答完再统一给报告。
2. 连续作答
- 一题一题问,每题标注题型 + 建议用时。用户答完只做简短承接(「收到,下一题」),不展开点评——把点评留到报告。
- 用户中途要求看进度/跳过 → 允许跳过(记 0 分),不强制。
3. 派评估子智能体评分
全部答完后,用 Agent 工具把整场题目与作答 + mock-rubric 交给评估子智能体。向其明确重申 subagent 纪律:
- 禁用 WebSearch / WebFetch;只能基于本场 Q&A 文本与
mock-rubric.md 评分,禁止临时联网查答案。
- 只评估、不写文件;严格按
mock-rubric.md 第五节返回 JSON(totalScore、questionCount、typeDistribution、byType、items、weakConcepts、advice)。
- 输出中不得出现
http(s):// 链接、未提供的外部网页/文章引用、"according to web / article / online / 网上 / 网页" 等表述。
主对话收到结果后执行校验:
- 检查 JSON 是否包含必需的七个字段。
- 检查内容是否出现联网痕迹(URL、外部文章引用、"网上/网页" 等)。
- 若 Agent 调用失败、返回格式错误、或发现联网痕迹,暂停报告生成:不写
mock-sessions/、不回写 progress.json,告知用户「评估暂不可用,本次未写入,请稍后重试 /swcc-mock」,然后停止。
4. 写 mock 报告(分块)
按数据契约第十二节,在 mock-sessions/<时间戳>.md(时间戳 date +%Y-%m-%d-%H-%M-%S)分块写:先骨架,再按实际题型 Edit 追加。结构参考 mock-rubric 第六节,按本场实际出现的题型动态列出,并注明题数与题型分布。
5. 回写 progress.json
- weakConcepts → weakPoints:逐条追加(node/concept/mastery/createdAt=今天/nextReview 按艾宾浩斯 reviewCount=1/reviewCount=0/consecutivePass=0;已存在同概念则更新 mastery、不重复加)。
stats:totalReviewCount += 1、totalReviewTime 加本场估时、全局 streak、lastReviewDate=今天。
- 不改各节点 mastery / status。
6. 输出摘要
🎤 模拟面试报告 总分 <totalScore>/100
本场 <N> 题(概念 <x> / 场景/实践/选型 <y> / 算法/实操 <z>)
🔴 新增/加重薄弱点:<列表>
💡 改进建议:<前 2 条>
📁 报告:~/.study-with-cc/topics/<slug>/mock-sessions/<时间戳>.md
质量基准
- 题型配比符合 mock-rubric(场景/实践/选型为主,概念题为辅,算法题受 kind/level 限制)。
- 题目体现业务研发岗面试视角,避免纯源码细节和书本背诵。
- 评分来自独立子智能体;报告分块写、未超时。
- 只回写了 weakPoints + stats,未改各节点 mastery。