Communitygithub.com

Portfolio One Shot

실제 작업 파일이 들어 있는 폴더로부터 하나의 명령어로 검증 가능하고 허위가 없는 포트폴리오를 생성합니다.

Portfolio One Shot란 무엇인가요?

이 스킬은 사용자가 실제 작업 파일이 들어 있는 디렉토리를 제공하면, 허위 없이 검증 가능한 포트폴리오를 자동으로 생성해주는 AI 에이전트 기술입니다. Claude Code, Cursor, Codex와 같은 플랫폼에서 사용할 수 있으며, 사용자가 '일관성 있게 포트폴리오를 만들어 줘' 또는 '이 폴더로 포트폴리오 사이트를 만들어 줘'라고 요청할 때 활성화됩니다. 스캔, 구성, 빌드, 검증의 네 단계를 하나의 명령어로 처리하며, 'case_study'(서술형)와 'gallery'(시각 위주) 두 가지 모드를 지원합니다. 출력물은 반응형 HTML 포트폴리오, ATS 호환 일반 텍스트 버전, 마크다운 요약, JSON 데이터 파일, 그리고 누락된 필드를 명시적으로 표시하는 검증 보고서를 포함합니다. 가장 중요한 원칙은 '허위 제로(Zero fabrication)'로, 입력 파일에 없는 프로젝트 이름, 역할, 지표, 클라이언트 등을 절대 생성하지 않으며, 누락된 필드는 빈칸으로 남기지 않고 '[MISSING: field]' 형태로 눈에 띄게 표시합니다. 또한 검증 단계에서 이미지 존재 여부, 대체 텍스트, HTML 구조 등을 점검하고 실패 항목을 먼저 보고하여 사용자가 직접 시각적으로 확인해야 한다는 점을 강조합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/CatsMansion/portfolio-one-shot/tree/HEAD

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

Portfolio One Shot은(는) 무엇을 하나요?

목적

실제 작업이 담긴 디렉토리를, 모델이 허위 프로젝트 사본을 한 줄도 작성하지 않고도 열어보고 기계가 읽고 독립적으로 검증할 수 있는 포트폴리오로 변환합니다.

우선순위에 따른 세 가지 불변 조건:

  1. 허위 제로(Zero fabrication). 표시되는 모든 사실은 파일, README 발췌문 또는 사용자가 제공한 값으로 추적 가능해야 합니다. 누락된 필드는 보이는 그대로의 공백으로 렌더링됩니다. 프로젝트 이름, 역할, 지표, 클라이언트, 인용문, 결과 또는 이미지를 절대 만들어내지 마십시오.
  2. 독립적 검증. 성공을 보고하기 전에 출력에 대해 검증기를 실행하십시오. 실패를 먼저 나열하고, 통과를 그 다음에 나열하십시오. 포트폴리오가 보기 좋다는 증거로 녹색 기준 목록을 제시하지 마십시오. 시각적 판단은 사용자에게 달려 있으며, 직접 눈으로 확인해야 합니다.
  3. 하나의 명령어. all 명령어가 스캔 → 구성 → 빌드 → 검증을 수행합니다. 두 번째 명령어는 워크플로가 아닌 결함입니다.

사용 시기

  • 사용자가 '일관성 있게 포트폴리오를 만들어 줘 / 포트폴리오 사이트를 만들어 줘 / 이 폴더로 프로젝트를 포트폴리오로 만들어 줘'라고 말합니다.
  • 사용자가 이미지, 비디오 또는 프로젝트 폴더 디렉토리를 건네주고 이를 보여주길 원합니다.
  • 사용자가 작업을 추가하거나 제거한 후 포트폴리오를 재생성하려고 합니다.
  • 사용자가 기존 포트폴리오에 누락된 증거가 있는지 확인하려고 합니다.

다음과 같은 경우에는 사용하지 마십시오: 사용자가 가상의 콘텐츠가 포함된 장식용 데모 사이트, 특정 아트 디렉션 시각적 스타일, 또는 호스팅된 플랫폼 통합을 원하는 경우. 이는 다른 작업입니다. 그러한 경우 이 스킬의 제로-패브리케이션 규칙을 조용히 적용하지 말고 차이점을 명확히 말해주십시오.

하나의 명령어

python scripts/portfolio.py all <SOURCE_DIR> --out <OUTPUT_DIR> --mode <case_study|gallery>

예시:

python scripts/portfolio.py all "C:/work/my-projects" --out "C:/work/portfolio-dist" --mode gallery

명령어는 출력 디렉토리에 index.html, portfolio.txt, portfolio.md, projects.json, assets/, build-report.json, verify-report.md를 작성한 다음 검증기 결과를 출력합니다. 파일 프레젠테이션 도구를 사용하여 사용자에게 index.html을 열어 보여줍니다. 시각적 결과물을 목록의 첫 번째에 놓으십시오.

