storyteller-renderer
SKILL.md
Storyteller Renderer
템플릿 HTML의 {{placeholder}}를 치환하여 카드뉴스 HTML을 조립하고, Playwright MCP로 1080×1350 PNG를 렌더링한다.
워크플로우
Step 1. 입력 확인
필수 입력:
- 승인된 카드 구성 (planner 출력: 템플릿 타입, 카드별 카피 텍스트)
- 생성된 이미지 파일 경로 (image-maker 출력: 카드별 이미지 매핑)
- 브랜드명, 주제명, 날짜
출력 디렉토리 결정: storyteller/[주제]-[YYYY-MM-DD]/
Step 2. HTML 조립 (템플릿 치환 방식)
템플릿 파일에서 카드 HTML 블록을 추출하고, {{placeholder}}를 실제 값으로 치환하여 render.html을 생성한다.
절차:
- 선택된 템플릿에 따라 템플릿 파일 읽기
- 템플릿 A →
assets/template-a.html - 템플릿 B →
assets/template-b.html
- 템플릿 A →
- planner 출력의
Template과 카드 위치로 HTML 블록 결정:planner 출력 표지 (Card 1) 내용 (Card 2+) Template: A tpl-a-cover 블록 tpl-a-content 블록 Template: B tpl-b-cover 블록 tpl-b-content 블록 - 템플릿에서 CSS(
<style>블록)와 카드 HTML 블록을 추출 - 각 카드마다 해당 타입의 HTML 블록을 복제하고 placeholder 치환:
{{card-id}}→card-01,card-02, ...{{title}}→ planner 카피{{subtitle}},{{body-text}},{{top-label}}→ planner 카피{{brand}}→ 브랜드명{{image}}→ 이미지 상대 경로 (images/cover.png등)
- 치환된 카드 블록들을 하나의 HTML로 조립 →
render.html저장
placeholder 목록 및 카드 타입별 상세는 references/html-assembly.md 참조.
Step 3. Playwright로 개별 카드 렌더링
Playwright MCP 도구를 사용하여 렌더링:
render.html이 있는 디렉토리에서 로컬 HTTP 서버 기동:python3 -m http.server 8765(백그라운드 실행)file://프로토콜은 Playwright MCP에서 차단되므로 반드시 로컬 서버를 사용한다
browser_navigate로http://localhost:8765/render.html열기- 폰트/이미지 로딩 대기 —
browser_evaluate로document.fonts.ready확인 후 2초 추가 대기 browser_take_screenshot으로 각 카드를 개별 캡처:selector:#card-01,#card-02, ...- 파일명:
card-01.png,card-02.png, ... - 순서: 표지(01) → 내용 카드들(02~)
- 렌더링 완료 후 로컬 서버 프로세스 종료
상세 파이프라인은 references/playwright-pipeline.md 참조.
Step 4. 완료 보고
- 생성된 파일 목록 출력
- 파일 저장 경로 안내
출력 파일 구조
storyteller/[주제]-[YYYY-MM-DD]/
├── card-01.png ← 표지
├── card-02.png ← 내용 1
├── ...
├── card-NN.png ← 마지막 내용 카드
├── images/ ← image-maker가 생성한 원본 이미지
└── render.html ← 조립된 HTML (디버깅/재렌더링용)
에러 처리
| 상황 | 대응 |
|---|---|
| 폰트 로딩 실패 | fallback 폰트(sans-serif) 적용, 유저에게 경고 |
| 이미지 파일 누락 | placeholder 배경(#d5d5d5) 적용, 유저에게 알림 |
| Playwright 스크린샷 실패 | 재시도 1회, 실패 시 유저에게 보고 |
| HTML 렌더링 깨짐 | render.html 저장되어 있으므로 유저가 직접 확인 가능 |
하지 않는 것
- 카피 작성/수정 (→ planner)
- 이미지 생성 (→ image-maker)
- 인스타그램 업로드 (범위 밖)
참조 파일
- references/html-assembly.md — 템플릿 파일 위치, placeholder 목록, 치환 규칙, render.html 조립 방법
- references/playwright-pipeline.md — Playwright MCP 렌더링 파이프라인, 뷰포트 설정, 로딩 대기 전략
Weekly Installs
3
Repository
tendtoyj/tendto…e-skillsFirst Seen
Feb 27, 2026
Security Audits
Installed on
opencode3
gemini-cli3
github-copilot3
codex3
kimi-cli3
amp3