Skip to content

feat(feedback): 자기소개 첫인상 평가 추가 (종합 점수 미포함)#118

Merged
i3months merged 1 commit into
devfrom
feature/self-intro-feedback
Jun 25, 2026
Merged

feat(feedback): 자기소개 첫인상 평가 추가 (종합 점수 미포함)#118
i3months merged 1 commit into
devfrom
feature/self-intro-feedback

Conversation

@i3months

Copy link
Copy Markdown
Member

변경 사항

#117 후속. 자기소개(첫 질문) 답변을 첫인상·전달력(전달력·구조·간결성·직무적합성)으로 별도 평가해 피드백 리포트에 노출합니다. 실제 면접처럼 자기소개는 정답성으로 채점하지 않으므로, 기술 종합 점수에는 넣지 않고 정성 평가로만 보여줍니다.

설계

  • 종합 점수 오염 방지: 메인 피드백 generator 는 첫인상을 모른 채 overallScore 를 계산하고, 첫인상 평가는 그 뒤 panelBreakdownevaluator="첫인상" 항목으로만 덧붙입니다. → 집계 비포함이 구조적으로 보장됩니다.
  • 저비용: 종합 피드백 생성과 asyncio.gather 로 병렬 실행(Flash 모델). 첫인상 평가가 실패해도 피드백은 정상 발행됩니다.
  • 레거시 안전: 자기소개가 없던 과거 세션·빈 답변은 건너뜁니다(질문 category=SELF_INTRODUCTION 로 식별).

상세

AI

  • chain/prompts/self_intro_evaluation.py — 전달력·구조·간결성·직무적합성 평가 프롬프트(기술 정답성 평가 X)
  • build_self_intro_evaluation_chain(Flash) + LlmSelfIntroEvaluator (결과 EvaluatorResult 재사용)
  • FeedbackConsumer: category=SELF_INTRODUCTION 질문/답변을 찾아 평가 → panel_breakdown첫인상 항목 append (asyncio.gather 병렬)
  • FeedbackMessageItem.category 추가

Core

  • GenerateFeedbackPayload.MessageItem.category 추가 + SessionFeedbackRequester.toItem 에서 m.getCategory() 전달 (자기소개 식별용). 엔티티/마이그레이션 변경 없음.

Frontend

  • FeedbackReport: 첫인상 패널 항목을 별도 "자기소개 첫인상" 섹션으로 분리 렌더("종합 점수에는 반영되지 않습니다" 명시). 기존 panel JSON·렌더 재사용이라 OpenAPI 재생성 불필요.

테스트

  • AI: 첫인상 항목 append / 레거시 skip / _find_self_intro / evaluator forwarding 추가 → 259 passed, black·flake8 통과
  • Core: 컴파일 + 피드백·ArchUnit 테스트 통과 (MessageItem 생성부 1곳만 영향)
  • Frontend: tsc --noEmit 통과

문서

  • docs/messaging.md(generate/callback.feedback 예시 + category·첫인상 설명), docs/data-flow.md, ai/CLAUDE.md

🤖 Generated with Claude Code

자기소개(첫 질문) 답변을 첫인상·전달력(전달력·구조·간결성·직무적합성)으로
별도 평가해 피드백 패널에 'evaluator=첫인상' 항목으로 노출한다. 기술 정답성이
아니므로 종합 점수(overallScore) 집계에는 포함하지 않는다.

- AI: self_intro_evaluation 프롬프트 + build_self_intro_evaluation_chain(Flash) +
  LlmSelfIntroEvaluator. FeedbackConsumer 가 category=SELF_INTRODUCTION 질문/답변을
  찾아 종합 generate 와 asyncio.gather 병렬 평가 → panel_breakdown 에 append.
  메인 generator 가 첫인상을 모른 채 overall 을 계산하므로 점수 오염 없음.
  레거시 세션(자기소개 없음)·빈 답변·평가 실패는 건너뜀(피드백은 계속).
- Core: GenerateFeedbackPayload.MessageItem 에 category 추가(자기소개 식별용).
- Frontend: '첫인상' 패널 항목을 별도 '자기소개 첫인상' 섹션으로 분리 렌더.
- docs/messaging·data-flow + ai CLAUDE.md 갱신.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@vercel

vercel Bot commented Jun 25, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
stackup Ready Ready Preview, Comment Jun 25, 2026 4:12am

@i3months i3months merged commit 63e3c06 into dev Jun 25, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant