Files
tutor-service/.planning/phases/002-diagnostic-interview-loop/002-PLAN.md

78 lines
2.1 KiB
Markdown
Raw Normal View History

2026-04-26 16:24:35 +09:00
# 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*