---
name: portfolio-build
description: 개발자 슬라이드 포트폴리오(자기완결형 HTML 덱)를 제작한다. references/의 디자인 레퍼런스를 하나 골라, 사용자 자료(기존 포폴 HTML·PDF, 이력서, 아키텍처·대시보드 이미지 폴더, GitHub 레포)에서 내용과 이미지를 추출해 채우고 근거 있는 슬라이드만 남긴다. "포트폴리오 만들어줘/제작/리디자인해줘", 이력서·PDF로 포폴 뽑아달라는 요청에 사용.
argument-hint: "[자료 경로] · 디자인(자동/무드명)"
user-invocable: true
triggers:
  - "포트폴리오 제작"
  - "포트폴리오 만들"
  - "포폴 제작"
  - "포폴 만들"
  - "포트폴리오 리디자인"
  - "이력서로 포폴"
  - "포트폴리오 템플릿"
  - "슬라이드 포트폴리오"
---

# 포트폴리오 제작 (Portfolio Build)

`references/`의 디자인 레퍼런스를 **디자인 템플릿**으로 삼아(미리캔버스·Canva처럼 슬라이드를 지우고·복제하고·재배치) 사용자 자료로 채워 자기완결형 포트폴리오 HTML을 만든다. 슬라이드 종류·개수·순서는 고정이 아니다.

**번들 파일 — 필요할 때만 연다**
- `references/README.md` — 디자인 무드 카탈로그 (Step 1에서 선택)
- `structure-guide.md` — 슬라이드별 작성 원칙 + 수치 정합 체크리스트 (Step 4에서 참조)
- `scripts/extract_pdf_images.py` — PDF에서 이미지 추출 (Step 2, PDF 입력에서 실행)

## Step 1 · 두 가지를 먼저 받는다
1. **디자인** — `references/README.md`의 무드에서 고르게 하거나, "자동"이면 직무·공고 톤으로 고른다.
2. **자료** — "가진 걸 다 주세요: 기존 포폴(HTML/PDF), 이력서, 아키텍처·대시보드 이미지, GitHub, (선택)공고." 프로젝트 정보가 아예 없으면 프로젝트별 문제·역할·기술·성과만 물어 확보한다.

## Step 2 · 입력별 추출

| 입력 | 내용 | 이미지 |
|---|---|---|
| 이력서 (MD/PDF/텍스트) | 프로젝트·경력·기술·성과 수치 파싱 | 이력서엔 이미지가 없다 → 이력서의 **GitHub 레포를 열어 README 확인**, 아키텍처·대시보드·실행 스크린샷만 raw URL로 받아 `assets/`에 저장. 없으면 자리 비움 |
| 이미지 폴더 | — | 파일명·내용으로 맞는 슬라이드(아키텍처/증거)에 배치 |
| PDF 포폴 | 텍스트 추출 | `python scripts/extract_pdf_images.py <pdf> assets/` 실행 → 나온 그림 중 근거 이미지만 선별 사용 |
| 기존 HTML 포폴 | 문구·수치·이미지 재사용 | 그대로 이관 |

배지·로고·장식 이미지는 쓰지 않는다. 근거(다이어그램·대시보드)만.

## Step 3 · 슬라이드를 자유롭게 구성 (디자인 템플릿처럼)
레퍼런스 슬라이드는 고정 세트가 아니라 **재사용 블록**이다. 미리캔버스/Canva처럼 지우고·복제하고·재배치해 자료 모양에 맞춘다:
- 근거 없는 슬라이드는 삭제(경력 없으면 경력 타임라인, 수상 없으면 교육·자격). 최소 = 표지·프로젝트·마무리.
- 프로젝트가 여럿이면 프로젝트 블록을 복제(하나여도 됨). **프로젝트마다 패턴이 달라도 된다** — 문제가 많으면 문제별로 상세 슬라이드를 쪼개 각 대시보드·해결을 싣고, 종합 성능이면 대시보드 1장으로 합친다.
- 순서·개수는 자료에 맞춘다. 없는 레이아웃이 꼭 필요할 때만 새로 만든다.

## Step 4 · 채우기
`[대괄호]`·샘플 문구·수치를 실제 값으로 교체(예시 잔존 금지). 근거 없는 수치·안 쓴 기술·과장 형용사 금지, 팀 프로젝트는 본인 기여만. **수치 정합**과 슬라이드별 원칙은 `structure-guide.md` §2–3.

## Step 5 · 마지막 점검 (보여주기 전 빠르게)
완성본을 사용자에게 보여주기 전에 브라우저로 한 번 열어 슬라이드를 훑고, 아래만 빠르게 본다:
- **글·이미지 배치** — 이미지가 그걸 설명하는 글(캡션·본문) 옆에 붙어 있는가. 대시보드/아키텍처 이미지와 설명이 서로 다른 자리로 떨어져 있지 않은가.
- **가독성 줄바꿈** — 글자 깨짐이 아니라 읽기 흐름. 한 단어만 넘치는 고아 줄, 어색한 끊김이 없는가.
- **빈 곳** — 남은 `[대괄호]`·미교체 샘플·빈 이미지 자리가 없는가. 명백한 레이아웃 깨짐·오버플로가 없는가.

걸리는 것만 고쳐서 보여준다. 세부 조정은 사용자가 요청하면 그때 반영한다.

<!--
Original skill: techeer-sv/Career-Skills/skills/portfolio-build/SKILL.md
Source: https://github.com/techeer-sv/Career-Skills/blob/9a5d83c5d5176cf0f0918a543f443dbac2f67150/skills/portfolio-build/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.

-->
