# character-deck-reviser
주제나 문서로 새 편집형 PowerPoint를 만들거나, 기존 캐릭터 PPTX의 원본 자산을 보존하면서 문체와 레이아웃을 고치는 Codex 스킬입니다. 교육 커리큘럼은 생성 이미지·편집 가능한 다이어그램·실제 화면 증거를 구분하고 최종 PPTX, 전체 렌더, 몽타주, 실행 영수증까지 한 묶음으로 남깁니다.
현재 통합 변경 내용은 [Release 2026.08.23.1](RELEASE_NOTES.md)에서 확인할 수 있습니다.
- `create`: 스토리와 맞춤 삽화를 설계해 새 PPTX 제작
- `copy-only`: 기존 배치와 미디어를 유지하고 문구만 수정
- `copy-layout`: 원본 캐릭터를 유지하면서 문구·배치·정보 밀도 수정. 기본은 장수 보존이며, 직접 수정본·취향문서로 승인된 경우 `structure_policy: compress`로 중복 장을 압축
- `character-slide-maker`: `create` 모드로 연결되는 호환 엔트리
- `deck_kind: curriculum`: 문서·실습자료에서 재현 가능한 교육자료 패키지 제작
- `deck_kind: research`: 수치·근거·논리 구조 중심의 설명자료 제작
## 만화로 보는 사용법

