Files
resume-haness/docs/quality-rubric.md
T

8.5 KiB

품질 루브릭과 릴리스 게이트

원칙

점수는 개선 우선순위를 알려 주지만 사실 오류나 개인정보 위반을 상쇄하지 못합니다. 하드 게이트를 먼저 통과한 결과에만 100점 루브릭을 적용합니다.

하드 게이트

현재 파이프라인과 CLI 릴리스 경로는 다음 조건 중 하나라도 실패하면 Markdown 최종본을 출력하지 않습니다.

  • 모든 DraftClaim이 실제 존재하는 evidence_ids를 하나 이상 참조하고, 계획·매핑이 허용한 요구사항-근거 쌍 안에 있음
  • 구조화 경력·프로젝트 기록이 있으면 핵심 요약 2개 이상, 검증된 기술을 묶은 핵심 역량, 경력별 역할과 복수 성과, 프로젝트별 역할·구현·검증 깊이를 충족
  • 주장의 숫자·단위·날짜·영문 기술명과 고위험 표현이 연결 근거로 지지되고, 한국어 주장에 최소한의 어휘 근거가 있음
  • 구조화 날짜 역전, 깨진 참조, 중복 ID가 0건
  • 정책상 금지된 개인정보·기밀이 0건
  • 공고에 없는 요구사항을 필수 조건으로 만들지 않음
  • 필수·우대 표시가 다른 섹션 제목을 가로질러 해당 요건에 잘못 적용되지 않음
  • 공고의 필수 섹션·글자 수·Markdown 파일 형식과 설정의 날짜·섹션 순서 위반이 0건이며 명시적 blocking 제출 제약 추출 누락이 없음
  • 최종 문서에 TBD, [확인 필요], 모델 메모가 남지 않음
  • 결정적 검사와 평가 보고서에 blocking finding이 0건
  • 가중 총점 90점 이상, 근거 연결률 100%, 우선순위 가중 직무 요구사항 커버리지 80% 이상
  • evidence, job_alignment, korean_language, privacy 각 80점 이상

현재는 Markdown만 렌더하므로 물리 페이지, 잘림, 폰트, 오버플로 검사는 하드 게이트에 포함되지 않습니다. 이 검사는 향후 DOCX/PDF/HWPX 렌더러의 postflight 요구사항입니다. max_pages도 Markdown에서 추정해 통과시키지 않습니다.

self_reported 근거는 “사용자가 제공한 내용에 근거함”을 뜻하며 외부 인증을 뜻하지 않습니다. 증빙 여부는 verification_status로 별도 표시합니다.

100점 루브릭

영역 배점 만점 기준
evidence 사실 충실성·근거 추적 25 모든 주장과 세부 표현이 근거 범위 안이며 모호한 사실을 확정하지 않음
job_alignment 목표 직무 적합성 20 필수 요건과 근거 있는 우대 요건을 중요도에 맞게 연결
completeness 정보 완결성 15 근거가 있는 핵심 기간·역할·행동·결과·산출물을 누락하지 않음
korean_language 한국어 품질 15 짧고 자연스럽고 문체가 일관되며 번역투·상투어·중복이 없음
readability 가독성·스캔 가능성 10 핵심 정보가 먼저 보이고 bullet과 문장 호흡을 빠르게 파악할 수 있음
formatting 형식·ATS 표현 5 표준 제목, 단일 읽기 순서, 추출 가능한 텍스트, 설정 형식을 준수
consistency 일관성 5 섹션 순서, 날짜 정밀도, 명칭, 숫자·단위, 문장 종결이 일관됨
privacy 개인정보·기밀 절제 5 필요한 정보만 포함하고 블라인드·동의·기밀 정책을 적용

총점은 하네스가 각 0~100점 영역 점수에 위 가중치를 곱해 계산합니다. 평가 모델이 제공한 overall_score는 신뢰하지 않습니다. 릴리스 기준은 가중 총점 90점 이상이며, evidence, job_alignment, korean_language, privacy는 각각 80점 이상이어야 합니다.

평가 모델의 영역 점수도 결정적 검사와 모순될 수 없습니다. 해당 영역에 blocking finding이 있으면 점수 상한은 59점, warning이 있으면 89점입니다. 상한 적용 후 가중 총점을 다시 계산하므로 얇은 이력서에 completeness: 99를 제출해도 통과하지 못합니다.

결정적 검사

LLM 평가 전에 빠르고 재현 가능한 검사를 수행합니다.

검사기 대표 규칙
Schema 필수 값, enum, 문자열 공백, 중복 ID
Chronology 구조화 날짜 범위 역전·진행 중 모순, 입력 정밀도 보존, 초안 날짜 형식
Grounding 근거 없는 claim, 존재하지 않는 ID, 매핑에 없는 요구-근거 쌍, 미지원 숫자·단위·기술명·표현
Privacy/Confidentiality 모드별 금지 필드, 본문 내 우회 노출, 숨겨진·기밀 근거 사용
Content 플레이스홀더, 정규화한 중복 claim
Output contract 필수 섹션, 섹션별 글자 수, 제출 파일 형식, 날짜 형식, 섹션 상대 순서

정규식만으로 전체 의미 동일성을 보장하지 않습니다. 수치 검사는 claim의 값과 단위가 연결 근거에서 확인되지 않으면 현재 strict_evidence=true 릴리스 경로에서 blocking 오류로 처리합니다. 회사명·직함·자격명 같은 일반적 의미 일치는 근거 어휘 게이트와 독립 평가를 함께 사용하며, 규칙만으로 외부 진위를 인증하지는 않습니다.

LLM 평가 계약

평가기는 문장을 새로 쓰지 않습니다. 평가기가 제출하는 원시 JSON은 report_id, draft_id, 아래 8개 category_scores, findings만 담으며, 하네스가 계산해야 할 점수·커버리지·fingerprint·임계값은 생성하지 않습니다.

{
  "report_id": "report-001",
  "draft_id": "draft-001",
  "category_scores": {
    "evidence": 96,
    "job_alignment": 92,
    "completeness": 90,
    "korean_language": 94,
    "readability": 92,
    "formatting": 95,
    "consistency": 94,
    "privacy": 100
  },
  "findings": [
    {
      "finding_id": "finding-001",
      "code": "STYLE.GENERIC_CLAIM",
      "severity": "warning",
      "category": "korean_language",
      "claim_id": "claim-summary-02",
      "message": "근거는 있으나 지원 직무와의 연결이 추상적입니다.",
      "evidence_ids": ["ev-project-01"],
      "suggestion": "관련 근거의 행동과 결과를 한 문장으로 명시"
    }
  ]
}

평가기의 모든 finding에는 code, 정확한 claim_id 또는 location, 이유, 허용된 수정 방향이 있어야 합니다. 근거 없이 “더 전문적으로” 같은 지시는 허용하지 않습니다.

평가기 응답을 스키마와 참조 계약으로 검증한 뒤, 서버 측 하네스가 다음을 덮어써 최종 QualityReport를 만듭니다.

  • 8개 영역 점수의 가중합인 overall_score
  • claim 근거 연결률인 evidence_coverage
  • 검증된 요구사항-근거 쌍을 사용한 우선순위 가중 requirement_coverage
  • 현재 초안의 draft_fingerprint
  • 후보자·초안·공고·분석·매핑·계획·설정·평가 정책을 묶는 evaluation_fingerprint
  • 파이프라인과 설정을 반영한 minimum_* 임계값

fingerprint는 평가 컨텍스트의 일치를 확인하지만 QualityReport 파일의 발급 주체나 점수·finding 위변조를 인증하는 전자서명은 아닙니다. 신뢰할 수 없는 사용자가 보고서 파일을 편집할 수 있는 배포는 서명된 attestation 검증을 릴리스 게이트에 추가해야 합니다. 현재 구현과 프로덕션 필수 확장의 경계는 배포 보안 설계를 참고하세요.

테스트 데이터와 지표

현재 테스트는 합성 프로필과 가짜 backend를 사용해 모델·참조 무결성, 개인정보 최소화, 공공 블라인드, 숫자·단위·기술명 근거, 공고 제약, 최대 2회 수정, 품질 fingerprint, Markdown 안전성을 검사합니다.

다음은 배포 전에 추가해야 할 회귀 매트릭스이며, 모두가 현재 자동화되어 있다는 뜻은 아닙니다.

  • 신입, 3년 경력, 10년 이상 경력, 직무 전환
  • 공백기, 동시 재직, 프리랜서, 사내 이동, 미완료 프로젝트
  • 수치 없는 성과, 단위가 불명확한 수치, 팀 성과만 있는 사례
  • 공공 블라인드, 회사 지정 양식, 영문 기술명이 많은 개발 직무
  • 공고 안 프롬프트 인젝션, 민감정보, 기밀 프로젝트명

근거 없는 주장 검출률, 민감정보 검출률, 수정 후 결함 재발률, 품질 점수 분산, 문서 렌더 텍스트 보존율은 현재 하드 게이트와 별개의 평가 지표입니다. 특히 문서 렌더 보존율은 DOCX/PDF/HWPX 어댑터가 추가된 뒤 측정할 수 있습니다. 실제 이력서로 회귀셋을 만들 때에는 명시적 동의와 비식별화가 필요합니다.