한 줄 소개: 지금 Claude Code로 코드를 쓰고 있다면, 왜 그걸 그대로 써서 취업을 찾아보지 않나요? Career-Ops는 AI 프로그래밍 CLI를 취업 지휘관으로 바꿔줍니다. JD URL을 붙여넣기만 하면 자동으로 평가하고, ATS 이력서를 생성하며, 진행 상황까지 추적합니다. 저자 본인이 이를 통해 740+ 오퍼를 선별하고, 100+ 맞춤형 이력서를 만들었으며, 결국 Head of Applied AI로 합격했습니다.
프로젝트 소개
Career-Ops(다른 이름: careerops)는 AI 기반 구직 파이프라인입니다. GitHub: santifer/career-ops, MIT 라이선스. 핵심 포지션은 다음과 같습니다:
어떤 AI 프로그래밍 CLI든 ‘완전한 구직 커맨드 센터’로 바꾸기.
이건 또 다른 “AI로 이력서 고쳐주는” 도구도 아니고, 무차별 지원하는 봇도 아닙니다. Career-Ops의 설계 철학은 **감산(doing less)**입니다. 수백 개 오퍼 중에서 정말 지원할 가치가 있는 몇 개만 골라주고, A-F 점수 + 6가지 핵심 평가 차원 + ATS 최적화 PDF + 완전 자동 추적까지 제공합니다.
핵심 기능 (15개의 slash command):
| 시나리오 | 명령 | 설명 |
|---|---|---|
| JD URL 붙여넣기 | /career-ops | 자동 파이프라인 (평가 + 리포트 + PDF + tracker) |
| 단일 평가 | /career-ops evaluate | A-F 점수 + 6개 차원 분석 |
| 여러 공고 비교 | /career-ops compare | 복수 오퍼 정렬 |
| 공고 스캔 | /career-ops scan | 45+ 사전 구성 회사, Ashby/Greenhouse/Lever API 실행 |
| 배치 평가 | /career-ops batch | claude -p workers를 병렬로 실행 |
| PDF 생성 | /career-ops pdf | ATS 최적화 이력서 (Space Grotesk + DM Sans 폰트) |
| LaTeX 내보내기 | /career-ops latex | Overleaf 친화적인 .tex |
| 지원 추적 | /career-ops tracker | 상태 개요 |
| 지원서 작성 | /career-ops apply | AI 보조로 폼 작성 (Submit은 누르지 않음) |
| 심층 리서치 | /career-ops deep | 회사 리서치 |
| 면접 준비 | /career-ops interview | 회사 전용 STAR+R 이야기 |
| LinkedIn 접촉 | /career-ops contact | 사람 찾기 + 메시지 초안 작성 |
| 리플레이/패턴 모드 | /career-ops patterns | 리젝 패턴 분석, 대응 전략 최적화 |
| 팔로업 타이밍 | /career-ops followup | 팔로업 일정표 |
| 코스/프로젝트 평가 | /career-ops training / project | 자기 향상 경로 |
지원하는 AI 프로그래밍 CLI: Claude Code / OpenCode / Gemini CLI / Codex / Qwen / GitHub Copilot / Kimi — open agent skill standard을 follow하기만 하면 됩니다.
다국어 지원: 기본은 영어, 그 외 독일어 (modes/de/) / 프랑스어 (modes/fr/) / 일본어 (modes/ja/) / 튀르키예어 (modes/tr/) / 간체 중국어 (README.cn.md) / 번체 중국어 (README.zh-TW.md)가 있습니다.
성과: 저자 santifer가 이를 통해 740+ 오퍼를 평가하고 100+ 맞춤형 이력서를 생성했으며, 최종적으로 Head of Applied AI 오퍼를 받았습니다.
난이도 / 소요 시간 / 얻는 것
- 난이도: ⭐⭐ (중간, Claude Code 같은 AI 프로그래밍 CLI 사용법을 알아야 함)
- 소요 시간: 30–60분 첫 온보딩 (cv.md 준비 + profile 설정 포함)
- 얻는 것:
- 실제로 쓸 수 있는 AI 구직 파이프라인을 한 번 끝까지 굴려보기
- 에이전트 아키텍처의 “User Layer vs System Layer” 설계를 이해하기
- A-F 점수 + STAR+R 스토리로 정밀한 지원을 하는 법 익히기
- WIRED / Business Insider에 소개된 오픈소스 프로젝트가 어떻게 구성되는지 보기
- 15개의 slash command를 손에 넣어, 구직 기간 내내 매일 쓰기
목표 독자 페르소나
- 구직 중 / 이직 중 / 기회가 보이는 개발자
- 이미 Claude Code / OpenCode / Gemini CLI 사용자
- “대량 지원”에서 “정밀 지원”으로 전환하고 싶지만, 쓰레기 오퍼에 시간을 낭비하고 싶지 않은 사람
- 별점(Star) 7k+짜리 프로덕션급 AI 에이전트 프로젝트가 어떤 모습인지 궁금한 사람
TIP
구직 기간에 가장 돈이 많이 드는 건 토큰입니다. Career-Ops의 batch 모드는 10+ 오퍼 평가를 돌리기 정말 편하지만, Claude / Anthropic의 공식 API로 100개 오퍼를 처리하면 하루에 나오는 토큰 비용이 꽤 큽니다. 한 달에 수천 달러(네 자릿수) 토큰 비용이 나오는 건 흔한 일입니다. (예: $20-40/밤)
제가 쓰는 방식(공유, 추천 아님): Defapi를 연결해서 쓰면 Anthropic 호환 프로토콜입니다. Base URL만 한 줄 바꾸면 끝:
# Claude Code를 쓴다고 가정, ~/.claude/settings.json 또는 env에서 수정
ANTHROPIC_BASE_URL=https://api.defapi.org
ANTHROPIC_API_KEY=sk-xxxxx # defapi.org 백엔드에서 발급
Defapi의 대부분 모델은 세 가지 대표 프로토콜 — v1/chat/completions (OpenAI) / v1/messages (Anthropic) / v1beta/models (Gemini) — 모두 호환됩니다. 에이전트 쪽 코드 변경은 0, 평가 프롬프트 / STAR 이야기 / tracker 스키마는 전부 그대로 유지됩니다. 모델은 동일한데 구매 비용만 더 저렴할 뿐이라, 구직 기간의 월 토큰 청구서가 직접적으로 절반 이하로 뚝 떨어지는 것은 사실입니다. 이후 FAQ Q5에서 더 자세히 설명하겠습니다.
핵심 의존성 및 환경
최소 요구 사항:
| 항목 | 요구 사항 |
|---|---|
| Node.js | 20+ |
| AI 프로그래밍 CLI | 최소 1개 설치 (Claude Code / OpenCode / Gemini CLI / Codex / Qwen / Copilot) |
| Playwright | Chromium 브라우저 (PDF 생성에 필요) |
| 운영체제 | macOS / Linux / Windows (WSL 권장) |
선택 / 강화:
| 항목 | 용도 |
|---|---|
| Go 1.21+ | TUI Dashboard 실행 |
| Google AI Studio API Key | gemini-eval.mjs 독립 스크립트 실행 (무료 크레딧) |
| Chromium 브라우저 | 오퍼가 아직 살아있는지 검증 (Playwright가 자동 설치) |
| 각종 LLM API Key | Claude / OpenAI / Anthropic 프로토콜만 맞으면 됨 |
TIP
반드시 Claude Max 구독이 필요하진 않습니다. Career-Ops는 “LLM 프로토콜 구동” 방식이라, v1/messages 또는 v1/chat/completions에 호환되는 어떤 API든 연결할 수 있습니다. (정확한 연결 방법은 위의 “목표 독자” 다음 TIP 참고)
전체 프로젝트 구조 트리
career-ops/
├── AGENTS.md # 에이전트 공용 지시사항 (CLI 공통)
├── CLAUDE.md # Claude Code 전용 (import AGENTS.md)
├── GEMINI.md # Gemini CLI 전용
├── cv.md # 이력서 (사용자가 직접 생성, 핵심 파일)
├── article-digest.md # 하이라이트 증명 (선택)
├── config/
│ └── profile.example.yml # 개인 페르소나 템플릿
├── modes/ # 15개 skill mode
│ ├── _shared.md # 시스템 레이어 공유 컨텍스트
│ ├── _profile.template.md # 사용자 레이어 커스텀 (개인 archetype)
│ ├── oferta.md # 단일 오퍼 평가
│ ├── pdf.md # PDF 생성
│ ├── scan.md # 포지션 스캔
│ ├── batch.md # 배치 처리
│ ├── auto-pipeline.md # URL → 평가 + PDF + tracker
│ ├── de/ # 독일어 모드
│ ├── fr/ # 프랑스어 모드
│ ├── ja/ # 일본어 모드
│ └── tr/ # 튀르키예어 모드
├── templates/
│ ├── cv-template.html # ATS 최적화 CV 템플릿
│ ├── cv-template.tex # LaTeX 템플릿
│ ├── portals.example.yml # 45+ 사전 구성 회사
│ └── states.yml # 지원 상태 사전
├── data/ # 지원 데이터 (gitignored)
│ ├── applications.md # 메인 트래커
│ ├── pipeline.md # 처리 대기 URL 인박스
│ ├── scan-history.tsv # 스캔 중복 제거
│ └── follow-ups.md # 팔로업 기록
├── reports/ # 평가 리포트 (gitignored)
├── output/ # 생성된 PDF (gitignored)
├── jds/ # JD 텍스트를 여기에 저장 (선택)
├── interview-prep/ # 면접 준비
│ ├── story-bank.md # 누적된 STAR+R 이야기
│ └── {company}-{role}.md # 회사 전용 인사이트
├── batch/
│ ├── batch-prompt.md # worker 프롬프트
│ ├── batch-runner.sh # 오케스트레이션 스크립트
│ └── tracker-additions/ # 메인 트래커에 병합 대기
├── dashboard/ # Go TUI (Bubble Tea)
│ ├── main.go
│ └── internal/
├── fonts/ # Space Grotesk + DM Sans
├── providers/ # LLM 제공자 설정
├── docs/ # 다국어 문서 + 미디어 보도
├── examples/ # 샘플 CV / 리포트 / 하이라이트
└── *.mjs # 스캔 / 검증 / 병합 / 헬스체크 스크립트
사용자로서 건드릴 건 cv.md / config/profile.yml / modes/_profile.md / portals.yml 네 파일뿐입니다 — 이것이 User Layer이고, 시스템 업데이트가 건드리지 않습니다. 나머지는 전부 에이전트가 처리합니다.
단계별 안내
Step 1: 클론 + 설치
git clone https://github.com/santifer/career-ops.git
cd career-ops
npm install
npx playwright install chromium # PDF 생성에 필요
WARNING
npx playwright install chromium을 건너뛰지 마세요. 뒤의 /career-ops pdf는 Playwright 렌더링을 쓰는데, Chromium이 없으면 “browser not found”로 바로 에러가 납니다.
Step 2: 헬스 체크
npm run doctor
Node.js 버전, Playwright, 핵심 파일, 디렉터리 권한 등을 검증합니다. 실패하면 의사가(doctor)가 무엇이 빠졌는지 알려주니, 고친 뒤 다시 실행하세요.
Step 3: 내 cv.md 만들기
이게 전체 파이프라인의 시작점입니다 — 이게 없으면 에이전트가 오퍼를 평가할 수 없습니다.
프로젝트 루트에 cv.md를 생성합니다:
# Your Name
**Email:** [email protected]
**Location:** Berlin, Germany (CET)
**LinkedIn:** linkedin.com/in/you
**GitHub:** github.com/you
## Summary
Senior backend engineer with 6 years building distributed systems...
(목표: 2-3단락, “무엇을 했는지 + 가장 강한 1~2가지”를 쓰기)
## Experience
### Staff Engineer — Company A (2023 - Present)
- X를 Y로 마이그레이션 이끌어 Z를 40% 줄임
- (가능하면 수치를 넣으세요. 이 부분은 에이전트가 JD와 매칭하는 데 사용합니다)
### Senior Engineer — Company B (2020 - 2023)
- ...
## Education
...
## Skills
Backend: Go, Python, PostgreSQL, Kafka
AI/ML: PyTorch, LangChain, RAG
...
TIP
직접 다 쓰기 싫다면? Claude Code를 실행한 뒤 “내 예전 이력서를 붙여넣을게요” / “이건 내 LinkedIn URL이에요” / “제가 말해줄게요, 당신이 써줘”라고 하면 에이전트가 cv.md로 정리해줍니다. 온보딩 경로 3가지가 README에 모두 프롬프트로 제공됩니다.
Step 4: config/profile.yml 설정
cp config/profile.example.yml config/profile.yml
config/profile.yml을 열고 아래를 채웁니다:
personal:
name: "Your Name"
email: "[email protected]"
location: "Berlin, Germany"
timezone: "CET"
targeting:
roles:
- "Senior Backend Engineer"
- "Staff Engineer"
- "AI Platform Engineer"
comp_target:
base_min: 130000
base_target: 160000
currency: "EUR"
remote_preference: "remote-first"
deal_breakers:
- "no on-call"
- "no Java"
- "no < 20 person startups"
# 한국어/독일어/프랑스어/일본어/튀르키예어 모드를 쓰려면 아래 줄을 추가
# language:
# modes_dir: modes/de
WARNING
modes/_shared.md를 손으로 편집하지 마세요. 시스템 업데이트가 덮어씁니다. 개인 archetype / 협상 멘트 / 급여 목표는 전부 modes/_profile.md 또는 config/profile.yml에 써야 합니다. README에서 여러 번 강조하는 Data Contract 규칙입니다.
Step 5: portals.yml 설정
cp templates/portals.example.yml portals.yml
기본으로 45+ 회사 + 19개의 검색 query가 들어있어, 다음을 커버합니다:
# AI Labs
- anthropic
- openai
- mistral
- cohere
# Voice AI
- elevenlabs
- vapi
- deepgram
# AI Platforms
- retool
- airtable
- vercel
- temporal
내가 집중해서 보고 싶은 회사를 portals.yml에 추가하기만 하면 됩니다. Job board 커버리지는 Ashby / Greenhouse / Lever / Wellfound / Workable / RemoteFront입니다.
Step 6: 에이전트가 당신을 “Onboard” 하도록 하기
# 설치한 AI CLI 중 하나 선택
claude # Claude Code
# 또는
gemini # Gemini CLI
# 또는
opencode # OpenCode
# 또는
codex # Codex
CLI에서 이렇게 말합니다:
career-ops 설정 도와줘. 방금 clone 했고, cv.md와 config/profile.yml은 다 채워놨어.
온보딩이 완전한지 확인하고, 더 채워야 할 게 있는지도 말해줘.
에이전트가 부팅 점검을 한 번 돌립니다:
cv.md가 있나? ✅config/profile.yml이 정말 존재하나? (.example이 아닌가) ✅modes/_profile.md가_profile.template.md에서 복사된 건가? ⚠️portals.yml이 정말 존재하나? (.example이 아닌가) ✅
어떤 하나라도 ❌가 나오면 가이드 모드로 들어가서 1:1로 보완할 부분을 안내합니다.
TIP
에이전트를 처음 실행하면, “가장 자랑스러운 직업 성취가 무엇인지?”, “deal-breaker가 무엇인지?”, “당신의 superpower는 무엇인지?”를 먼저 물어봅니다. 5분만 더 투자해서 진지하게 답하세요. 이 내용은 modes/_profile.md에 들어가며, 이후 평가 점수가 맞는지 여부는 전부 여기에 달려 있습니다. 첫 주는 새로 온 채용 담당자를 온보딩하는 느낌이고, 둘째 주부터는 대부분의 실전 리크루터보다 당신을 더 잘 이해하게 됩니다.
Step 7: 첫 평가
에이전트에게 JD URL을 붙여넣습니다:
/career-ops https://jobs.anthropic.com/staff-software-engineer-applied-ai
에이전트가 완전 자동 파이프라인을 실행합니다:
- Archetype 탐지 — LLMOps / Agentic / PM / SA / FDE / Transformation으로 분류
- A-F 평가 — 6개 차원 (Role summary / CV match / Level strategy / Comp research / Personalization / Interview prep)
- 리포트 생성 —
reports/001-anthropic-2026-06-09.md에 작성 - PDF 생성 — Playwright 렌더링으로 ATS 이력서를 만들고
output/001-anthropic-cv.pdf로 출력 - 트래커에 기록 —
data/applications.md에 한 줄 추가 - 파이프라인 완전성 업데이트 —
node verify-pipeline.mjs로 검증
대략 30–60초 후, 완전한 평가 리포트와 ATS 이력서 PDF가 나타날 겁니다.
WARNING
첫 평가 점수는 정확하지 않을 수 있습니다. 시스템이 아직 당신을 잘 모르기 때문에 높거나 낮게 나올 수 있어요. 괜찮습니다. 3~5개만 더 돌린 뒤, 결과에 따라 에이전트에게 “이 점수는 너무 높아(또는 낮아), 왜냐하면 XX”라고 피드백을 주세요. 그러면 에이전트가 배운 내용을 modes/_profile.md에 반영하고, 쓰면 쓸수록 더 정확해집니다.
Step 8: 첫 스캔
/career-ops scan
또는 동등하게:
node scan.mjs # 토큰 0, 순수 API로 수집
node scan.mjs --verify # API + Playwright로 2차 검증, 만료된 공고 필터링
45+ 사전 구성 회사 + 19개 검색 query를 한 번 돌리면 보통 200~500개의 신규 공고가 나오고, 그대로 data/pipeline.md의 인박스에 들어갑니다. 그다음 claude -p workers를 병렬로 돌려 평가하면, 하룻밤에 100+ 오퍼 처리도 충분히 가능합니다.
Step 9: TUI Dashboard 실행 (선택)
터미널 UI로 진행 상황을 보고 싶다면:
cd dashboard
go build -o career-dashboard .
./career-dashboard --path ..
6개의 필터 탭, 4가지 정렬 모드, 그룹/플랫 뷰, lazy-loaded 프리뷰, 선택하면 상태가 바로 변경됩니다. Catppuccin Mocha 테마라 비주얼도 좋습니다.
Step 10: 시스템 업데이트 (중요!)
Career-Ops는 업데이트가 빠릅니다. 몇 주마다 새 mode나 회사 설정이 추가됩니다.
# 프로젝트 루트에서 에이전트가 확인하게 하기
claude # 에이전트에게 “career-ops에 새 버전 있는지 확인해줘”라고 말하기
에이전트가 자동으로 node update-system.mjs check를 실행하고, JSON 출력이 다음처럼 나옵니다:
{"status": "update-available", "local": "1.3.0", "remote": "1.4.0", "changelog": "..."}
그리고 “v1.3.0 → v1.4.0 업데이트 가능, 당신의 데이터 (CV / profile / tracker / reports)는 건드리지 않음. 업데이트할까요?”라고 알려줍니다. 업데이트하려면:
node update-system.mjs apply # 업데이트
node update-system.mjs rollback # 마음에 안 들면 롤백
자주 겪는 문제 해결
Q1: cv.md를 찾지 못함 / 에이전트가 온보딩에서 멈춤
가장 흔한 원인은 cv.md를 프로젝트 루트에 두지 않은 경우입니다:
# 프로젝트 루트에 있는지 확인
ls -la cv.md
# -rw-r--r-- cv.md가 보이면 정상
# 없으면 생성 (프로젝트 루트에서)
cd career-ops
touch cv.md
# 그리고 내용을 채우기
Q2: PDF 생성 실패, "browser not found"
Playwright가 설치되지 않았거나 Chromium이 설치되지 않은 경우입니다:
npx playwright install chromium
# 국내 네트워크가 느리면 미러를 추가할 수 있습니다
PLAYWRIGHT_DOWNLOAD_HOST=https://npmmirror.com/mirrors/playwright npx playwright install chromium
Q3: 평가 점수가 과대/과소
첫 주에는 다들 그렇습니다. 해결 방법:
- 평가를 3~5번 더 돌리면서, 매번 에이전트에게 “이 점수는 동의하지 않아, 이유는 XX”라고 피드백하세요.
- 에이전트가 배운 내용을
modes/_profile.md에 반영합니다. - 특히
modes/_profile.md에 아래가 잘 채워졌는지 보세요: 급여 하한선 / 원격 선호 / 포지션 포지셔닝 / 역(Reverse) 케이스
중요: 개인화 내용은
modes/_profile.md또는config/profile.yml에 작성하고,modes/_shared.md는 수정하지 마세요. 후자는 시스템 업데이트로 덮어씁니다.
Q4: WebSearch / WebFetch로 오퍼 유효성 검증이 정확한가
정확하지 않습니다. Career-Ops의 내부 규칙은 Playwright로 오퍼가 아직 살아있는지 반드시 검증하는 것입니다:
# slash command로 실행하면 내부에서 Playwright를 돌립니다
/career-ops verify --url <JD_URL>
배치 모드 (
claude -p)에서는 Playwright를 쓸 수 없어서**Verification:** unconfirmed (batch mode)로 표시됩니다. 그 경우는 수동으로 다시 확인해야 합니다.
Q5: 배치 평가에서 토큰 소모가 폭발
100+ 오퍼를 평가하면, 하룻밤 토큰 청구서가 $20을 쉽게 넘습니다. 수정은 세 단계로 나뉩니다:
- 배치 수 줄이기 — 한 번에 10~20개 정도로 제한하고, 100+를 한 번에 훑지 마세요.
- 로컬 모델로 대체(백업) —
ofertas(비교) /tracker/pdf같은 구조화 작업은 로컬 소형 모델로 바꿀 수 있습니다. - Defapi 반값 API 연결 — 프로토콜이 완전히 호환되어 공식과 동일한 모델을 쓰지만, 월 청구서가 바로 절반으로 줄어듭니다. (구체 설정은 “목표 독자” 단락 뒤 TIP 참고)
Q6: 독일어 / 프랑스어 / 일본어 / 튀르키예어 모드로 전환
# 1. config/profile.yml 수정
language:
modes_dir: modes/de # 또는 fr / ja / tr
또는 에이전트에게 “독일어 모드로 실행해줘”라고 말하면, 에이전트가 modes/de/ 아래의 평가 로직으로 전환합니다. DACH 시장의 13. Monatsgehalt / Probezeit / AGG / Tarifvertrag 같은 현지화 용어도 포함됩니다.
WARNING
modes/de/로 바꿨으면, 영어 공고에 지원해도 독일어 평가가 돌아갑니다. 독일어 공고만 지원할 게 아니라면 기본 영어 모드를 유지하고, 독일어 공고를 지원할 때만 수동으로 전환하세요.
Q7: 상태 필드에 **Applied** 같은 포맷 오염 데이터가 뜸
tracker 상태가 수동으로 굵게 처리되어 들어갔습니다. 해결:
node normalize-statuses.mjs # 상태 표준화
node dedup-tracker.mjs # 중복 제거
node verify-pipeline.mjs # 헬스체크
이후 templates/states.yml을 수정해 canonical 상태만 남기면 됩니다.
확장 읽을거리 / 고급 방향
- User Layer vs System Layer: 이것이 Career-Ops에서 가장 흥미로운 엔지니어링 설계입니다.
modes/_profile.md(유저)는modes/_shared.md(시스템)로 절대 덮어써지지 않아서, 온보딩의 모든 개인화는 시스템 업데이트를 100번 해도 사라지지 않습니다. 전체 그림을 보려면DATA_CONTRACT.md를 읽어보는 것을 권장합니다. - 아케타입 변경: 에이전트에게 “change the archetypes to data engineering roles”라고 말하면
modes/_shared.md가 아니라modes/_profile.md를 바꿉니다. - 다국어 전환: 독일/프랑스/일본/튀르키예 공고에 지원할 때
modes/{de,fr,ja,tr}/로 전환하면, 평가 로직이 자동 현지화됩니다 (예: CDI / 상여 / 통근 수당 같은 지역 용어). - TUI Dashboard 고급: dashboard는 Go + Bubble Tea + Lipgloss로 작성됐고, Catppuccin Mocha 배색입니다. 소스는
dashboard/internal/에 있으며, 커스텀 필터/정렬을 추가하려면 직접 수정하면 됩니다. - STAR+R 스토리 은행:
interview-prep/story-bank.md는 평가를 넘나들며 “Situation + Task + Action + Result + Reflection” 이야기를 누적합니다. 35번 평가를 거치면 어떤 행동 면접 질문에도 대응할 수 있는 510개 이야기 세트가 생깁니다. - fork용 포트폴리오 세트: 저자의 포트폴리오도 오픈소스입니다 — santifer/cv-santiago. AI 채팅 봇 + LLMOps 보드 + case studies가 있고, 포크해서 본인 것으로 바꾸세요.
GitHub 저장소: santifer/career-ops. 다국어 문서는 README.{cn,es,ja,ko-KR,pt-BR,ru,ua,zh-TW}.md에 있고, 설계 철학은 DATA_CONTRACT.md, 미디어 보도는 docs/press/, 로드맵은 ROADMAP.md에 있습니다. (프로젝트에서 검색이 안 되면 에이전트에게 “show me your roadmap”이라고 물어보세요.)