1. **자료 준비** — 주제·원문·문서 중 하나와 캐릭터 참조 이미지를 준비합니다.
2. **스킬 호출** — Codex에서 `$character-deck-reviser`를 부르고 원하는 장수와 용도를 적습니다.
3. **생성 또는 수정** — 새 내용이면 `create`, 기존 PPTX 수정이면 `copy-only` 또는 `copy-layout`으로 작업합니다.
4. **검수 후 전달** — 캐릭터 일관성, 편집 가능한 텍스트, 출처 노트, 전체 슬라이드 렌더를 확인한 뒤 PPTX를 저장합니다.
## 설치
저장소 루트를 기본 스킬로 설치합니다.
```bash
mkdir -p ~/.codex/skills
git clone https://github.com/jkf87/character-deck-reviser.git ~/.codex/skills/character-deck-reviser
```
호환 이름과 번들 캐릭터 락도 직접 호출하려면 심볼릭 링크를 추가합니다.
```bash
ln -s ~/.codex/skills/character-deck-reviser/skills/character-slide-maker ~/.codex/skills/character-slide-maker
ln -s ~/.codex/skills/character-deck-reviser/skills/handdrawn-character-lock ~/.codex/skills/handdrawn-character-lock
```
이미 같은 이름의 스킬이 설치돼 있다면 기존 폴더를 확인한 뒤 덮어쓰지 말고 업데이트하거나 별도 경로에 복제하세요.
## 사용 예시
### 주제로 새 발표자료 만들기
```text
$character-deck-reviser
주제: 학교에서 AI를 어떻게 쓸까?
캐릭터 참조 이미지: ./character.png
청중: AI 도구를 처음 사용하는 교사
분량: 20장
결과: 편집 가능한 PPTX
이미지가 필요하면 같은 캐릭터 앵커로 만들어줘.
```
### 문서를 읽고 새 발표자료 만들기
```text
$character-deck-reviser
./lecture-notes.md를 읽고 15장 발표자료로 구성해줘.
문단 순서대로 자르지 말고 발표 흐름을 새로 설계해줘.
캐릭터 참조는 ./character.png를 사용해줘.
```
### 교육자료를 한 묶음으로 만들기
```text
$character-deck-reviser
./curriculum.md와 ./practice를 읽고 deck_kind: curriculum으로 만들어줘.
개념은 생성 이미지, 정확한 수치·표·논리는 편집 가능한 다이어그램,
실습 화면은 실제 캡처로 구성해줘.
최종 PPTX, 전체 슬라이드 이미지, 몽타주, 실행 영수증까지 한 번에 남겨줘.
```
### 기존 PPTX의 문체와 레이아웃 고치기
```text
$character-deck-reviser
./lesson.pptx를 copy-layout 모드로 수정해줘.
원본 캐릭터와 미디어는 유지하고, 추상적인 문장을 실제 동작으로 바꿔줘.
제목을 포함해 선언형·설명형·결론형 문장은 줄이고 질문·장면·근거·관계 표기로 바꿔줘.
마지막에 결론이나 행동 촉구를 억지로 붙이지 마.
```
### 직접 수정본의 취향으로 장수까지 압축하기
```text
$character-deck-reviser
./lesson_v2.pptx에 ./my-slide-taste.md를 적용해줘.
copy-layout, structure_policy: compress로 작업하고 원본은 덮어쓰지 마.
질문 훅·부제·하단 결론이 다음 장과 같은 내용을 반복하면 덜어내되,
수치·규칙·완료 조건·실제 화면은 남겨줘.
삭제 사유와 원본→결과 매핑도 검증해줘.
```
### 호환 엔트리 사용하기
```text
$character-slide-maker
이 원고와 캐릭터 이미지로 새 편집형 PPTX를 만들어줘.
```
`character-slide-maker`는 별도 제작 규칙을 적용하지 않고 `character-deck-reviser`의 `create` 계약으로 연결됩니다.
## 모드 선택
| 입력과 요청 | 모드 | 보존 범위 |
|---|---|---|
| 주제·원고·문서에서 새 덱 제작 | `create` | 제공 템플릿과 선택한 캐릭터 앵커 |
| 기존 덱의 문구만 수정 | `copy-only` | 슬라이드 수·크기, 미디어, 좌표, 폰트 크기 |
| 기존 덱의 문구와 배치 수정 | `copy-layout + preserve` | 장수, 원본 캐릭터·미디어, 매핑된 템플릿 구조 |
| 직접 수정 취향에 따라 중복 장 삭제·병합 | `copy-layout + compress` | 원본 캐릭터, 필요한 원본 미디어, 수치·규칙·증거, 전체 구조 맵 |
## 제작 원칙
- 각 슬라이드의 주장과 삽화를 1:1로 연결합니다.
- 장수를 5~7장으로 고정하지 않고 발표 시간과 내용 밀도로 정합니다.
- 모든 새 삽화는 동일한 승인 캐릭터 앵커에서 독립적으로 만듭니다.
- 새 삽화는 실제 알파 채널이 있는 투명 PNG로 만들며, 지원되는 API 경로에서는 `background="transparent"`와 `output_format="png"`를 지정합니다.
- 제목·본문·숫자·출처는 편집 가능한 PowerPoint 텍스트로 둡니다.
- 외부 유료 이미지 생성 전에는 장수·경로·확인 가능한 예상 비용을 알립니다.
- 마지막 장에 요약·교훈·행동 촉구를 형식적으로 추가하지 않습니다.
- 입력 해시, 실행 매니페스트, 출처 노트, 전체 렌더 결과를 남깁니다.
- `project.json`의 입력 바이트와 정책으로 결정론적 실행 ID를 만들고, 최종 결과 해시를 `delivery-receipt.json`에 봉인합니다.
- 초안과 최종본에서 `no-ai-slop` 감사를 적용해 하단 결론 반복, 포장형 요약, 근거 없는 평가 표현을 걷어냅니다.
## 검증
```bash
python3 ~/.codex/skills/.system/skill-creator/scripts/quick_validate.py .
python3 scripts/audit_copy.py <mode>/deck-manifest.json --strict
python3 scripts/validate_run_manifest.py <mode>/deck-manifest.json
python3 scripts/validate_compression_map.py template-frame-map.json --json
python3 scripts/reproduce_pack.py prepare --spec project.json --run-root .character-deck-reviser
python3 scripts/reproduce_pack.py seal --spec project.json --run-root .character-deck-reviser --pptx output.pptx --renders renders --montage all-slides.png
```
PPTX 편집 모드에서는 `scripts/compare_pptx.py`로 원본 구조와 미디어 보존 여부도 확인합니다.
## 저장소 구성
```text
SKILL.md 통합 메인 스킬
references/create-workflow.md 새 덱 제작 계약
references/curriculum-pack.md 교육자료 재현 패키지와 시각 분기
references/no-ai-slop.md AI식 포장·반복 문구 제거 계약
references/direct-edit-compression.md 직접 수정본 기반 구조 압축 계약
references/natural-closure.md AI식 결론 습관 검토
references/reproducibility.md 실행 기록과 입력 지문
references/qa-contract.md 최종 PPTX 검수
scripts/ 입력·카피·구조·매니페스트 검사
skills/character-slide-maker/ create 모드 호환 엔트리
skills/handdrawn-character-lock/ 번들 캐릭터 일관성 계약과 style-lock
assets/usage-comic.png README 4컷 사용법
```
## 번들 자산
`skills/handdrawn-character-lock`에는 `moongiadventures-dev/handdrawn-ppt`의 MIT 라이선스 style-lock 자산과 pinned provenance가 포함되어 있습니다. 자세한 출처와 라이선스는 해당 폴더의 `references/`를 확인하세요.