بنقرة واحدة
html-presentation
AI가 콘텐츠만 작성하면 키보드 네비·사이드 네비·풀스크린 no-scroll이 보장되는 단일 HTML 발표자료(슬라이드 덱)를 생성하는 스킬. PPT 대체용 웹 기반 슬라이드.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
AI가 콘텐츠만 작성하면 키보드 네비·사이드 네비·풀스크린 no-scroll이 보장되는 단일 HTML 발표자료(슬라이드 덱)를 생성하는 스킬. PPT 대체용 웹 기반 슬라이드.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Multi-LLM adversarial consensus loop — 3+ LLMs compete to find flaws in designs/specs until unanimous agreement is reached
Execute Google Gemini CLI prompts in non-interactive mode and return structured results. Enables hybrid AI workflows combining your AI agent's reasoning with Gemini's code generation. Supports text, JSON, and stream-JSON output, approval modes (normal, yolo, sandbox, plan), model override, timeout control, and working directory selection. Use for code generation, research, analysis, and reasoning tasks via Google Gemini CLI.
Analyze external URLs to evaluate fit with your project and auto-create GitHub issues with structured verdicts. Uses a lightweight project fingerprint for token-efficient codebase analysis with git-hash-based cache refresh.
YAML-based sequential workflow engine — define, list, run, resume, add, and delete pipelines from natural language or YAML files. Supports skill invocation, free-form prompts, conditional steps, foreach iteration, state tracking, and halt-and-resume error recovery.
Execute OpenAI Codex CLI prompts in non-interactive mode and return structured results. Enables hybrid AI workflows combining your AI agent's reasoning with Codex code generation. Supports text and JSON output, effort levels (minimal to xhigh), model override, timeout control, and full-auto mode. Use for code generation, research, analysis, and reasoning tasks via openai codex CLI.
| name | html-presentation |
| description | AI가 콘텐츠만 작성하면 키보드 네비·사이드 네비·풀스크린 no-scroll이 보장되는 단일 HTML 발표자료(슬라이드 덱)를 생성하는 스킬. PPT 대체용 웹 기반 슬라이드. |
| user-invocable | true |
| argument-hint | <topic> <audience> <slide-count> [--theme dark|light] |
| scope | core |
| version | 1.0.0 |
| license | MIT |
html-presentation은 외부 프레임워크 의존성 없이 file:// 더블클릭만으로 동작하는 단일 HTML 슬라이드 덱을 생성합니다.
핵심 원칙: 엔진(불변) + 콘텐츠(AI 작성)의 엄격한 분리.
{output_dir}/
├── index.html # AI가 콘텐츠를 채운 완성 덱
└── engine/
├── engine.css # 불변 스타일 (수정 금지)
└── engine.js # 불변 동작 (수정 금지)
| 필드 | 필수 | 타입 | 기본값 | 설명 |
|---|---|---|---|---|
topic | 필수 | string | — | 발표 주제 |
audience | 필수 | string | — | 청중 (예: "스타트업 CTO") |
slide_count | 필수 | int | — | 슬라이드 수 |
resolution | 선택 | string | "1920x1080" | 캔버스 크기 (WxH) |
theme | 선택 | "light" | "dark" | "light" | 색상 테마 |
tone | 선택 | string | "전문적" | 콘텐츠 어조 |
output_dir | 선택 | path | ./presentation-{topic-slug}/ | 출력 디렉토리 |
다음 단계를 순서대로 실행합니다.
topic, audience, slide_count 검증
resolution → stage-w, stage-h 분리 (예: "1920x1080" → 1920px, 1080px)
output_dir 결정 (없으면 topic을 kebab-case slug로 변환)
mkdir -p {output_dir}/engine
스킬 베이스 디렉토리의 engine/ 폴더를 {output_dir}/engine/ 에 복사합니다.
cp engine/engine.css {output_dir}/engine/engine.css
cp engine/engine.js {output_dir}/engine/engine.js
template.html 을 기반으로 다음 항목을 치환합니다:
{{TITLE}} → topic--stage-w / --stage-h → resolution 값data-theme → theme 값 ("light" 또는 "dark")<!-- SLIDES:START --> ~ <!-- SLIDES:END --> 사이에 slide_count 개의 슬라이드를 작성합니다.
각 레이아웃은 DOM 계약을 정확히 준수해야 합니다. 엔진 CSS가 자식 선택자로 스타일을 적용합니다.
<section data-layout="cover" data-title="제목">
<h1>발표 제목</h1>
<p class="subtitle">부제 · 날짜 · 발표자</p>
</section>
중앙 정렬. 첫 번째 슬라이드에 사용.
<section data-layout="section" data-title="섹션명">
<span class="section-num">01</span>
<h1>섹션 제목</h1>
</section>
좌측 정렬, 대형 섹션 번호. 챕터 구분에 사용.
<section data-layout="bullets" data-title="슬라이드 제목">
<header>
<h1>제목</h1>
<h2 class="subtitle">부제(선택)</h2>
</header>
<ul>
<li>항목 1</li>
<li>항목 2</li>
<!-- 최대 6개 권장 -->
</ul>
</section>
<section data-layout="two-col" data-title="슬라이드 제목">
<header><h1>제목</h1></header>
<div class="col">
<h2>좌측 헤딩</h2>
<ul>
<li>항목</li>
</ul>
</div>
<div class="col">
<h2>우측 헤딩</h2>
<ul>
<li>항목</li>
</ul>
</div>
</section>
각 열 항목 최대 5개 권장.
<section data-layout="statement" data-title="슬라이드 제목">
<blockquote>한 문장 강조 메시지</blockquote>
<cite>— 출처(선택)</cite>
</section>
중앙 정렬, 대형 인용구. 핵심 메시지 전달에 사용.
<section data-layout="image" data-title="슬라이드 제목">
<header><h1>제목</h1></header>
<figure>
<img src="path/to/image.png" alt="설명">
<figcaption>캡션</figcaption>
</figure>
</section>
이미지 placeholder: https://placehold.co/1600x800
<section data-layout="code" data-title="슬라이드 제목">
<header><h1>제목</h1></header>
<pre><code class="language-typescript">// 코드 (최대 14줄 권장)
const example = "hello";</code></pre>
</section>
highlight.js CDN이 자동으로 구문 강조를 적용합니다.
지원 언어: language-typescript, language-javascript, language-python, language-go, language-rust, language-bash, language-json 등.
<section data-layout="end" data-title="끝">
<h1>감사합니다</h1>
<dl class="meta">
<dt>연락처</dt><dd>email@example.com</dd>
<dt>슬라이드</dt><dd>github.com/username/repo</dd>
<dt>웹사이트</dt><dd>https://example.com</dd>
</dl>
</section>
중앙 정렬. 마지막 슬라이드에 사용.
engine/engine.css, engine/engine.js 수정 금지<!-- SLIDES:START --> ~ <!-- SLIDES:END --> 사이에만 작성data-layout(8종 중 1) + data-title(네비 라벨) 필수:root 블록에는 --stage-w, --stage-h, 테마 변수만)slide_count만큼 슬라이드 작성<style> 블록의 --stage-w/--stage-h를 resolution에 맞춰 1회만 설정<style> 블록 :root의 예약 변수만 수정<strong>, <em>, <a> 등 인라인 마크업 사용data-theme="dark" 를 <html> 태그에 설정하여 다크 테마 적용URL에 ?debug=1 파라미터 추가:
file:///path/to/index.html?debug=1
슬라이드별 오버플로우 감지:
scrollHeight > clientHeight 또는 scrollWidth > clientWidth 시 빨간 outline 표시console.warn 으로 슬라이드 제목 + 크기 정보 출력| 키 | 동작 |
|---|---|
Space | 다음 슬라이드 |
Shift + Space | 이전 슬라이드 |
→ / PageDown | 다음 슬라이드 |
← / PageUp | 이전 슬라이드 |
Home | 첫 번째 슬라이드 |
End | 마지막 슬라이드 |
N | 사이드 네비게이션 토글 |
F | 풀스크린 토글 |
터치 스와이프(모바일): 좌→우 이전, 우→좌 다음
| 항목 | 값 |
|---|---|
| 외부 의존성 | Pretendard CDN, JetBrains Mono CDN, highlight.js CDN |
| 오프라인 동작 | 폰트/highlight.js 미로드 시 system-ui fallback으로 동작 |
| 브라우저 지원 | Chrome/Edge 88+, Firefox 85+, Safari 14+ |
| 최소 해상도 | 제한 없음 (transform scale로 자동 적응) |
| 파일 크기 | engine.css + engine.js ≈ 10KB (minify 전) |
# 스킬 호출 예시 (oh-my-customcode 환경)
topic: "2026년 AI 에이전트 트렌드"
audience: "스타트업 CTO"
slide_count: 8
resolution: "1920x1080"
theme: "light"
output_dir: "./my-presentation/"
완성된 index.html 을 브라우저에서 직접 열거나(file://), 로컬 서버로 서빙합니다.
샘플: samples/ai-agent-trends-2026/index.html