Install
$ agentstack add skill-jjj5306-agentskills-ppt-maker ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
PPT Maker
기준 우선순위
충돌 시 앞 순위가 이긴다.
references/slides-skills-share/전체- 사용자의 현재 직접 지시
- 예시 자료에서 분석한 보조 판단
예시 분석 내용은 별도 규칙 문서로 유지하지 않는다. 필요한 경우 코드와 샘플 입력에만 최소 반영한다.
유지 구조
SKILL.md: 실행 절차와 기준 우선순위만 둔다.references/slides-skills-share/: 디자인, Marp, casual/formal, chart-builder의 정본 기준이다.src/ppt_maker/: JSON을 Marp Markdown으로 바꾸고 marp-cli를 호출한다.scripts/chart_lib.py: chart-builder helper를 프로젝트에서 import하는 shim이다.examples/casual/: 내부 공유·회고용 JSON 입력 예시만 둔다.examples/formal/: 임원 보고·외부 발표용 JSON 입력 예시만 둔다.examples/assets/: 예시 입력에서 참조하는 작은 샘플 자산만 둔다.outputs/: 생성된 HTML, PPTX, PDF, PNG 미리보기를 둔다.
원칙
- PPT를
python-pptx로 직접 그리지 않는다. - 정본은 Marp Markdown이다.
uv run ppt-maker input.json output.html|output.pptx|output.pdf|output.md로 생성한다. - 덱을 새로 만들거나 크게 고칠 때는 먼저 정본 기준을 읽고 적용한다.
references/slides-skills-share/README.mdreferences/slides-skills-share/references/presentation-design-principles.mdreferences/slides-skills-share/commands/slides-common.md- 청중과 격식에 따라 다음 기준을 추가로 읽는다.
- 내부 공유, 회고, 진행 보고:
references/slides-skills-share/commands/casual-slides.md,references/slides-skills-share/commands/casual-slides-html.md - 임원 보고, 외부 발표, 제품 피치:
references/slides-skills-share/commands/formal-slides.md,references/slides-skills-share/commands/formal-slides-css.md,references/slides-skills-share/commands/formal-slides-html.md,references/slides-skills-share/commands/formal-slides-rules.md - 차트가 필요하면
references/slides-skills-share/skills/chart-builder/SKILL.md를 읽고skills/chart-builder/lib/의 helper를 사용한다. - 프로젝트 차트 스크립트에서는
scripts/chart_lib.py를 import해서 chart-builder helper를 사용한다. - 슬라이드는 slides-skills-share의 HTML/CSS 패턴 이름을 우선 사용한다:
cover,tool-title,key_message,three_cards,card-grid-4,comparison,timeline,summary,stat-grid,data-flow,list-tagged,chart,image_focus,closing. - 폰트, 색상, 글씨 크기, 여백, topbar, 카드, 비교, 흐름 레이아웃은 선택된 casual/formal 기준을 따른다.
src/ppt_maker/marp.py의 CSS는 정본 기준을 구현하는 생성기 코드다. CSS를 바꿀 때는 먼저 해당 정본 기준 파일을 확인한다.- 새 기준 문서, 별도 디자인 시스템 문서, 과정 설명 문서를 추가하지 않는다.
- 본문에는 대화 과정, 판단 변경 이력, 대안 비교 과정을 쓰지 않는다.
작업 절차
- 기준 우선순위를 확인한다.
references/slides-skills-share/README.md와 공통 기준 파일을 읽는다.- 청중이 내부 공유/회고면 casual 기준을, 임원/외부/제품 피치면 formal 기준을 읽는다.
- 차트가 필요한 덱이면 chart-builder 기준과 helper를 읽는다.
- 원본 내용을 한 줄 결론, 2-3개 변곡점, 슬라이드 단위 핵심 메시지로 정리한다.
- 각 슬라이드를 허용된 타입 중 하나로 매핑한다.
- Notion 이미지나 첨부 자료가 있으면 산출물 폴더의
assets/로 저장하고 이미지 중심 슬라이드에 반영한다. - JSON 입력 파일을 만든다.
- 먼저
uv run ppt-maker input.json output.md로 Marp Markdown을 확인한다. uv run ppt-maker input.json output.html로 HTML을 빌드한다.- 배포용은
uv run ppt-maker input.json output.pptx또는output.pdf로 생성한다. - PNG 미리보기로 잘림, 과밀, 이미지 크기, HTML 렌더링 문제를 확인한다.
- 텍스트 과밀 슬라이드는 JSON을 줄이거나 슬라이드 수를 늘려 다시 생성한다.
이미지 경로는 생성되는 Markdown 파일 위치를 기준으로 잡는다. 실제 덱은 outputs//assets/에 이미지를 두고 JSON에는 assets/file.png처럼 적는다.
입력 JSON 형식
{
"mode": "casual",
"title": "발표 제목",
"subtitle": "부제",
"author": "작성자",
"brand": "선택 브랜드명",
"slogan": "선택 슬로건",
"slides": [
{"type": "section", "title": "현황", "subtitle": "섹션 라벨"},
{
"type": "key_message",
"title": "핵심 메시지",
"message": "한 문장 결론",
"bullets": ["근거 1", "근거 2"]
},
{
"type": "card-grid-4",
"title": "네 가지 항목",
"cards": [
{"title": "항목 1", "body": "짧은 설명"},
{"title": "항목 2", "body": "짧은 설명"},
{"title": "항목 3", "body": "짧은 설명"},
{"title": "항목 4", "body": "짧은 설명"}
]
},
{
"type": "chart",
"title": "차트 해석",
"image": "assets/chart.png",
"points": ["차트에서 읽을 결론", "보조 해석"],
"source": "출처"
}
]
}
실행
Set-Location ''
$env:UV_CACHE_DIR = (Join-Path (Get-Location) '.uv-cache')
uv sync
uv run ppt-maker examples\casual\basic.json outputs\basic.md
uv run ppt-maker examples\casual\basic.json outputs\basic.html
uv run ppt-maker examples\casual\basic.json outputs\basic.pptx
차트 helper가 필요하면:
uv sync --extra charts
작성 기준
- 한 슬라이드에는 핵심 메시지 하나만 둔다.
- 제목은 청중에게 보일 한 줄 결론으로 쓴다.
- 본문은 개조식으로 쓰고, 설명문을 길게 늘어놓지 않는다.
- 이미지가 있으면 본문 텍스트를 줄이고
image_focus또는chart슬라이드로 분리한다. - 긴 문장은 줄이고, 비교는
comparison, 흐름은data-flow또는timeline, 요약은card-grid-4또는three_cards로 나눈다. - 팔레트 밖 색상, 임의 폰트, 임의 글씨 크기, 장식용 효과를 추가하지 않는다.
- 브랜드 표기가 필요하면 입력 JSON의
brand,slogan에 명시한다. 기본값에는 특정 회사명을 넣지 않는다.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: jjj5306
- Source: jjj5306/AgentSkills
- License: Apache-2.0
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.