# Insta Cardnews

> 블로그 링크→인스타 카드뉴스 자동 루틴에 시안판/최종본 구분과 게시 승인 트리거를 추가

- Skill: `jkf87/insta-cardnews` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add jkf87/insta-cardnews`
- Raw SKILL.md: https://api.skillmd.com/api/skills/jkf87/insta-cardnews/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: jkf87 (https://skillmd.com/u/jkf87)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/jkf87/insta-cardnews

---


# Insta Cardnews — 블로그 링크 자동 카드뉴스 루틴 보강

## 추가 트리거

사용자가 블로그 링크와 함께 다음 의도를 말하면 `insta-cardnews` 루틴을 자동 실행한다.

- “인스타 카드뉴스 만들자”
- “카드뉴스로 올려줘”
- “인스타 올려줘”
- “캐러셀로 올려줘”
- “블로그 링크주고 올리라고 하면” 계열 표현

단, 외부 게시이므로 명시적으로 “올려줘/게시해/진행/인스타 올려”가 포함된 경우에만 publish 승인으로 본다. 단순히 “만들자”면 시안/최종본 확인 후 게시 전 멈춘다.

## 기본 산출물

블로그 글 1개를 받으면 기본값은 다음과 같다.

1. 본문 카드 4장
2. 공용 CTA 1장
3. 총 5장 Instagram `CAROUSEL_ALBUM`
4. 모든 최종 슬라이드는 1080×1350으로 정규화

복잡한 글은 6~8장으로 늘릴 수 있지만, 사용자가 장수를 말하지 않으면 5장을 기본으로 한다.

## 시안판 vs 게시용 최종본 구분

이미지 생성기가 4개 슬라이드를 한 이미지 안에 담은 “4컷 시안판” 형태로 출력할 수 있다. 이 경우 절대 그대로 게시하지 않는다.

### 사용자에게 보여줄 때

- 선택용이면 반드시 “선택용 4컷 시안판”이라고 표시한다.
- 게시용이면 반드시 “게시용 최종 슬라이드 1/5 … 5/5”라고 표시한다.
- 한 메시지 안에서 시안판과 게시용 최종본을 섞어 보내지 않는다.

### 사용자가 시안판을 고르면

1. 선택된 4컷 시안판을 4개 슬라이드로 crop/split한다.
2. 각 슬라이드를 1080×1350 흰 배경 캔버스로 정규화한다.
3. 공용 CTA를 1080×1350으로 정규화해 5번째에 붙인다.
4. 최종 게시 전에는 잘라진 1장짜리 슬라이드 5개만 보여준다.
5. “이 5장으로 올라갑니다”라고 명시한다.

## 게시 루틴

게시 승인 후:

1. `paper-loop`에 새 폴더 `instagram-<slug>-<YYYYMMDD>/` 생성
2. 최종 5장만 복사
3. unrelated git 변경은 건드리지 않고 새 폴더만 commit/push
4. GitHub raw URL 5개 생성
5. 캡션은 파일/heredoc으로 작성하고 `repr`, literal `\\n`, paragraph count 검수
6. `scripts/instagram_publisher.py carousel --image-url ... --caption "$CAPTION" --publish`
7. `scripts/instagram_publisher.py recent --limit 3`로 검증
8. 사용자에게 `CAROUSEL_ALBUM`, 장수, 캡션 줄바꿈 확인, permalink 보고

## 주의

- `instagram_publisher.py` 현재 버전은 `--caption-file`을 지원하지 않는다. 캡션 파일을 읽어 쉘 변수 또는 Python wrapper로 `--caption`에 전달한다.
- 셸 변수 검수에서 heredoc Python에 환경변수를 넘기지 않으면 빈 값으로 보일 수 있으므로, 실제 게시 후 반드시 `recent`로 캡션을 재확인한다.
- 4컷 시안판은 “후보 선택용”이고 게시물은 항상 분리된 1장짜리 슬라이드들이다.

