Communitygithub.com

JP 매거진 포스터

Codex 스킬로, 사용자 주제나 텍스트를 일본 잡지 스타일 포스터로 제작합니다.

JP 매거진 포스터란 무엇인가요?

이 스킬은 사용자 입력(주제, 텍스트, 이미지 세트)을 일본 현대 편집 디자인 스타일의 포스터 파일(PNG/HTML)로 변환합니다. 총 8개의 템플릿 중 상황에 맞게 선택하여 제목, 인용구, 세부 정보 등의 콘텐츠 영역을 생성하고, 엄격한 우선순위(사용자 제공 → 시스템 비트맵 생성 → SVG 드로잉)에 따라 이미지를 배치합니다. 특히 SVG는 최후 수단으로만 사용되며, 반드시 PNG로 래스터화되어 최종 HTML에 포함됩니다. 이 스킬은 Codex 환경에서 `scripts/render_poster.js`와 `scripts/validate_poster.js`를 통해 실행되며, 단일 설문 라운드 이후 모든 모호성은 합리적인 기본값으로 대체됩니다. 템플릿의 원래 레이아웃(글꼴 크기, 여백, 그리드 등)을 변경하지 않고 콘텐츠를 조정하는 것이 핵심 원칙입니다.

지원 대상~Claude Code✓Codex CLI~Cursor
npx skills add Buds-2025/jp-magazine-poster

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

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

문서

JP 매거진 포스터은(는) 무엇을 하나요?

워크플로

이 스킬을 사용하여 사용자 주제, 원본 텍스트 또는 이미지 세트를 일본 잡지 스타일 포스터 파일로 변환합니다.

  1. 템플릿을 선택하거나 슬롯을 채우기 전에 references/template-contract.md를 읽습니다.
  2. 제작 작업 전에, 정확히 한 번의 양식 형식 확인 라운드를 진행합니다:
    • 사용자의 현재 요청을 1~3개의 짧은 문장으로 요약합니다.
    • 스타일/테마, 포스터 개수, 이미지 소싱, 템플릿 선택, 카피 톤, 출력 디렉터리, 그리고 반드시 사용하거나 피해야 할 콘텐츠에 대한 누락되거나 확인 가능한 선택 사항을 질문합니다.
    • 가능한 경우 구체적인 옵션과 함께 간결한 번호가 매겨진 질문을 선호합니다.
    • 한 번만 질문합니다. 사용자가 답변한 후에 더 명확히 하기 위해 반복하지 않습니다.
    • 사용자가 여전히 정보를 남겨두면 합리적인 기본값으로 진행하고 해당 가정을 스펙 또는 매니페스트에 기록합니다.
  3. 원본 요청과 그 한 번의 답변을 바탕으로 사용자의 테마와 요청된 출력 개수를 이해합니다.
  4. 템플릿을 선택합니다:
    • 사용자가 명시적으로 템플릿 ID를 제공한 경우 이를 사용합니다.
    • 사용자가 모든 스타일을 요청한 경우 8개 템플릿을 모두 사용합니다.
    • 그 외에는 콘텐츠 형태에 맞는 최소한의 템플릿을 선택합니다.
  5. 각 영역에 대한 간결한 콘텐츠를 만듭니다:
    • title: 마침표를 사용하지 않습니다. 짧은 구문은 제목 내에서 쉼표를 사용할 수 있습니다.
    • goldenQuote: 중국어 또는 영어 문장 종료 부호로 끝나야 합니다.
    • detail: 일반적인 구두점과 사실적인 출처 맥락을 사용합니다.
    • 사용자가 명시적으로 원본 인용 텍스트를 요구하지 않는 한 중국어 따옴표를 꺾쇠 괄호로 대체합니다.
    • 한 글자로 된 줄과 한 글자에 구두점이 붙은 줄을 피합니다.
  6. 엄격한 우선순위에 따라 이미지를 선택합니다:
    • 사용자가 제공한 이미지 경로 또는 URL.
    • 시스템에서 사용 가능한 모델이나 도구를 호출하여 테마에 맞는 비트맵 이미지를 생성한 후, 렌더링하기 전에 선택한 래스터 파일을 출력 디렉터리에 저장합니다.
    • 사용자 이미지가 없고 사용 가능한 이미지 생성 모델/도구를 사용할 수 없거나 실패하거나 프로젝트 로컬 비트맵 파일을 반환할 수 없는 경우에만 정교한 SVG 아트워크를 그립니다. 그 이유를 assumptions 또는 manifest에 기록합니다.
    • SVG는 내부 드로잉 소스로만 사용될 수 있으며 최종 HTML 렌더링 전에 반드시 PNG로 래스터화되어야 합니다.
  7. 입력 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.

원래 템플릿 레이아웃을 그대로 유지합니다. 콘텐츠를 강제로 맞추기 위해 글꼴 크기, 줄 높이, 너비, 안전 여백, 그리드 설정 또는 시각적 구조를 변경하지 마십시오. 대신 콘텐츠를 수정하십시오.

관련 스킬