JP 매거진 포스터은(는) 무엇을 하나요?
워크플로
이 스킬을 사용하여 사용자 주제, 원본 텍스트 또는 이미지 세트를 일본 잡지 스타일 포스터 파일로 변환합니다.
- 템플릿을 선택하거나 슬롯을 채우기 전에
references/template-contract.md를 읽습니다. - 제작 작업 전에, 정확히 한 번의 양식 형식 확인 라운드를 진행합니다:
- 사용자의 현재 요청을 1~3개의 짧은 문장으로 요약합니다.
- 스타일/테마, 포스터 개수, 이미지 소싱, 템플릿 선택, 카피 톤, 출력 디렉터리, 그리고 반드시 사용하거나 피해야 할 콘텐츠에 대한 누락되거나 확인 가능한 선택 사항을 질문합니다.
- 가능한 경우 구체적인 옵션과 함께 간결한 번호가 매겨진 질문을 선호합니다.
- 한 번만 질문합니다. 사용자가 답변한 후에 더 명확히 하기 위해 반복하지 않습니다.
- 사용자가 여전히 정보를 남겨두면 합리적인 기본값으로 진행하고 해당 가정을 스펙 또는 매니페스트에 기록합니다.
- 원본 요청과 그 한 번의 답변을 바탕으로 사용자의 테마와 요청된 출력 개수를 이해합니다.
- 템플릿을 선택합니다:
- 사용자가 명시적으로 템플릿 ID를 제공한 경우 이를 사용합니다.
- 사용자가 모든 스타일을 요청한 경우 8개 템플릿을 모두 사용합니다.
- 그 외에는 콘텐츠 형태에 맞는 최소한의 템플릿을 선택합니다.
- 각 영역에 대한 간결한 콘텐츠를 만듭니다:
title: 마침표를 사용하지 않습니다. 짧은 구문은 제목 내에서 쉼표를 사용할 수 있습니다.goldenQuote: 중국어 또는 영어 문장 종료 부호로 끝나야 합니다.detail: 일반적인 구두점과 사실적인 출처 맥락을 사용합니다.- 사용자가 명시적으로 원본 인용 텍스트를 요구하지 않는 한 중국어 따옴표를 꺾쇠 괄호로 대체합니다.
- 한 글자로 된 줄과 한 글자에 구두점이 붙은 줄을 피합니다.
- 엄격한 우선순위에 따라 이미지를 선택합니다:
- 사용자가 제공한 이미지 경로 또는 URL.
- 시스템에서 사용 가능한 모델이나 도구를 호출하여 테마에 맞는 비트맵 이미지를 생성한 후, 렌더링하기 전에 선택한 래스터 파일을 출력 디렉터리에 저장합니다.
- 사용자 이미지가 없고 사용 가능한 이미지 생성 모델/도구를 사용할 수 없거나 실패하거나 프로젝트 로컬 비트맵 파일을 반환할 수 없는 경우에만 정교한 SVG 아트워크를 그립니다. 그 이유를
assumptions또는manifest에 기록합니다. - SVG는 내부 드로잉 소스로만 사용될 수 있으며 최종 HTML 렌더링 전에 반드시 PNG로 래스터화되어야 합니다.
- 입력 JSON 스펙을 작성하고 다음을 실행합니다:
node scripts/render_poster.js --spec input.json --out output/<run-name>
node scripts/validate_poster.js --html output/<run-name>/*.html
검증에 실패하면 카피를 줄이거나 다시 작성하고, 명시적인 줄 바꿈을 조정하며, 이미지 포커스를 변경한 후 다시 렌더링 및 검증합니다.
품질 요구 사항
- 사용자가 명시적으로 질문 건너뛰기를 요청하지 않는 한, 단일 라운드 인테이크 양식이 질문되고 답변될 때까지 렌더링, 이미지 생성 또는 카피 맞춤을 시작하지 마십시오.
- 단일 라운드 인테이크 후에도 누락된 세부 사항은 추가 질문 대신 실용적인 기본값으로 채워야 합니다.
- 최종 HTML은
.svg파일이나data:image/svg+xml을 참조해서는 안 됩니다. - 이미지 소싱은 엄격한 우선순위를 따라야 합니다: 사용자 제공 이미지, 시스템 사용 가능 비트맵 생성, 최후 수단으로 정교한 SVG 드로잉.
- 생성, 드로잉 또는 대체 이미지는 이미지 영역에 배치되기 전에 출력 디렉터리 아래에 PNG/JPEG/WebP 파일로 기록되어야 합니다.
- 템플릿 대체 아트나 SVG 래스터화를 모델/도구 비트맵 생성과 동일하게 취급하지 마십시오. 모델/도구 생성을 건너뛰거나 실패한 경우 정확한 이유를 기록하십시오.
- PNG 포스터 내보내기는 더 선명한 검토 출력을 위해 기본적으로 2배 스케일로 설정됩니다.
- 템플릿 03 object-card의 노트는 각 카드의 고정 216px 행 높이 때문에 매우 짧아야 합니다.
- 템플릿 06 이미지 영역은
.jp-photo-zone { width: 100%; max-width: 100%; }을 유지하여 왼쪽 이미지가 오른쪽 텍스트 열을 침범하지 않도록 해야 합니다.
스펙 형식
최소 입력:
{
"theme": "white",
"templates": ["vertical-02"],
"sourceText": "사용자 주제 또는 원본 텍스트",
"assumptions": ["단일 라운드 인테이크 후 사용된 기본값."],
"images": [
{
"slot": "single-photo-feature",
"src": "D:/path/to/image.png",
"fit": "cover",
"focus": "center 50%"
}
],
"content": {
"title": "포스터 제목",
"goldenQuote": "명확한 편집 문장.",
"details": ["세부 사항 1.", "세부 사항 2."]
}
}
참고:
theme는white,midnight,light또는dark를 허용합니다.templates는vertical-02와 같은 템플릿 ID,vertical-single-photo-headline과 같은 템플릿 이름 또는all을 허용합니다.content.details는 문자열 배열이거나heading,title및body가 있는 객체 배열일 수 있습니다.images[].slot은 템플릿 계약에 나열된data-slot-id또는data-relation-id와 일치해야 합니다.
출력
렌더 스크립트는 다음을 생성합니다:
- 포스터당 하나의 HTML 파일.
- Playwright가 설치되고 Chromium을 사용할 수 있는 경우 포스터당 하나의 PNG 파일.
- 템플릿, 테마, 이미지 소스, 출력 파일 경로, 검증/내보내기 상태를 포함한
manifest.json. - 생성, 대체 또는 SVG 소스 이미지가 래스터화될 때
generated-images/*.png.
원래 템플릿 레이아웃을 그대로 유지합니다. 콘텐츠를 강제로 맞추기 위해 글꼴 크기, 줄 높이, 너비, 안전 여백, 그리드 설정 또는 시각적 구조를 변경하지 마십시오. 대신 콘텐츠를 수정하십시오.