Skip to content

Build an explicit timed mock-interview session controller #73

Description

@rosshd

Parent: #65
Depends on: #61, #63, #64, #69, #70, #71.
Related: #56, #59, #62.

Problem

Quick placement and deliberate interview rehearsal have different jobs.
Placement should choose a safe starting route quickly.
A full mock should reproduce the pressure and communication loop of a real interview: clarification, spoken-style planning, constrained implementation, testing, complexity discussion, and changing requirements.

Without an explicit controller, the product either overloads onboarding with interview ceremony or turns mock interviews into ordinary teaching drills with a timer.

Goal

Implement an explicit timed mock-interview session controller that coordinates interviewer dialogue, the verified interview editor, durable timing and assistance evidence, bounded follow-ups, and an evidence-based postmortem.

Session controller

  • Require an explicit Full mock interview action; never start from normal tutoring or quick placement by accident.
  • Select target level, language, duration, focus, and accessibility accommodations from the local profile with concise overrides.
  • Create a dedicated attempt with purpose mock_interview and a versioned session policy.
  • Coordinate natural phases without forcing abrupt transitions when useful evidence is still being produced.
  • Keep authoritative timing and phase state local and durable.
  • Save learner dialogue before provider calls and source before editor/test actions.
  • Use Add a verified Neovim interview mode without autocomplete #70's verified editor restrictions when available and disclose unverified fallbacks.
  • Distinguish requested help, interviewer clarification, silence/thinking, navigation, and substantive answers.
  • Record interventions and preserve the option to stop or explicitly switch to teaching mode.

Interviewer policy

  • Clarify the contract without revealing the intended pattern.
  • Ask for an actionable plan and tradeoffs before implementation.
  • Avoid teaching, unsolicited hints, excessive praise, or answer leakage.
  • Introduce at most the configured bounded follow-up changes when time permits.
  • Keep model wording subordinate to deterministic problem, timing, help, and evidence contracts.
  • On provider failure, preserve state and allow resume or invalidation without penalizing the learner.

Postmortem

Acceptance criteria

  • Full mock mode is explicit, time-estimated, and cannot start accidentally.
  • Timing, phase, dialogue, editor, test, intervention, and follow-up events survive restart where resumption remains valid.
  • Interviewer dialogue does not pollute ordinary tutor pending-answer state.
  • Unsolicited hints and solution leakage are blocked by deterministic policy and tested fixtures.
  • Verified editor restrictions are displayed and recorded; fallback limitations are honest.
  • Help requests change assistance evidence and later mastery eligibility.
  • Follow-ups modify the original problem contract without silently replacing it.
  • Stop and switch-to-teaching transitions preserve evidence and are explicit.
  • Provider, editor, and runner failures invalidate affected evidence instead of penalizing the learner.
  • The postmortem cites evidence and separates all named dimensions.
  • Tests cover strong, struggling, silent, help-requesting, interrupted, provider-failure, editor-failure, runner-failure, and accessibility paths.
  • Live dogfood covers at least two target levels and records human realism feedback.
  • make check passes.

Out of scope

  • Audio or video analysis.
  • Human interviewer marketplace.
  • Behavioral or system-design interviews.
  • Employer-specific prediction.
  • Hidden surveillance or keystroke capture.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions