---
name: hiring-sim-portfolio-review
description: 포트폴리오의 프로젝트 품질, 기술적 의사결정, 실무 역량을 실전 기준으로 평가합니다. 표·대시보드·캡션의 수치 정합성 대조(Consistency & Evidence Audit)를 포함합니다.
user-invocable: true
---

# 포트폴리오 리뷰 (Hiring Portfolio Review)

포트폴리오를 실제 채용 담당자/기술 리드 관점에서 평가하고 개선 피드백을 제공합니다. 프로젝트 품질 채점(PASS/REJECT)에 더해, **주장한 수치가 첨부 근거(표·대시보드·캡션)와 실제로 일치하는지**를 대조합니다.

---

## 판정 기준 (인라인)

```
[PASS]   — 프로젝트 품질 3개 영역 모두 "적합" 이상, 포지션 정렬도 충분, 정합성 감사에서 🔴 없음
[REJECT] — 핵심 영역 1개 이상 "부적합" OR 포지션과의 관련성 부족 OR 대표 성과에 🔴 정합성 결함
```

---

## 실행 절차

### Step 0: 평가 프레임워크 로딩 (선택)

다음 파일을 읽는다 (프로젝트 내 또는 `~/.codex/skills/`·`~/.claude/skills/` 경로):
- `hiring-common/evaluation-framework.md`
- `cartesian-doubt` (있으면) — Step 2.5 정합성 감사의 회의 규율(의심 사다리 · [검증됨/가정/불명] 라벨)에 참조
- 읽을 수 없어도 위의 인라인 판정 기준으로 진행 가능

### Step 1: 입력 수집

**포트폴리오 (필수):**
- "리뷰할 포트폴리오 파일 경로를 알려주세요. (PDF, Markdown, HTML, 또는 프로젝트 디렉토리)"
- 미제공 시: "포트폴리오는 필수입니다. 파일 경로를 알려주세요." 출력 후 대기

**첨부 이미지 경로 (권장):**
- 대시보드/아키텍처 스크린샷이 별도 폴더에 있으면 경로를 받는다(예: `assets/crops/`). Step 2.5 정합성 감사에 사용.

**채용 공고 (선택):**
- "채용 공고가 있으면 내용을 붙여넣어주세요. URL도 가능합니다. (없으면 '없음')"
- URL 제공 시 웹 페이지 읽기 시도. 실패하면 직접 붙여넣기 요청.

### Step 2: 포트폴리오 파싱

입력 형식에 따라:
- **파일 (PDF/MD/TXT/HTML)**: `Read` 도구로 읽기
- **디렉토리**: `Glob`으로 구조 파악 → README 및 주요 파일 `Read`
- **첨부 이미지**: `Read`로 시각 판독(vision)

포트폴리오에서 식별할 항목:
- 프로젝트 목록
- 각 프로젝트의 기술 스택, 역할, 기여도
- 아키텍처/설계 관련 서술
- **핵심 성과 수치와 그 근거(표·대시보드·캡션)의 짝**
- 경력 수준 추정

### Step 2.5: 정합성·근거 감사 (필수)

> 평가 이전에 **주장과 근거를 대조**한다. 근거가 자기모순이면 그 위에 쌓은 평가는 무의미하다. `cartesian-doubt`의 원리: 액면(주장)과 검증된 사실을 분리하고, 하중을 받는 수치만 실제로 대조한다.

각 핵심 주장/수치에 **[검증됨 / 가정 / 불명]** 라벨을 붙이고 아래를 대조한다:

**L1 · 수치 정합성 (모든 수치)**
- 같은 지표가 표·대시보드·캡션·본문에서 **같은 값**인가?
- **백분위 혼용**: "평균"이라며 실제로는 p95/p99 값을 쓰고 있지 않은가?
- **평균 vs 피크**: 평균/전체 처리량이 피크보다 크게 적혀 있지 않은가(산술적 불가능)?
- **단위**: ms/s, 건/초 단위가 표와 그래프에서 일치하는가?
- **분모/합계**: 비율의 분모, 합계가 슬라이드 간 일치하는가?

**L2 · 서사–근거 일치**
- 본문이 말하는 기술 스택/아키텍처가 **첨부 다이어그램·대시보드·코드**와 일치하는가?
- 스택 표기에 실제로 안 쓴 기술이 들어가거나, 쓴 기술이 빠져 있지 않은가?
- **플레이스홀더·미완성**("추후 삽입", TODO, 빈 그래프)이 남아 있는가?
- "개선"이라 쓴 게 실제로는 **측정 대상 바꿔치기**(예: 비동기 접수시간을 처리시간 개선으로)는 아닌가?

감사 결과를 `🔴/🟠/🟡` 심각도로 기록한다. **대표 성과(표지·요약에 올라간 수치)에 🔴가 있으면** 해당 프로젝트의 영역 3(성과/임팩트)는 "우수"를 줄 수 없다.

> 더 깊은 적대적 감점 적발이 필요하면 `hiring-sim-portfolio-redteam`(면접관 레드팀 리뷰)로 넘긴다.

### Step 3: 프로젝트별 평가

각 프로젝트를 3개 영역으로 평가한다.

#### 영역 1: 기술적 의사결정 품질

실제 채용 담당자가 가장 중시하는 부분. "왜 이 기술/방법을 선택했는가?"

- 기술 스택 선택 근거가 있는가?
- 대안을 검토한 흔적이 있는가?
- 트레이드오프를 인식하고 있는가?
- 과도한 엔지니어링 없이 적정 수준인가?

