Let the candidate mark interviewer lines they did not understand
Los mantenedores suelen responder en 1 día
Evaluación
Este issue todavía no se ha evaluado.
Descripción
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.
- Lenguaje dominante
- Rust
- Estrellas
- 177
- Forks
- 100
- Merge medio
- 1 d 10 h
- PR fusionados (30 d)
- 191
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de sysprog21/codetrial
-
Selecting a pen color leaves Example drawing in eraser modePosiblemente ocupada @Aa99841 la tomó hace 2 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
sysprog21/codetrial#437 · 4 comentarios · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
Python tests lose every result when the solution returns inf or NaNPosiblemente ocupada @shensyuan la tomó hace 3 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 77/100
sysprog21/codetrial#419 · 3 comentarios · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
Allow deselecting a chosen problem card by clicking it againPosiblemente ocupada @woohsin la tomó hace 3 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
sysprog21/codetrial#392 · 4 comentarios · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
Audio output can be confirmed without playing a test soundPosiblemente ocupada @ChenYingHan1121 la tomó hace 6 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
sysprog21/codetrial#359 · 5 comentarios · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
Add a Copy code button to the final reportPosiblemente ocupada @yansawu la tomó hace 6 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 80/100
sysprog21/codetrial#318 · 6 comentarios · 2 reacciones · 1 asignado ·
Los mantenedores suelen responder en 1 día
Todos los issues de sysprog21/codetrial
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
farion1231/cc-switch#8829 ·
Los mantenedores suelen responder en 1 día
-
bug ci good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 92/100
longbridge/gpui-kit#3677 ·
Los mantenedores suelen responder en 1 día
-
E-pr-welcome
Dificultad 2/5 1-3 horas Aptitud para principiantes 77/100
seanmonstar/reqwest#3121 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 68/100
ilya-zlobintsev/LACT#1235 ·
Los mantenedores suelen responder en 1 día