From mmk-cardnews
This skill should be used when the user asks to "카드뉴스 만들어줘", "card news", "create card news", "카드뉴스 생성", "make slides", "인스타 카드뉴스", "LinkedIn carousel". Generates Instagram/LinkedIn card news from a topic using AI images and Remotion React rendering.
How this skill is triggered — by the user, by Claude, or both
Slash command
/mmk-cardnews:cardnewsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
> Topic → Research → Plan → AI Images → React Card Components → PNG Stills (+ MP4)
Topic → Research → Plan → AI Images → React Card Components → PNG Stills (+ MP4)
{cwd}/{topic-slug}/
├── src/cards/Card01.tsx ~ CardNN.tsx # React card components
├── src/data.ts # Timing + subtitle data
├── public/card-*.png # AI-generated images
├── out/stills/card-*.png # Exported PNG stills
└── out/output.mp4 # Exported video (optional)
SKILL_DIR = directory where this SKILL.md lives (for references).
node --version
mmk-cn --version
If missing: cd {SKILL_DIR}/../.. && make build
echo $GEMINI_API_KEY
No key → skip image generation, use text-only cards.
Report available features:
환경 확인 완료!
✅ 카드뉴스 생성 (Remotion React)
✅ PNG 이미지 렌더링
✅/❌ AI 이미지 생성 (Gemini)
✅/❌ 영상 렌더링 (MP4)
Type: prompt (WebSearch)
Use WebSearch to gather 5-10 sources on the topic.
Output: {output}/research.md
Structure:
Checkpoint — AskUserQuestion:
"리서치 결과예요. 확인해주세요."
Options: 진행 / 수정 요청 / 여기서 종료
Type: prompt + reference
Read research.md + {SKILL_DIR}/references/card-news-guide.md to create a plan.
Output: {output}/plan.md
Plan includes:
{SKILL_DIR}/references/magazine-styles.md:
Checkpoint — AskUserQuestion:
"기획서예요. 장수나 내용 흐름을 확인해주세요."
Options: 진행 / 수정 요청 / 여기서 종료
mmk-cn new "{title}" --slides {N} --output "{output}"
Then install dependencies:
cd "{output}" && npm install
This creates the Remotion project with skeleton card components.
Requires: GEMINI_API_KEY environment variable or .env file.
Model: gemini-3.1-flash-image-preview (configurable via GEMINI_MODEL).
{output}/batch.json:[
{"prompt": "DO NOT include any text... {english prompt}", "output": "public/card-01.png"},
{"prompt": "...", "output": "public/card-02.png"}
]
mmk-cn imagegen --batch "{output}/batch.json" --aspect-ratio 3:4 --image-size 2K --env-file .env
Aspect ratio note: Canvas is 4:5 (1080x1350) but Gemini only supports 3:4 (closest match). The 3:4 image is slightly taller, so objectFit: "cover" will crop ~6% off left/right edges. When writing image prompts, keep the main subject centered horizontally and avoid placing important elements at the extreme left/right edges to prevent cropping.
Prompt rules (see {SKILL_DIR}/references/art-direction.md):
Checkpoint — AskUserQuestion:
"이미지들이에요. 마음에 안 드는 건 재생성할 수 있어요."
Options: 진행 / 일부 재생성 / 텍스트 온리로 진행
This is the core creative step. Read {SKILL_DIR}/references/card-template-guide.md for patterns.
For each card, write src/cards/CardNN.tsx:
FullBleedCard, SplitCard, or TextOnlyCard pattern from CardTemplate.tsx../magazine-styles (e.g., import { POPEYE } from '../magazine-styles')staticFile("card-NN.png")interpolate()N / {total} at bottom centerOutput language: Default is Korean (polite form). If the user specifies a different language, use that instead. If unclear, ask before writing cards.
Font size rules (mandatory):
| Element | Canvas min | Mobile equiv |
|---|---|---|
| Title (h2) | 48px | ~17px |
| Body (desc) | 36px | ~12px |
| Date/tag | 32px | ~11px |
| Info/source | 30px | ~10px |
| Page number | 28px | ~10px |
| Absolute min | 24px | ~8px |
Update src/cards/index.ts to import all card components.
mmk-cn preview "{output}"
Opens Remotion Studio in browser for live preview and editing.
Checkpoint — AskUserQuestion:
"Remotion Studio에서 미리보기를 확인해주세요."
Options: 진행 / 수정 요청
Always render PNG stills — this step is mandatory, not optional.
PNG stills (always run):
mmk-cn still "{output}"
After rendering, display each PNG image to the user for review.
MP4 video (optional, only if user requests):
mmk-cn render "{output}"
Checkpoint — AskUserQuestion:
"완성! 확인해주세요."
Options: 완료 / 수정 요청
Report completed steps clearly:
완성된 결과물:
✅ Step 1: 리서치 → research.md
✅ Step 2: 기획서 → plan.md
✅ Step 3: 프로젝트 생성 → {output}/
✅ Step 4: 이미지 → public/card-*.png
✅ Step 5: 카드 컴포넌트 → src/cards/
✅ Step 7: PNG 렌더링 → out/stills/
❌ Step 6: (건너뜀)
references/card-news-guide.md — Design rules, card types, color themesreferences/card-template-guide.md — How to write Card TSX componentsreferences/design-system.md — Typography, spacing, mobile readabilityreferences/magazine-styles.md — 6 Japanese magazine style palettes, typography, layout, Remotion constantsreferences/art-direction.md — 9-layer image prompt structure, text zones, lighting, camera directives| Setting | Default | Override |
|---|---|---|
| Gemini API key | (optional) | GEMINI_API_KEY env or .env |
| Gemini model | gemini-3.1-flash-image-preview | GEMINI_MODEL env or .env |
| Image aspect ratio | 3:4 | --aspect-ratio flag |
| Image size | 2K | --image-size flag |
| Slides | 7 | --slides flag |
| Card size | 1080x1350 | Fixed (4:5 portrait) |
| FPS | 30 | Fixed |
Guides collaborative design exploration before implementation: explores context, asks clarifying questions, proposes approaches, and writes a design doc for user approval.
Creates structured, bite-sized implementation plans from specs or requirements before writing code. Useful for breaking down multi-step tasks into testable steps with file structure and task boundaries.
Synthesizes the current conversation into a structured spec (PRD) and publishes it to the project issue tracker with a ready-for-agent label, without interviewing the user.
npx claudepluginhub younghai/claude_cardnews-v2