2.1 KiB
2.1 KiB
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-sessionsGET /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
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