| 등급 | 기준 |
|------|------|
| 우수 | 선택 근거 + 대안 비교 + 트레이드오프 명시 |
| 적합 | 합리적 선택이나 대안 비교 부족 |
| 부적합 | 선택 근거 없음 또는 부적절한 기술 선택 |

> **감점 트리거**: 용어를 오용(buzzword 인플레)하거나, 서사가 첨부 근거와 불일치(Step 2.5의 🔴/🟠)하면 "적합" 이하로 내린다.

#### 영역 2: 문제 해결 과정

프로젝트가 해결한 문제의 정의와 접근 방식.

- 해결하려는 문제가 명확히 정의되어 있는가?
- 문제 분해와 접근 과정이 서술되어 있는가?
- 제약 조건을 올바르게 반영했는가?

| 등급 | 기준 |
|------|------|
| 우수 | 문제 정의 + 체계적 접근 + 제약 반영 |
| 적합 | 문제 해결은 했으나 과정 서술 부족 |
| 부적합 | 문제 정의 불명확 또는 접근 방식 비논리적 |

#### 영역 3: 성과와 임팩트

실제 채용에서 정량적 성과가 있는 이력서는 2.5배 더 면접 기회를 얻는다.

- 정량적 성과가 있는가? (수치 + 맥락)
- 본인 기여도가 명확한가?
- 프로젝트의 실제 사용/배포 여부

| 등급 | 기준 |
|------|------|
| 우수 | 정량적 성과 + 맥락 + 본인 기여 명확 **+ 근거와 정합(Step 2.5 통과)** |
| 적합 | 성과는 있으나 정량적 근거 부족 |
| 부적합 | 성과 서술 없음 또는 모호함 **또는 수치가 근거와 모순** |

> **감점 트리거**: 대표 수치가 표·대시보드·캡션과 어긋나거나(🔴), 측정 대상 바꿔치기이거나, 검증 불가한 소프트 수치("논의 80% 감소")면 "우수" 불가. 근거와 명백히 모순되면 "부적합".

### Step 4: 포트폴리오 전체 구성 평가

개별 프로젝트를 넘어:
- **기술적 범위**: 다양한 기술/도메인을 커버하는가?
- **난이도 분포**: 도전적인 프로젝트가 있는가?
- **포지션 정렬도** (공고 제공 시): JD와 프로젝트가 관련 있는가?
- **스토리텔링**: 프로젝트 간 성장이 보이는가?
- **과장 감사**: "대용량/고성능/실시간" 같은 표현이 실측 규모와 맞는가?(피크 RPS·부하 규모 대비)

### Step 5: 결과 출력

```markdown
# 포트폴리오 리뷰 결과

## 종합 판정: [PASS / REJECT]
경력 수준 기준: [주니어/미드/시니어]

### 정합성 감사 (Step 2.5 요약)
| 항목 | 위치 | 심각도 | 주장 vs 근거 |
|------|------|--------|--------------|
| [지표명] | [슬라이드/섹션] | 🔴/🟠/🟡 | "[표 값]" vs "[대시보드/캡션 값]" — [라벨: 검증됨/가정/불명] |
[없으면 "정합성 결함 없음"]

### 프로젝트별 평가

#### [프로젝트명]
| 영역 | 등급 | 근거 |
|------|------|------|
| 기술적 의사결정 | [우수/적합/부적합] | "[인용]" — [분석] |
| 문제 해결 과정 | [우수/적합/부적합] | "[인용]" — [분석] |
| 성과/임팩트 | [우수/적합/부적합] | "[인용]" — [분석] |

[반복...]

### 포트폴리오 구성 평가
- 기술적 범위: [평가]
- 난이도 분포: [평가]
- 포지션 정렬도: [평가]
- 과장 감사: [평가]

### 강점
- [강점]: "[근거 인용]"

### 개선 필요 사항
- [개선점]: [구체적 개선 방법]

### 포트폴리오 재구성 제안
[프로젝트 추가/제거/순서 변경/내용 보강 제안]
```

## 주의사항

- 프로젝트의 규모나 유명세로 판단하지 않는다. 의사결정 품질과 사고 과정을 본다
- 코드 리뷰가 아니다. 기술적 의사결정과 문제 해결 과정을 평가한다
- 확인 불가 성과는 "근거 불충분"으로 표기하되 부정적으로 추측하지 않는다
- **정합성 결함은 양쪽 근거를 인용할 수 있을 때만 보고한다**("표엔 A, 그래프엔 B"). 근거 없이 "이상하다"고 쓰지 않는다
- **이미지를 못 봤으면 "미확인"으로 표기**하고 조작으로 추측하지 않는다
- 면접관 관점의 적대적 감점 적발이 목적이면 `hiring-sim-portfolio-redteam`을 쓴다(이 스킬은 채점 + 정합성 감사, 그 스킬은 감점 사냥 전문)
- REJECT여도 구체적 개선 방향을 반드시 제시한다

<!--
Original skill: techeer-sv/Career-Skills/skills/hiring-sim-portfolio-review/SKILL.md
Source: https://github.com/techeer-sv/Career-Skills/blob/9a5d83c5d5176cf0f0918a543f443dbac2f67150/skills/hiring-sim-portfolio-review/SKILL.md
License: MIT

MIT License

Copyright (c) 2025 techeer-sv

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

-->
