Skip to content

fix: 평가 축·평가위원 이름을 직군 중립으로 - #268

Merged
i3months merged 1 commit into
devfrom
fix/neutral-score-axis-naming
Sep 29, 2026
Merged

i3months merged 1 commit into
devfrom
fix/neutral-score-axis-naming

Conversation

@i3months

Copy link
Copy Markdown
Member

#266 에서 "점수 축 이름이 technical_accuracy다. 비개발 직군에는 어울리지 않는다" 로 남겨
둔 것. 실제로 영업 지원자의 피드백이 이렇게 나오고 있었다:

이전
페르소나 영업·영업관리 직군 시니어 **기술** 면접관
평가 축 이름 **기술** 정확도·깊이
화면 표시 기술 정확도

표시 문제가 아니다

페르소나와 축 이름은 프롬프트에 들어가 평가의 틀을 정한다. 기술 면접관에게 기술 정확도를
매기라고 시키면 영업 지원자의 점수 근거가 그쪽으로 끌려간다.

직군별 실제 평가 관점(_DOMAIN_TECH_GUIDE)은 #266 에서 이미 구분해 놨는데, 그 위에 덮인
이름이 그걸 되돌리고 있었다.

이후
페르소나 {직군} 직군 시니어 **실무** 면접관
평가 축 이름 **직무 역량**·깊이
화면 표시 직무 역량

스키마는 건드리지 않는다

DB 컬럼 technical_accuracy 와 API 필드는 그대로다. 값의 의미는 처음부터 "직군 패널이 매긴
직무 역량" 이었고 틀린 건 이름뿐이다
— 스키마를 흔들 이유가 없다. docs/glossary.md 에
대응을 적어 뒀다.

곁가지 — 단일 직군 평가위원 라벨

"기술" 이던 라벨이 직군명("백엔드")이 된다. 다직군 경로는 원래 직군명을 썼으므로 이제
단일/다직군이 일관되고, 요약의 [백엔드] 설계 깊이 가 [기술] 설계 깊이 보다 구체적이다.

회귀 테스트

테스트 왜
20개 직군 전부 페르소나에 "기술 면접관", 축 이름에 "기술" 이 없는지 하나라도 빠지면 그 직군만 조용히 기술 면접이 된다
영업 스펙이 자연스럽고 평가 관점은 여전히 영업의 것인지 (고객 문제 파악) 이름만 바꾸고 내용을 뭉개면 안 된다
개발 직군의 관점이 살아 있는지 (백엔드에 트랜잭션) 중립화가 개발 쪽을 희생하면 안 된다

AI 437 / 백엔드 353 / 프론트 201 통과.

#266 에서 남겨 둔 것. 영업 지원자의 피드백이 이렇게 나오고 있었다:

  페르소나       "영업·영업관리 직군 시니어 **기술** 면접관"
  평가 축 이름    "**기술** 정확도·깊이"
  화면 표시      "기술 정확도"

**표시 문제가 아니다.** 페르소나와 축 이름은 프롬프트에 들어가 평가의 틀을
정한다 — 기술 면접관에게 기술 정확도를 매기라고 시키면 영업 지원자의 점수
근거가 그쪽으로 끌려간다. 직군별 실제 관점(_DOMAIN_TECH_GUIDE)은 이미 구분돼
있는데 그 위에 덮인 이름이 그걸 되돌리고 있었다.

  persona        "{직군} 직군 시니어 실무 면접관"
  dimension_name "직무 역량·깊이"
  화면 표시       "직무 역량"

DB 컬럼(technical_accuracy)·API 필드는 그대로 둔다. 값의 의미는 처음부터
"직군 패널이 매긴 직무 역량" 이었고 틀린 건 이름뿐이라, 스키마를 흔들 이유가
없다. 용어집에 대응을 적어 뒀다.

## 곁가지 — 단일 직군 평가위원 라벨

"기술" 이던 라벨이 직군명("백엔드")이 된다. 다직군 경로는 원래 직군명을 썼으므로
이제 단일/다직군이 일관되고, 요약의 "[백엔드] 설계 깊이" 가 "[기술] 설계 깊이"
보다 구체적이다.

## 회귀 테스트

- 20개 직군 **전부** 에 대해 페르소나에 "기술 면접관" 이, 축 이름에 "기술" 이
  들어가지 않는지
- 영업 스펙이 자연스럽게 읽히고 **평가 관점은 여전히 영업의 것**인지
  ("고객 문제 파악")
- 중립화가 개발 직군의 관점까지 뭉개지 않았는지 (백엔드에 "트랜잭션")

AI 437 / 백엔드 353 / 프론트 201 통과.
@i3months
i3months merged commit b1bfd0b into dev Sep 29, 2026
6 checks passed
i3months added a commit to i3months/stackup that referenced this pull request Oct 6, 2026
면접 품질 백로그의 L9(앵커 축별 분리). 아직 유효했다.

패널 평가위원 N명에게 score_basis 를 shared 로 넘기고 있었다. 그 블록에는 네
축(technical/logic/communication/**overall**)의 기준값이 전부 들어 있다.

프롬프트는 이렇게 지시한다:

  "'점수 기준값(score_basis)'에 해당 축 기준값이 있으면 그 값에서 ±15점 이내로 산정"

그런데 기준값 라벨(logic_score)과 위원의 축 이름(논리·인과관계 명확성)이
**다르다**. 위원이 스스로 짝을 찾아야 한다. 직군 위원은 Team-StackUp#268 이후 축 이름이
"직무 역량·깊이"인데 라벨은 technical_accuracy 라 더 멀다.

그리고 overall_score 가 보인다 — **어느 위원도 써서는 안 될 앵커**다. 남의 축
숫자도 앵커링으로 새어 들어간다. 논리 위원이 technical 80 을 보면 자기 점수를
그쪽으로 당긴다.

## 고친 방법

build_axis_score_basis 가 축별 기준값을 만들고, 패널이 위원마다 자기 것만
주입한다. 라벨도 위원의 축 이름과 같은 말로 쓴다(직무 역량/논리/전달력).

  직무 역량 기준값 ≈ 80 (per-answer correctness 평균)
  이 값에서 ±15점 이내로 산정하세요. 다른 축의 기준값은 주어지지 않습니다.

주의한 것 셋:

- 직군 위원은 여러 명이라 key 가 tech:{직군} 이다. axis_of 가 이걸 technical 로
  접는다 — 하나라도 빠지면 그 위원만 조용히 옛 동작으로 떨어진다.
- 축별 기준값이 없으면(per-answer 평가 0건) 기존 공용 문자열로 **폴백**한다.
  앵커가 통째로 사라지면 점수가 캘리브레이션 없이 흔들린다.
- 단일 생성기는 네 축을 한 번에 내므로 전체 기준값이 필요하다. 선택 인자로 두고
  소비자가 지원 여부를 보고 넘긴다.

숫자 계산은 _score_baselines 한 곳으로 모았다 — 전체 문자열과 축별 값이
달라지면 안 된다.

## 테스트

  tech:BACKEND · tech:SALES · technical 이 모두 technical 로 접힌다
  각 축이 자기 숫자만 본다 (80 / 20 / 100 으로 서로 달라 섞이면 드러남)
  **overall 이 어느 위원에게도 안 보인다**
  **남의 축 라벨도 안 보인다**
  평가 0건이면 공용 기준값으로 폴백한다

가드 둘 다 회귀를 잡는지 확인했다 — 축별 주입을 지우면, tech: 매핑을 지우면
각각 실패한다.

AI 449건 통과.
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