Every agent-produced report carries one interviewContract bundle of five
positive integer versions: the bundle, the live prompt, the report prompt, the
scoring rubric, and the public report schema. The server owns that value and
stamps it after model generation, so neither model output nor candidate input
can select it.
Bundle 34: live prompt 25, report prompt 20, rubric 1, report schema 3.
| Bundle | Introduced |
|---|---|
| 34 | Optional English accent directions are appended by the live prompt builder without changing the original interview instructions. Default adds no text. Voice and accent Random choices are resolved independently before token issuance and retained for the interview and reconnects. Live prompt 25; report prompt 20, rubric 1 and report schema 3 are unchanged from bundle 33. The server stamps the resolved interviewerVoice and interviewerAccent after report generation, including incomplete reports. Default voice records the configured Gemini voice; Default accent records Default. These optional provenance fields are normalized at the browser sanitizer, following bundle 7, without changing scores or existing field semantics. Reports without them remain readable without inventing missing interviewer settings. |
| 33 | The live clock policy explicitly forbids reading the TIMER label or its sentence aloud. The last platform reading remains authoritative; requested time answers and the five-minute warning retain their existing rules. Tool-assisted totals remain spend counters and never seed the comparable context peak. A total below the last completed single-generation prompt can establish a decrease; all observations in the tool turn are considered before deciding. Provisional usage received before a tool call is retracted from the comparable peak. Live instructions shorten repeated speech, evidence and interview-step guidance while retaining the three-sentence limit, safety boundaries, evidence requirements and mode-specific behavior. A paged read_conversation tool retrieves recorded candidate and interviewer speech omitted from local recovery tails, with substring search, byte cursors, bounded serialized pages and no platform instructions or private review notes. Recovery directs missing earlier details to that tool. Report brief 20 removes the rolling-assessment direction to report embedded instructions. Editor and board material require an exact candidate excerpt before reporting an attempted instruction; fences, headings and platform closing events do not establish one, and feedback does not describe prompt handling. Recovery removes the quoted owed event's superseded final platform clock. Additional anti-script wording was tested and withdrawn: it increased prompt tokens without preventing spoken timer leakage. Configured continuity inputs move the event clock to the final position instead of duplicating it. Configured editor, board and hint tool replies also move their redundant result clock to the authoritative continuity clock. Evidence-recording continuity omits the clock, matching ordinary evidence replies and retaining platform/read-tool time sources. A tool-response batch carries continuity and the final framework checklist once each in their final eligible responses, preserving every result and ordered state change. The final eligible coding evidence response can carry a changed, parsed editor excerpt once so speech-deferred reviews do not leave a stale editor for the tool continuation. A successful changed-code response, including a default editor read, requests the proactive review once using the final batch state, prioritizing the candidate's latest question; a default read that stops at its page limit neither carries the review nor marks the buffer shown, and only a read showing the whole buffer marks it shown, so later-line pages and requested hints whose editor page stopped at its limit do not; only a delivered review consumes an unreviewed parsed substantive revision, so explicit later-line reads, failed writes and later edits still arm the watcher. Timed replies send their private clock as non-generating ordered context, followed by the action on the same ordered channel; while the provider owes or is producing a reply, the action goes as realtime text instead, since a completed client turn would interrupt that reply even before its first output. The socket counts as owing one from detected candidate speech, its transcription, an interruption, model output or a reply-requesting send until the turn completes, and provider evidence lapses after 10 seconds while a requested reply stays owed through the longest configurable reply deadline, which the reply watchdog enforces first. Each timed reply counts as one input. Silent context and untimed input retain their transport. Timer-like candidate source text stays intact. Provider speech activity, while audio is attached and frames are not paused, defers idle prompts, checkpoint refreshes and idle assessment calls until speech ends, without treating activity as transcript evidence. Advisory transport restarts wait through the quiet transcription tail before resuming a stale checkpoint. During ongoing speech the periodic room watch checks held advisories without waiting for another provider event or stall; they finalize the partial transcript before replacing the socket, cancel its unheard reply, and restore the full quoted prefix silently before queued audio continues. The silent speech handoff omits its clock; requested-time reads retain their clock sources. A bounded 40-second microphone queue retains frames while the room loop reconnects, replacing the dependency default of 100 ms. Only a post-cancellation checkpoint can resume that handoff; a resumed socket receives the listening note alone and keeps its context baseline, and a cold one the full cold briefing before it. A platform request the replaced socket still owed is named in the note and stays owed. Events the replaced socket emits while the prefix is finalized are counted in the log. Failed writes retain local briefing debt. Coding-only Live tool declarations offer only the six REACTO phases; behavioral sessions retain all ten phase choices. Tool descriptions remove procedural rules already present in the system instructions while retaining unique paging and snapshot semantics. Whiteboard compression checkpoints omit editor and test data and request the current drawing through read_board; a behavioral checkpoint does not return to the drawing. Report repairs compact only whitespace outside JSON strings in complete bounded responses, preserving values and existing malformed or oversized fallback behavior. Whiteboard initial and recovery instructions describe drawing and evidence rather than editing, implementing a function or passing executed tests; coding instructions remain unchanged. Editor and requested-hint reads distinguish a stale or unknown browser-report source from current code, independently of retained Test credit; current and no-report reads remain unchanged. Editor-update outcomes, combined-mode progress and recovery also use exact displayed-report provenance while retaining edit-tolerant Test credit. Recovery briefings add only the owed-question rule and any opening or latest candidate line their transcript tail no longer holds whole, rather than repeating their own no-restart rules or asking a silent checkpoint to continue. Tool continuity follows the same plausibility gate and is omitted while the floor is held. Configured compression carries bounded continuity beside platform inputs after the opening while a cut is plausible (before any measurement, after a detected cut, or while the last comparable prompt count is in the upper half of the band between target and trigger), including the active round, evidenced steps, pending request and a bounded prior candidate opening in coding, so the first response after a context cut can continue without replaying the greeting or full problem restatement. Provider-default sessions retain their existing input path. Default editor reads can collapse identical consecutive leading comments while keeping every distinct note, original line numbers and explicit line access. Tool-assisted usage sums remain spend counters but are excluded from context-size comparisons to avoid false checkpoints. Completed coding retains the first silence check and 30-second attempt throttle, then doubles the spacing of successful same-episode nudges up to 480 seconds. Meaningful candidate activity resets the episode; failed writes do not advance its successful-send cadence. Suppressing a nudge still permits significant editor reviews, and unfinished coding, behavioral support, required replies and trusted timers retain their behavior. Active provider speech detection plus recent voiced microphone frames defers reply-timeout, generation-stall and deferred advisory restarts across watch, event and playout paths. Speech end or acoustic quiet rebases outstanding reply clocks once; stale activity edges alone cannot renew them. A provider speech start with no microphone or provider evidence for 10 seconds is treated as ended. Paused frames do not count as acoustic evidence, context resets discard the acoustic history, and the absolute interview deadline remains authoritative. During real incoming speech, a parsed substantive editor change settled for ten seconds can be sent as non-generating context. Successful delivery has its own language-qualified snapshot and becomes the baseline later editor updates diff from, without consuming optional review or reply debt; silent delivery itself diffs from the code already shown by any route and sends nothing when the model already holds the current code; failed writes remain pending and socket recovery resets or initializes that snapshot. Ordered local writes do not guarantee consumption order against realtime audio. Coding transitions are conditional on implementation not having begun; otherwise review current work. Recovery, review, silence and timer prompts can carry a bounded edits-presence note, until Coding is evidenced, without treating edits as a completed or correct implementation. Silence nudges omit the empty-editor branch when the editor holds candidate edits, and coding-only sessions omit the behavioral-question ban from nudges and reviews, which their system instruction already carries. Silence policy still selects its existing setup-error and next-step branches before that note. Existing final checklist tool responses can expose candidateEditsPresent only in the coding editor round, using the unchanged written-content heuristic; a comment or stub may qualify. Tool continuity wording is shorter with identical latest-utterance selection, trust fences, JSON data and timer. Cold and checkpoint recovery envelopes are shorter while retaining archive lookup before earlier-speech answers, reconciliation with the current local record, historical-data trust boundaries and the active-session and no-restart rules. Completed Example walkthroughs are not reopened without a relevant implementation change or a concrete unresolved concern; initial ordinary and boundary examples and execution-mode Test requirements are preserved. Outside candidate speech, judged from the microphone's own voice level or provider speech detection, each Live socket receives one camera presence frame; frames during speech keep the five-second interval, and board images are unaffected. |
| 32 | The report judges the problem's follow-ups. When the coding round completed and the interviewer was handed them, the report brief lists them numbered, and the report model returns a followUps entry for each: whether an interviewer line posed it, and for one that was raised, a short assessment of the answer addressed to the candidate. An entry whose index is missing, out of range or repeated, or whose raised is not a boolean, and every entry when the follow-ups were never handed over, is dropped before anything in it is checked rather than refusing the report; an assessment that is missing, blank, not a string or on an entry not raised becomes null. A kept assessment is held to a length limit and the same delivery-judgment and published-name scans as the other narrative fields, with errors named by the entry's position in the response; one still judging delivery once the repairs run out is dropped as a refused self-review check is. The server stamps each debrief.followUps entry as {text, raised, assessment}: raised is false when the follow-ups were never handed over, and null when they were but no report judged them, or when the report read false from a transcript whose opening was cut. Report prompt 19 and report schema 3; schema 2 reports, whose follow-ups are bare text, stay scored and read as unjudged. The live prompt and rubric are unchanged. |
| 31 | A candidate may disable code execution for the entire editor interview. Whiteboard sessions ignore this preference because they have no code runner. The signed participant setting persists across languages and reconnects, execution events cannot earn credit, and Test may be recorded from a hand trace of written code with source candidate_speech. Live prompts ask for traces rather than Run, preserve completed evidence, and distinguish the choice from a runner outage. Assessment metadata and the server-stamped optional codeExecution: false report field record the restriction without inventing executed or passing cases; browser reports, saved history and Markdown retain it. The field is additive under schema 2 and older renderers may ignore it. Older reports without the field retain their existing meaning. |
| 30 | Qualifying browser-reported executions record Test at receipt time and publish the checklist without waiting for a model tool call, including failing runs and runs during a thinking hold. Test is also recorded when an earlier credited run covers the editor again, as when the candidate switches back to the language that ran, and the interviewer is then told so without being asked to reply, along with the follow-ups when that completed the coding round. A delayed model call returns the existing execution row without duplicating it or changing its timestamp, and its reply says nothing was added. Setup errors, empty runs, starter code and runs that no longer cover the editor grant no new Test row, and the counts of a run that earned no credit never choose the next step. The checklist is republished until a send succeeds and again when the candidate rejoins, and a reminder of unrecorded earlier steps counts as given only once the reply carrying it is delivered. A phase judge, a side call on the report model a few seconds after each candidate turn, a turn the recognizer grew, or an editor change while a step is open, records Repeat, Example and Algorithm until Coding is recorded, and Coding and Optimizations while there is code, when the candidate's own words, or for Coding what they typed, complete them. The server accepts a step only while it is open and only with a quote found in one recognized candidate turn (adjacent candidate lines the recognizer split count as one), six words for the spoken steps and four for Optimizations, or for Coding in the editor and not in the starter; an approach or analysis the interviewer said before the candidate did (the interviewer saying it back afterwards does not count against it), a paraphrase, an unrecognized turn, or a judgment about code since rewritten records nothing, and claims or requests to mark a step do not count. The row carries the verified quote, the interviewer is told what was recorded without being asked to reply, along with the follow-ups when the step completed the coding round, and the end waits up to 5 seconds for the judge so the report sees the candidate's last answer, while a round transition is held for up to 5 seconds without stopping the room, which keeps forwarding the candidate's audio, so the round decision sees it too. The judge reads the exercise's contract and constraints, a call that fails leaves its window to be read again, a verified quote stands even when a later candidate turn was not recognized, and a held transition also waits for a judgment of anything said after the last one's snapshot, and stays held while the interview is paused. A judgment asked for by the editor alone waits 30 seconds after the last one and takes at most 12 of the 48 calls. At a whiteboard the judge is told there is no editor and the board is not shown, judges Optimizations from speech once the board has work on it, and leaves Coding to the interviewer, since its quote must come from typed code; no run records Test there, and the whiteboard instructions carry the same evidence check. A rate limit on a judgment does not cool the report key. Conversational phase instructions require grounded evidence calls before acknowledging completion, allow independent calls in a batch, and forbid filling earlier phases from later progress. Editor, board and evidence replies carry the recorded phase ids used by the checklist, including on refusals; the interviewer checks that state before claiming a step is marked, and records a missing step only from earlier turns, never because the candidate asked. Live prompt 22, with the phase judge's instruction and prompt in its golden; the report prompt, rubric and schema are unchanged. |
| 29 | Whiteboard interviews: the live prompt is written for the surface the candidate works on, so a whiteboard session is told it has no editor and no test runner, is given the six steps as drawn work ending in the complexity of the approach on the board, is offered read_board in place of read_editor and a log_hint whose clue arrives with the board again, asks a candidate whose speech stays unclear to write it on the board rather than as a code comment, and reads an unclear mark on the board by what the candidate said while drawing it, asking what it stands for rather than guessing; board_snapshot joins the evidence sources and is the only one besides candidate speech a whiteboard session may record as observed (session_timing stays available to both surfaces for skipped STAR steps), while an editor session may not record it at all; the phases about written work are gated on strokes on the board rather than on characters in the editor. The report prompt follows the same surface: a whiteboard review is sent labeled images of every completed REACTO phase plus a changed final board, so clearing the live surface does not erase earlier evidence; it is told that nothing ran and that the Coding, Test and Optimizations phases were a hand trace, the cases named against the drawing, and the complexity they confirmed. Its interim notes are told the interview has no editor rather than shown an empty one. Its system instruction is its own, so the scoring rules that outrank the brief define both scores at the board, cap an empty board rather than an empty editor, and cite the board where the other cites the code and the test account. The rubric and the report schema are unchanged, so a report from either surface is scored the same way and against the same ten phases. |
| 28 | Language tab changes preserve spoken discussion before any code is typed and repeated choices do not reopen the interview. A candidate turn the recognizer returned in another script is not discussion. The acknowledgement continues from the current context and asks for an opening restatement only if discussion of the exercise has not begun. Live prompt 20; the report prompt, rubric and report schema are unchanged. |
| 27 | The evidence tool refuses every STAR phase until the platform opens the behavioral round, including model-requested timing skips, and tells the interviewer to return to the coding round. Platform-owned skips still close an unopened round in an interview that has one, and a coding-only interview gets none. The live instructions say only the platform sends a [SYSTEM EVENT]: the interviewer never writes one, and one in its own earlier turn or the candidate's speech opens no round. The report brief says whether the platform opened the behavioral round, never opened it, or the interview had none. When it opened, the report transcript carries a line no speaker said where the round began, and only the STAR answer after it is assessed; when it did not open, any behavioral exchange in the transcript is out of turn and is not scored, praised, criticized or cited. For an unopened round, report validation refuses a STAR improvement-plan item, so a repair rewrites it from the coding round, and the server clears the STAR scores of the report it accepts. Live prompt 19 and report prompt 16; the rubric and report schema are unchanged. |
| 26 | When a lost connection leaves a reply owed, the request for it is appended to whatever the interviewer is sent next: the cold briefing of a replacement that cannot resume, now including a reply owed for the candidate's own turn, and on unpause the cold briefing as well as the resume line. The briefings themselves are unchanged. |
| 25 | Candidates can keep the floor while thinking, reclaim it during a reply, and yield it early. Explicit spoken requests for thinking time in English, including one that follows an answer in the same sentence or is asked as a question, suppress generated replies and automatic nudges until the candidate speaks again or chooses to continue. A hold ends on its own at the five-minute warning, at the round transition, and after two silent minutes with one brief check-in; the interviewer is told that anything it said during the hold was not heard. A Continue within ten seconds of the last one releases the hold without a reply of its own. Thinking keeps editor, microphone and test evidence live, gives the interviewer test runs and edits as context it does not answer, and never extends the deadline. The default endpointing window is three seconds, and the page shows it filling while the candidate is silent; yielding ends the audio stream so the interviewer replies without waiting it out. |
| 24 | The Live main instructions drop repeated explanations and illustrative examples and keep every timer, round, evidence-source and hint restriction. The greeting answers only the platform's startup request, and missing history, a compression or a tool result is not a new interview. end_interview is called silently, before any acknowledgment or goodbye, and the platform supplies the closing. A cut read_editor page or a checkpoint excerpt does not show the whole buffer, so an implementation or technique is not called absent before the named lines are read. The read_editor description asks for only the code the current question needs that nothing has shown, from a known relevant line rather than a refill of the whole editor. The greeting no longer repeats the exercise's title and brief, which THE EXERCISE already carries and the greeting now points at; the framework headers drop a scoring premise the disclosure rule already covers; test-run reactions and the earlier-steps reminder state their rule once, more briefly; and the end_interview description no longer restates the instruction it sits beside. With a configured compression window, a silent checkpoint rebuilt from local state follows a detected cut: the chosen language, the current round, the evidence, a bounded transcript that keeps a long behavioral round's opening, a bounded test report and, in the coding round, the editor's opening and ending. Its next step applies to the next candidate input, not to the checkpoint itself. Omission alone does not close a behavioral round, repeat its question or establish that its follow-up is unused, and a refusal or request to finish supplies no STAR evidence. Under the same window, editor, hint and evidence tool answers carry the latest unanswered candidate utterance as quoted historical data, never as a new turn. |
| 23 | A candidate who hides the worked examples in the preflight sends hideExamples with the token request, and the live prompt then says no examples are on their screen: the interviewer never points them at one, says a clarification or hint clue that mentions an example with a case they proposed or one of its own, and in the Example step asks for their ordinary and boundary cases before offering a small example once they have tried or are stuck. A session that does not hide them gets the live prompt unchanged. |
| 22 | Browser-reported failed judge cases include their bounded input in the live reaction, read_editor, and final report test summary, so the interviewer can connect an expected result or exception to the case that produced it. The live reaction still lists one failure, while read_editor and the report retain their existing fuller failure account. |
| 21 | English interview instructions treat unclear, unexpectedly non-English or unrelated speech as possible recognition failure and ask one neutral clarification without supplying an answer or recording evidence from the uncertain turn; typed code comments can clarify speech. Interim and final assessment share an evidence-reliability policy excluding uncertain speech and unsupported rolling observations. The final report additionally excludes them from credit, deductions and verdict reasoning, leaving unsupported phase scores null; interviewer agreement cannot prove an answer was correct, and clear technical mistakes remain assessable. When recognition leaves little reliable communication evidence, the report judges communication and the decision rule from what remains, says so in the summary, and never makes the gap an improvement. The server scan refuses a report that names the language a transcript came out in, as "in Japanese" or "a Japanese response", or judges English proficiency, and an improvement that asks the candidate to speak English, audibly or more clearly. The live instructions, which every reconnect sends again, say that a possibly misrecognized recovered line, or agreement with one, supports no missing evidence. Live setup sends the documented inputAudioTranscription hints: languageCodes for en-US, and customVocabulary with the scenario title, the names in the starter and a fixed list of terms every interview uses, such as "time complexity". Both bias only the transcript that notes, the report and recovery read, not what the interviewer hears, and neither locks recognition. Interim notes and the report read a fixed marker, which their prompts name, in place of any candidate turn written mostly in a non-Latin script, a lone symbol or two excepted; the live interviewer, replay and stored transcript keep the recognizer's text, and the server refuses speech evidence while the candidate's latest turn is one the marker hides. Recognition errors in Latin letters are not marked, and apart from the scan and the marker these safeguards are prompt instructions. None of it guarantees transcription accuracy. |
| 20 | The timer reading every stage direction ends with is for the interviewer's own pacing: the live prompt forbids volunteering the remaining time, and allows saying it only when the candidate asks or at the platform's five-minute event. A stage direction with nothing else worth saying, such as an editor review of a settled change, is not a cue to announce it. |
| 19 | Coding-only sessions end through the platform timer or the candidate's End action. The interviewer cannot end them early based on REACTO evidence, passing tests, or its own judgment of completion: a coding-only session is not offered end_interview, its instructions describe no tool that ends it, and a call made anyway is refused without implying that more evidence would allow it. Failed tests still count as testing evidence. Coding-only recovery, silence, review, follow-up and test-result prompts preserve time for unresolved failures, verification and further discussion instead of treating recorded phases as a solved problem. Continuation uses the outcome of the credited execution, preserving it through outages, empty runs and uncredited submissions, and attributes that outcome to the editor only when the language and source bytes match exactly. Small edits still retain Test credit, but cannot carry forward an outcome claim. The five-minute warning's convergence order follows that outcome: confirm a final change after a pass, prioritize the failures after a fail, and verify the code on screen when no run matches it. Two-round session completion is unchanged. |
| 18 | Both resumed and cold Gemini connections reconcile the local transcript, editor, browser test report, and the active round's framework progress. A resumed session receives the update as context; it answers at once only when the replaced connection owed a reply to a finished candidate turn, an unanswered prompt, or an outstanding tool continuation, and otherwise waits for the candidate. A cold briefing still owed when a resumed socket replaces its session is delivered to that socket. Missing evidence records do not force completed steps to repeat. A passing test run no longer reopens Optimizations once complexity and edge cases are evidenced, unless the code was rewritten since the previous credited run, in which case it asks only whether the earlier analysis still holds; it notes when the code is unchanged since that run. The silence nudge, editor review, five-minute warning and both reconnect briefings state whether the latest run still covers the code on screen, by the rule the Test gate uses, and the warning's convergence order names only the steps still open. Prompts that could ask for complexity or edge cases tell the interviewer to record what the conversation already covered rather than ask for it again. A runner setup error or a run with no cases is not a run. A prompt that produces no output for 20 seconds returns the floor, and a candidate turn left unanswered for as long lets a deferred transport restart go, so neither holds the handover until the server closes the socket. An editor review that goes unanswered is not owed a reply after a reconnection. |
| 17 | Test is recorded from a received test run with executed cases, with source test_event, and only while the editor still holds the code that run executed: fewer than five non-whitespace characters of code added and fewer than five removed since, with comments left out of the count, so a fix in place or a note of the complexity keeps the run while writing the solution after running a stub, or deleting a guard the run exercised, does not. The browser sends the submitted code with the results, so a run of the starter or of another language's buffer vouches for nothing written after it. Verbal tracing, setup errors, and empty runs cannot complete Test or unlock normal coding completion; failing test cases still count as testing. A test reaction asks the interviewer to record Test only when that record would be accepted, asks for a run of the code now on screen when the candidate edited past the run, without moving on to Optimizations even when every case passed, and a run that makes Test recordable reacts even inside the test-reaction cooldown. A run that could not start because the platform failed (the judge did not load or is missing, Compiler Explorer answered 5xx or 429 or was unreachable, or the Python runtime did not start) lets the candidate's hand trace of the written code stand for Test, recorded with source candidate_speech, in that run's language only, until a later run says otherwise; a run that executed cases never carries that exception, a current run of the code on screen still takes precedence, and once Test is recorded an outage no longer invites a trace. A setup error the candidate can fix (a compile error, a rejected request, a harness the case cannot be built into) withdraws the credit of the earlier run in that language. The flag is the browser's claim, as the pass counts are, so a Test recorded from candidate_speech marks this path in the report. The five-minute warning asks for a run rather than a description of tests, or for a hand trace while the runner is missing, and a refused end_interview points the interviewer at the Run button, or at the hand trace while the runner is unavailable. |
| 16 | Test counts, deltas, and diagnostics in the evidence projection retain their unverified browser provenance in live, interim, and final assessment prompts. Test event counts are labeled browser-reported, and the shared assessment heading distinguishes those claims from server-derived metadata. Each prompt gets only the evidence lines the rest of it does not state: a watch prompt the tests, diagnostics, hints, phases and session state, and only the lines that changed since the last watch prompt of the same session, with no evidence heading when none did; the interim review adds the code history and the time since the last program change; the report keeps the code history, the test history and the session state. The line of turn counts and the line of what arrived since the last watch prompt are gone, and the watch prompts point at read_editor in one short clause. The watch prompts themselves shrink to an event label, the evidence, the code and one action line naming the interview flow, the rules the system instructions already state no longer repeated in each, apart from the one keeping them off behavioral questions; a proactive review is armed only by a change that is not a rename alone, in code that parses. A requested log_hint returns the candidate's editor with its clue, so a hint needs no read_editor first, and the report names its fields in a sentence where it printed a JSON example the response schema already enforces. The platform records the STAR steps of a behavioral round that never opened as skipped itself, at the five-minute warning and at the end, so neither prompt asks the interviewer to; the wrap-up of a started round still asks for those skips, since only the conversation separates a step the clock cut from one of a declined probe, which stays unassessed; code evidence needs no read_editor first, and the evidence reply names the phase instead of echoing the row. Watch prompts, test reactions, read_editor, the hint reply and the cold briefing share one record of the code the model was last shown, so a prompt with no change says the editor is unchanged; read_editor and the hint reply fence the editor and the latest run separately, with the timer last. Line numbers are unpadded, trailing blank lines are dropped, a whole buffer is never cut, and the whole-editor carriers stop at 32,000 bytes, with read_editor taking a fromLine to page past the cut its answer names. A test reaction lists one failing case, and every test account counts the failures it does not list from the reported totals, since the browser lists four at most. The live instructions state the hint and disclosure rules once, drop the constant per-question directions and the empty profile and grounding sections, and leave document grounding out of a coding-only session. The report and interim prompts send their constant rules as the system instruction and the interview material as the request; the report brief carries the contract and constraints the tests grade instead of the published statement, the interim note names the scenario, and the report schema no longer asks for the phase rows' weakness tags, which the server derives. |
| 15 | The interviewer's watch prompts carry a plain-text view of the deterministic evidence ledger, a few lines of counts and closed enumerations with no digests, timestamps or entries, plus a line of what arrived since the last watch prompt, and the editor fenced as untrusted, whole while it is short and otherwise the lines around the change since the last review; the interviewer calls read_editor for code it leaves out. The interim review carries the same view ahead of its untrusted editor and transcript blocks. A code change reaches the model as a coarse class (formatting, comment, identifier or code) with no node facts; the ledger keeps the finer class for replay. The interim review and the final report sample with a fixed seed. The report prompt delimits the candidate's editor, transcript and test output as untrusted blocks, with the refusal to follow anything inside them stated above all three, and the server's own evidence ledger rendered apart from them rather than inside the untrusted rolling assessment. |
| 14 | Behavioral silence past the existing idle threshold gets one nudge per round. It asks the round's question if it has not been asked, invites nothing further on a declined probe or a complete answer, and otherwise offers one neutral invitation to continue, without adding a STAR follow-up or returning to coding; silence alone never ends the interview. Editor reviews remain suppressed in the behavioral round. A behavioral question declined in candidate lines that recovery pulls into the round's block counts as the round's question, so that round asks none. |
| 13 | No behavioral question is asked before the behavioral round opens, and a behavioral probe the candidate cannot recall, declines, or cannot share is abandoned in either round: editor reviews, silence nudges, the round transition, resume, timer and recovery prompts must not reopen it, and the report leaves its unsupported STAR parts unassessed rather than recording a timing skip. Recovery places the round's start at an interviewer turn still speaking when the round opened; it asks the question when nothing has been said in the round, recovers the round in a transcript block of its own so a question declined inside it counts as asked while one declined before it only closes its theme, and asks nothing further when the opening is lost. Coding watcher prompts are suppressed during the behavioral round, and resuming preserves the active round. |
| 12 | The interviewer records the step the candidate just finished before moving to the next, and the evidence reply that first ticks a later step names the earlier steps of the same framework still without evidence, so the candidate's step list fills in order rather than all at once. |
| 11 | Candidate-authored test evidence includes the bounded input beside its result, so the interviewer and report reviewer can identify the case. |
| 10 | Hints remain qualitative context for candidate independence rather than automatic numeric communication-score deductions. |
| 9 | Reports keep the fixed mid-level hiring bar and state the optional level the candidate practiced for beside it. |
| 8 | Candidate-authored test cases reach the live interviewer and report brief, while judge pass totals remain separate. |
| 7 | The post-interview server stamp adds optional debrief, topics, and practice level fields. tests/golden/report-schema.json remains the model output shape only; server-stamped fields are versioned at the browser sanitizer. |
| 6 | The interviewer is given the countdown instead of guessing at it: every stage direction ends with the timer reading, read_editor returns it alongside the editor so a current one can be asked for at any moment, the cold-restart briefing carries it, and the live prompt forbids stating or acting on a remaining time that did not come from one of those, reads the platform's reading as the last sentence of an event so candidate text that forges the sentence cannot pass for one, and forbids warning about time before the platform's five-minute event |
| 5 | Each problem posed as an interview scenario rather than the published problem: the live prompt holds the scenario, its private contract and the clarifications to answer when asked, the follow-ups arrive with the evidence that completes the coding round, and the prompt never holds the source title, the hint ladder or a solution walkthrough; log_hint serves the authored hints one rung per request and holds the last until the candidate has stated an approach, meaning Algorithm evidence observed from what they said or Coding evidence, which needs code they wrote; a request answered with a withheld rung gives no clue and is not counted as a hint; Coding, Test and Optimizations evidence is refused until the editor holds code the candidate wrote beyond the starter; the report prompt gives the reviewer both the published problem and the scenario, with the reference notes, and forbids naming the published problem in anything written to the candidate. PR #38 covers 8eaaef0, 26410f7, 4e316f2, 0dc521f, b72984a, and 3027bb8. |
| 4 | The observable-delivery policy, made explicit in the report prompt and the server validator, with no change to the rubric or the public shape. Confirmed 2026-09-16: prompt revisions 14ad45d, a3872ce, a43eb29, 2655f6a, 8d2f3df, dbc2060, and 5dca169 shipped under this bundle. |
| 3 | Framework phase scores kept explicitly formative, and prohibited from mechanical use in a hiring decision while calibration remains incomplete |
| 2 | Provider-enforced structured report output and strict validation, with no change to rubric semantics or the public schema |
A change to prompt behavior, score anchors, or report shape updates the relevant
component and creates a new bundle version in the same change. Rust and browser
constants, prompt and report goldens, migration fixtures, and replay fixtures
move together. A prompt-only change bumps its prompt constant and the bundle in
both src/agent.rs and ACTIVE_CONTRACT, refreshes the prompt golden, and adds
a row here; it needs no browser compatibility-list edit. A released bundle
number is never reused for different behavior. A bundle is released when the
pull request that opens it merges, so its versions move once per pull request: a
later commit in the same series that changes a prompt again keeps that bundle's
versions, records the prompt golden's new digest, and extends the bundle's row.
Bundle 5's row, which covers every commit of PR #38, is the precedent.
- Reports without
interviewContractpredate this contract. They stay readable and are labeledlegacy/unversioned; they are never assigned the current rubric. - The browser scores a report when its rubric is active, its schema is in
SCORABLE_SCHEMAS, its bundle is at least 4 and no newer than active, and neither prompt version is newer than active. A report keeps the bundle it claims. A rubric or schema change is not compatible until this rule says so. - The browser renders the active report schema normally. An older renderer may ignore additive fields only after the bundle and schema migration explicitly permits it.
- A malformed, unknown, or future bundle becomes an incomplete but renderable report. Scores are not coerced, and not displayed under a rubric the renderer does not understand.
- Breaking field semantics, required-field changes, rubric-anchor changes, and prompt-policy changes each require a new bundle and the corresponding component bump.
- Migration belongs at the browser report-sanitization boundary. It is pure, deterministic, fixture-backed, and preserves the original rubric provenance.
Update the active server bundle and ACTIVE_CONTRACT; add the browser
migration; refresh the prompt and report goldens; add this bundle's table row;
cover successful, incomplete, legacy, malformed, and future reports; verify
HTML, Markdown, history and progress, and replay provenance; then run the
complete local test suite.