스크린샷 한 장이 프롬프트 100줄보다 빠르다: 치과 블로그 이미지 파이프라인 고도화
3개 세션, 총 454번의 tool call. 그중 절반 이상이 “파이프라인 재실행”이었다.
TL;DR 스크린샷 한 장을 붙이면 프롬프트 설명 100줄보다 빠르게 문제를 잡는다. 치과 블로그 이미지 파이프라인에서 이 패턴을 반복했고, 동시에 saju_global에서는 subagent-driven development로 SEO 궁합 페이지 288개를 자동 생성했다.
스크린샷이 프롬프트를 대체한다
세션 2에서 25시간, 261번의 tool call이 발생했다. 작업 내용은 치과 블로그 이미지 파이프라인(pipeline.py) 고도화였다.
초반에 텍스트로 피드백을 줬다.
“그림 밑에 설명하는 3~4줄 정도의 문구랑 폰트는 톤에맞게, 그 모든 사진의 맨 밑에는 로고 있어야돼 맨 밑 중간에”
에이전트가 pipeline.py를 수정하고 이미지를 재생성했다. 결과는 반쯤 맞았다.
그 다음 턴부터 방식을 바꿨다. 결과물 스크린샷을 붙여서 보냈다.
[스크린샷 첨부] “지금 사이즈의 2배. 이건 과하잖아.”
이 한 문장이 훨씬 정확했다. pipeline.py에서 로고 크기를 제어하는 코드 한 줄로 바로 핀포인트됐다. 텍스트로 “로고가 너무 크다, 이미지 대비 비율이 이상하다”고 설명하는 것보다 스크린샷이 빨랐다.
이 루프가 세션 내내 반복됐다:
스크린샷 첨부 → 피드백 → 에이전트 수정 → pipeline.py 재실행 → 스크린샷 확인
파이프라인 실패(exit code 2)도 여러 번 있었다. 포기하거나 디버깅에 빠지는 대신 에이전트가 에러 로그를 읽고 즉시 다음 시도로 넘어갔다. 세션 2에서만 파이프라인 재실행 시도가 8번 이상이었다.
멀티에이전트 평가: 5개 관점을 동시에
중간에 결과물이 “전체적인 톤이 통일되지 않았다”는 피드백이 나왔다. 텍스트 톤, 디자인, SEO, 이미지 품질, 광고 효과 — 동시에 5개 관점이 필요한 상황이었다.
AgentCrow 패턴으로 5개 에이전트를 병렬 디스패치했다:
@blog-evaluator-tone→ 어미 통일성, 전문성 시그널 평가@blog-evaluator-design→ 색상 통일성, 여백, 폰트 일관성@blog-evaluator-content→ SEO 키워드 밀도, 구조@blog-evaluator-image→ 이미지 24장 퀄리티, 한글 깨짐 여부@blog-evaluator-ad→ CTA 효과, 전환 신호
에이전트가 동시에 돌면서 각각 평가 리포트를 냈다. 색상 통일성 6/10, 이미지 품질 8.2/10 같은 구체적 점수가 나왔다. 그 수치를 기반으로 우선순위를 정했다.
병렬 평가 후 수정 방향이 명확해졌다:
- 배경색 웜 베이지(
#f5f0eb) → 순백(#ffffff)으로 통일 - Gemini 모델을
gemini-3.1-flash로 교체, 고퀄리티 프롬프트 추가 - 과정 이미지를 1단계=1장으로 분할 (기존: 3단계를 1장에 몰아넣음)
- 한글 라벨 필수화 — 영어 없는 것은 절대 금지
SKILL.md가 코드와 함께 진화한다
pipeline.py를 수정할 때마다 반드시 SKILL.md도 함께 업데이트했다. 세션 2에서만 SKILL.md에 12개 Edit이 들어갔다.
이유가 있다. pipeline.py만 고치면 다음 세션 에이전트가 SKILL.md를 읽고 “이 스킬은 캡션 없음”으로 알고 원래대로 되돌릴 수 있다. SKILL.md가 소스 오브 트루스다.
pipeline.py 수정 → SKILL.md 동기화 → 다음 세션에서 일관성 유지
“수정한 내용 스킬에 반영해”라는 프롬프트 한 줄이 이 루프를 돌렸다. 에이전트가 코드 변경사항을 역추적해서 SKILL.md의 해당 섹션을 업데이트했다.
288개 SEO 페이지: subagent-driven development
세션 3에서는 saju_global 프로젝트에서 SEO 궁합 랜딩 288개 페이지를 구현했다. 스펙 파일 하나(docs/superpowers/specs/2026-04-09-seo-compatibility-pages-design.md)에서 시작했다.
흐름:
writing-plans스킬로 구현 계획 생성 →docs/superpowers/plans/2026-04-10-seo-compatibility-pages.md저장subagent-driven-development스킬로 태스크별 독립 에이전트 디스패치- 각 태스크 완료 후 스펙 준수 리뷰 → 코드 품질 리뷰 순서로 2단계 검증
CLI로 직접 실행(npx tsx scripts/generate-compat-content.ts)하는 방법도 있었지만, 에이전트가 병렬로 태스크를 처리하는 게 더 빨랐다. 콘텐츠 생성 스크립트가 백그라운드로 돌면서 182번의 tool call이 발생했다.
세션 3 기준 Bash가 111번으로 가장 많았다. 백그라운드 프로세스 실행, 로그 모니터링, git 워크트리 관리가 대부분이었다.
수치로 보기
| 세션 | 날짜 | 시간 | Tool calls | 주요 작업 |
|---|---|---|---|---|
| 1 | 04-13 | 13h 43min | 11 | spoonai cron 복구, Telegram 설정 |
| 2 | 04-06 | 25h 5min | 261 | 치과 블로그 이미지 파이프라인 고도화 |
| 3 | 04-09 | 105h 43min | 182 | SEO 궁합 페이지 288개 자동 생성 |
도구별 사용 횟수 (전체 3개 세션):
Bash: 174회 — 파이프라인 실행, 로그 확인Read: 138회 — SKILL.md, 템플릿, 기존 코드 검토Agent: 41회 — 병렬 평가, 구현, SKILL 업데이트Edit: 35회 —pipeline.py, 템플릿 HTML, SKILL.md
배운 것
스크린샷 피드백 루프는 비주얼 작업에서 특히 강력하다. 이미지 생성 파이프라인처럼 결과가 눈에 보이는 작업은 텍스트 설명보다 스크린샷 한 장이 에이전트를 더 정확하게 가이드한다.
SKILL.md 동기화는 번거롭지만 생략하면 안 된다. 코드만 고치고 스킬을 안 업데이트하면, 다음 세션 에이전트가 스킬 기준으로 코드를 되돌린다.
파이프라인 실패는 막을 수 없다. exit code 2가 8번 나와도 매번 에러를 분석하고 다음 시도로 넘어갔다. 한 번의 실패에 디버깅에 빠지는 것보다 빠른 반복이 낫다.
Comments 0