사용자가 projects.json을 편집한 후 재빌드하려면 build와 verify만 실행하십시오:

python scripts/portfolio.py build <OUTPUT_DIR>/projects.json --out <OUTPUT_DIR> --mode gallery
python scripts/portfolio.py verify <OUTPUT_DIR>

워크플로

단계 0 · 모드 결정, 조용히 추측하지 마십시오

소스 연구 결과 두 도메인이 상반된 것을 요구하기 때문에 두 가지 모드가 존재합니다 (references/content-spec.md §도메인 분할 참조).

모드대상텍스트 밀도레이아웃
case_studyUX, 제품, 디자인, 엔지니어링, 연구긴 내러티브; 7개의 필수 필드 그룹섹션당 하나의 프로젝트, 이미지가 사이에 배치됨
gallery게임 아트, 일러스트레이션, 컨셉 아트, 사진, 애니메이션최소한의 단어; 작업이 스스로 말하게 함이미지 중심 그리드, 클릭 시 라이트박스

사용자가 선택하지 않은 경우, 자료에서 유추하여 실행 전에 한 문장으로 추론을 말한 다음 사용자의 한 단어로 덮어쓸 수 있도록 하십시오. 누군가의 포트폴리오에 기본값을 하드코딩하지 마십시오.

단계 1 · 실제 자료 스캔

scan은 하위 디렉토리를 프로젝트로 열거합니다. 각 프로젝트에 대해 다음을 기록합니다:

  • 디렉토리 이름을 프로젝트 제목 후보로 사용 (사실, 창작물 아님).
  • 바이트 크기, SHA-256 접두사 및 픽셀 크기를 포함한 모든 이미지 및 비디오 파일.
  • README.md / project.md / about.md의 첫 번째 단락을 축어적 summary 후보로 사용하며, _sources 항목에 파일명과 줄 범위를 기록합니다.
  • 어떤 파일도 제공할 수 없는 missing 필드 목록.

알 수 없는 확장자의 파일은 삭제되지 않고 manifest.json에 unclassified로 유지됩니다. 소스 파일을 절대 삭제, 이름 변경, 이동 또는 크기 조정하지 마십시오. 출력 디렉토리에만 작성하십시오.

단계 2 · 빌드

build는 projects.json (스키마는 references/config-schema.md 참조)을 읽고 다음을 렌더링합니다:

  • index.html — 라이트 테마, 반응형, 시스템 글꼴 스택, CDN 종속성 없음, 화려한 템플릿 없음. 모든 <img>에는 alt, width, height, loading="lazy"가 포함됩니다. 이미지는 assets/ 아래의 상대 경로를 사용합니다.
  • portfolio.txt — ATS 구문 분석 및 이력서 복사-붙여넣기를 위한 일반 텍스트 프로젝트 요약.
  • portfolio.md — README 또는 이메일용으로 동일한 사실을 마크다운으로 제공.
  • 누락된 필드가 정확히 몇 개인지 명시하는 가시적인 경고 배너가 표시되므로, 뼈대가 완성된 포트폴리오로 오인되지 않도록 합니다.

--embed가 설정된 경우, 10KB 미만의 이미지만 base64로 인라인 처리하고 더 큰 이미지는 외부로 유지하며, 임계값을 초과하는 모든 파일에 대해 경고를 출력합니다. Base64는 페이로드를 약 33% 증가시키며 지연 로딩할 수 없습니다 — references/content-spec.md §이미지 정책 참조.

단계 3 · 보고 전 검증

verify는 필드 완전성, 이미지 존재 여부 및 디코딩 가능성, 의미 있는 대체 텍스트, 플레이스홀더 이미지 호스트 부재, 링크 형태, HTML 구조 및 일반 텍스트 일치를 확인합니다. 실패를 먼저, 통과를 그 다음, 그리고 제한 사항 / 미검증을 나열하여 verify-report.md를 작성합니다.

종료 코드 1은 빨간색 항목이 존재함을 의미합니다. 정직하게 보고하십시오. 기준을 통과하도록 편집하지 말고, 실패한 생성 채널을 재시도하지 말며, 제한 사항을 숨기지 마십시오.

양성/음성 대조군 테스트를 위해 python scripts/portfolio.py verify <dir> --self-test를 실행하십시오. 이 명령은 의도적으로 하나의 손상된 프로젝트와 하나의 완전한 프로젝트를 메모리에서 구성하고, 검증기가 첫 번째를 발견하고 두 번째를 통과시키는지 확인합니다. 음성 대조군이 녹색으로 통과하면 검증기가 손상된 것입니다. 픽스처가 아닌 검증기를 수정하십시오.

단계 4 · 전달

