# Phase 2 Plan: Diagnostic Interview Loop **Status:** Ready for execution **Phase Goal:** Prove the first job-seeker loop from role selection through graded diagnostic interview. ## Requirements Covered - INT-01: User can select target role, stack, and interview timeline. - INT-02: User can complete a diagnostic technical interview. - INT-03: System can generate role-specific interview questions. - INT-04: System can grade user answers against explicit rubrics. - INT-05: System can ask targeted follow-up questions for weak answers. - INT-06: System preserves original answers and grading evidence. ## Tasks ### 1. Add interview domain package - Create `internal/interview`. - Define session, question, answer, and store types. - Add in-memory store implementation. - Add backend developer diagnostic question catalog. ### 2. Add diagnostic service - Create session from target role, stack, and optional interview timeline. - Select first diagnostic questions from the backend developer track. - Record submitted answers. - Invoke `workflows.Runner.GradeInterviewAnswer`. - Attach typed grading result and evidence to the answer record. ### 3. Add HTTP endpoints - `POST /api/v1/diagnostic-sessions` - `GET /api/v1/diagnostic-sessions/{id}` - `POST /api/v1/diagnostic-sessions/{id}/answers` ### 4. Extend workflow stub - Return deterministic typed grades. - Include follow-up recommendation for weak answers. - Include evidence references. ### 5. Add tests - Domain tests for session creation and answer grading. - HTTP tests for create/get/answer flow. - Existing config/workflow tests remain passing. ### 6. Update GSD/OpenSpec state - Mark INT-01 through INT-06 complete if all success criteria pass. - Add Phase 2 summary and verification artifacts. ## Verification ```powershell gofmt -w cmd internal go test ./... openspec validate bootstrap-job-tutor-platform --strict ``` Run Go line-count check and confirm every manually authored Go file is at or below 600 lines. ## Out of Scope - Database persistence. - Authentication. - Real LLM grading. - Durable learner memory. - Progression map. - Frontend. --- *Plan created: 2026-04-26*