Let the candidate mark interviewer lines they did not understand
维护者通常 1 天内回复
@April-ying 已经在做这个了。
开始于 2026年10月20日。
评估
这个 Issue 还没有评估数据。
描述
Need
Candidates practicing an English interview as non-native speakers sometimes miss a few words of what Jim says. When the gap is large, they ask Jim to repeat. When it is only a word or two, they usually answer anyway to keep the conversation moving, and the line is forgotten by the time the report arrives. There is no way to note "I did not fully understand this" at the moment it happens, so the candidate cannot review those words afterward.
Present workaround
The report already ends with ## Conversation transcript (web/render.js), and the replay shows the transcript too. Reviewing it means rereading the whole conversation and trying to remember which lines were unclear, which rarely works for a 30 to 60 minute interview.
Desired outcome
During the interview, a small "Unclear" button next to Jim's caption marks the line currently on screen. After the interview, the report lists the marked lines in one place and also tags them inside the transcript, so the candidate can review both the wording and its context:
## Lines you marked as unclear
1. Jim: "And what would the time complexity look like if we used a monotonic stack here?"
## Conversation transcript
**Jim (marked unclear):** Great. And what would the time complexity look like if we used a monotonic stack here?
**You:** Sorry, could you repeat that?
Scope
- Only interviewer lines can be marked; pressing the button again on the same line unmarks it.
- Jim is not told about a mark, so the conversation is unchanged.
- No model call is added. Marks are not sent to the report model either: they are the candidate's own study notes, and treating them as evidence could lower the Communication score and discourage candidates from using the button.
- The "Lines you marked as unclear" section is omitted when nothing was marked.
Where the marks live after the interview
Marks are kept in the page during the interview and saved with the report as one new top-level field of the history entry, unclearLines: an array of the marked interviewer lines' text, in the order they were spoken, for example ["And what would the time complexity look like if we used a monotonic stack here?"]. The field is added to the entry after the report comes back, so it is never part of the report request. The same entry goes to local history (web/history.js) and to the account through /api/reports, which stores the payload as JSON, so no server change is needed.
The text is saved rather than a turn id because saved history does not keep the transcript, so an id would point at nothing once the report is reopened. For the same reason, a report reopened from Past attempts shows the "Lines you marked as unclear" section from this field but cannot tag lines inside a transcript; its Markdown export already says "(transcript was not saved)".
Local history keeps as many full reports as fit in 164 KB, so the marks need a cap to keep one report from crowding older ones out of that budget. I will measure a typical entry and a typical interviewer line, and choose the cap in the PR from those numbers.
A report saved before this change has no unclearLines field and shows exactly what it shows today. A value that is not an array of strings is treated the same way, since local storage is input that an older build or devtools can write.
Acceptance criteria
- Marking a line during an interview makes it appear in the report's marked section and tagged in the transcript, in both the web report and the Markdown export.
- Unmarking removes it from both.
- A report with no marks looks the same as today.
- The report prompt is unchanged whether or not lines are marked.
Approaches compared
- An "Unclear" button next to the interviewer caption that marks the current line (each caption already carries a turn id in
web/captions.js). Small, needs no model call, and stays invisible to Jim. - Detecting spoken repeat requests ("could you repeat that", "sorry?", "pardon?") and marking the preceding line automatically. This could reuse the phrase-matching approach in
src/agent/turn_taking.rs, but a bare "repeat" is ambiguous in coding interviews (for example "Longest Substring Without Repeating Characters"), and the request is already visible in the transcript.
I propose 1 here and leave 2 as a possible follow-up once 1 is in.
Related
#258 proposes a "Key moments" section in the report, with moments picked by fixed rules and notes written by a model. This request differs in where the selection comes from: the candidate picks the lines during the interview, and no model call is involved. Both add a report section near the transcript, so I would place "Lines you marked as unclear" where it does not collide with "Key moments", and I am happy to follow whatever order is chosen there. Marked lines could later become one more input to the moment rules in #258, but this request does not depend on it.
#223 and #271 keep Jim's latest line readable on screen during the interview; this issue covers reviewing unclear lines after it ends.
- 主要语言
- Rust
- 星标
- 177
- 派生
- 100
- 平均合并
- 1 天 9 小时
- 30 天内合并 PR
- 151
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 没有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
sysprog21/codetrial 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 77/100
维护者通常 1 天内回复
-
Allow deselecting a chosen problem card by clicking it again可能已有人在做 @woohsin 于 1 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 68/100
sysprog21/codetrial#392 · 4 条评论 · 已指派 1 人 ·
维护者通常 1 天内回复
-
Audio output can be confirmed without playing a test sound可能已有人在做 @ChenYingHan1121 于 3 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 62/100
sysprog21/codetrial#359 · 4 条评论 · 已指派 1 人 ·
维护者通常 1 天内回复
-
Add a Copy code button to the final report可能已有人在做 @yansawu 于 3 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 80/100
sysprog21/codetrial#318 · 5 条评论 · 2 个 reaction · 已指派 1 人 ·
维护者通常 1 天内回复
-
Outline Snapshot Duplicator question accept a copied random list that loops back into itself可能已有人在做 @papaya0112 今天认领。 未关闭
sysprog21/codetrial#417 · 3 条评论 · 已指派 1 人 ·
维护者通常 1 天内回复
查看 sysprog21/codetrial 的全部 Issue
相似的 Issue
-
documentation priority:p2 type:chore
难度 2/5 1-3 小时 新手友好度 73/100
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 68/100
facebookincubator/scrut#60 ·
-
dispatch:sol-high documentation
难度 1/5 1-3 小时 新手友好度 85/100
carrick-sh/carrick#768 · 1 条评论 ·
维护者通常 1 天内回复
-
correctness postgres tursopg
难度 2/5 1-3 小时 新手友好度 76/100
tursodatabase/turso#10442 ·
维护者通常 1 天内回复
-
难度 1/5 1 小时以内 新手友好度 82/100
ankitects/anki#5864 · 1 个 reaction ·
维护者通常 2 天内回复