사용자가 열어볼 수 있도록 index.html을 먼저 제시한 다음, verify-report.md, 마지막으로 projects.json을 제시하십시오. 텍스트 응답에서는 검증 결과, 정확한 누락 필드 수, 그리고 다음 단일 작업(projects.json 채우기)을 제공하십시오. 포트폴리오가 보기 좋다고 주장하지 마십시오. 경고 배너가 있는 동안에는 보낼 준비가 되었다고 주장하지 마십시오.

제로-패브리케이션 계약

references/content-spec.md에 문서화된 실패 모드에서 파생된 엄격한 규칙:

  • 입력에 없는 프로젝트 설명, 캡션, 역할, 지표, 결과, 크레딧 또는 클라이언트 이름을 절대 작성하지 마십시오. 누락된 필드는 [MISSING: field]로 렌더링됩니다 — 눈에 띄게, 절대 조용히 비워두지 않으며, 그럴듯한 문장으로 의역하지 않습니다.
  • 실제 작업을 대체하기 위해 플레이스홀더 이미지 호스트(picsum.photos, placehold.co, lorem, 스톡 URL)를 절대 사용하지 마십시오. 이미지가 없는 프로젝트는 명시적인 빈 미디어 블록을 렌더링합니다.
  • _sources 항목 없이 지표를 인용하지 마십시오. 사용자가 지표를 제공하면 source: "user-supplied"를 기록하고 "verified"로 업그레이드하지 마십시오.
  • 스튜디오 이름, 개인 소개 또는 연락처 정보를 절대 만들어내지 마십시오. 비워두고 실패로 나열하십시오.
  • README를 사용할 때는 단락을 축어적으로 복사하고 파일 및 줄 범위를 기록하십시오. 다듬거나, 줄이거나, 다시 쓰지 마십시오.
  • AI 지원 문구를 사용자의 자체 의사 결정으로 제시하지 마십시오. 프로세스 및 성찰 필드는 사용자가 제공할 때까지 비워 둡니다.

다중 버전 출력

동일한 projects.json이 대상별 버전을 지원합니다. build에 프로젝트 ID의 select 목록을 추가하거나 --only id1,id2를 전달하여 한 대상을 위한 버전을 생성하십시오. 재정렬은 구성 변경이며, 자동 재작성이 아닙니다. 이는 발견을 위한 웹사이트와 지원서를 위한 PDF 또는 덱 간의 문서화된 분할을 따릅니다.

주의사항

  • 단편만으로 판단하지 마십시오. 전체 README, 전체 projects.json, 전체 검증기 보고서를 읽은 후에야 어떤 것이 완전하거나 손상되었다고 결론지으십시오.
  • 기준 통과가 품질을 의미하지 않습니다. 녹색 검증기는 파일 구조가 건전하다는 것을 의미합니다. 미적 품질은 사용자의 눈이 필요합니다.
  • 페이지가 완성된 것처럼 보이도록 공백을 채우지 마십시오. 사용자가 사실을 제공하지 않은 경우, 눈에 띄게 불완전한 페이지가 올바른 출력입니다.
  • 개인 디렉토리를 건드리지 마십시오. 스캔은 소스에서 읽기 전용입니다. 모든 쓰기는 출력 디렉토리로 이동합니다.
  • PDF 생성, 호스팅 또는 GitHub API 액세스로 범위를 확장하지 마십시오. 이러한 작업은 사용자의 명시적인 결정이 필요합니다.
  • 이미지 크기가 중요합니다. width와 height를 출력하면 레이아웃 이동을 방지할 수 있습니다. Pillow를 사용할 수 없는 경우 헤더 파싱으로 대체하고 눈에 띄는 경고를 출력하십시오. 조용히 성능을 저하시키지 마십시오.
  • 하나의 폴더는 하나의 프로젝트입니다. 사용자의 자료가 평평한 경우 그룹화를 요청하거나 --flat을 사용하여 모든 미디어를 포함하는 하나의 프로젝트를 만드십시오. 그룹을 만들어내지 마십시오.

리소스

경로역할
scripts/portfolio.py단일 CLI: scan, build, verify, all, --self-test. 표준 라이브러리 및 선택적 Pillow.
references/content-spec.md연구 기반 콘텐츠 규칙, 도메인 분할, 이미지 정책 및 소스 URL. 필드 정의나 템플릿을 변경하기 전에 로드하십시오.
references/config-schema.md전체 projects.json 스키마, 필드 의미 및 소스로 간주되는 항목.
assets/template.html두 모드를 모두 지원하는 라이트 테마 반응형 템플릿. {{TOKEN}} 플레이스홀더만 교체하고, CSS를 다시 작성하여 특정 모양을 추구하지 마십시오.
assets/projects.sample.json명확하게 레이블이 지정된 데모 구성. 사용자의 실제 포트폴리오로 제공하지 마십시오.

관련 스킬