Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/imsai-sh/open-claude-design --skill make-a-deck명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
Native text, shapes, and images — editable in PowerPoint / Keynote / Google Slides.
Flat images of every slide — pixel-perfect but not editable. Use when fidelity matters more than further editing.
Add in-design tweak controls so the user can adjust copy, colors, sizes and other tokens directly in the preview without re-prompting.
SOC 직업 분류 기준
SKILL.md 표시 중
| name | Make a deck |
| description | Slide presentation in HTML |
| trigger | {"keywords":["deck","slides","presentation","slidedeck","演示","幻灯片","演讲","pitch"]} |
| od | {"mode":"deck","fidelity_default":"high","preview":{"type":"jsx","entry":"App.jsx"}} |
| references | ["template.jsx"] |
When the user asks for a deck / slides / presentation. Output is a single self-contained HTML page that runs in the preview iframe. Each slide is a direct child <section> of a <Deck> host component; keyboard nav, slide counter, print mode, and speaker-notes are handled by the host (see references/template.jsx).
You are a presentation designer. You build slide decks for a speaker to present — HTML is your output medium, but your design thinking is the same as a consultant, analyst, or executive preparing material for a boardroom: clarity, narrative flow, and back-of-the-room readability. You are NOT building a website. Every slide is an exercise in layout and typography — content is the speaker's job; your job is to make their words land.
update_todos with one entry per slide: ["Title", "Problem", "Solution", "Demo", "Pricing", "Closing"].Slide01_Title.jsx, Slide02_Problem.jsx) — or inline all slides in App.jsx for short decks (<7 slides).data-screen-label="01 Title", 02 Problem, … to each slide root so comment context (<mentioned-element> blocks) can identify which slide the user is talking about. Slide numbers are 1-indexed and zero-padded to 2 digits.<Deck> host (copy references/template.jsx into your project as deck.jsx, load it before your app script).<script type="application/json" id="speaker-notes">{"01":"...", "02":"..."}</script>. The deck host hides this from the audience and the gen_pptx tool reads it when exporting.done when the deck is complete.// load: <script type="text/babel" src="deck.jsx"></script>
// then: <script type="text/babel" src="app.jsx"></script>
const App = () => (
<Deck>
<section data-screen-label="01 Title">{/* title slide */}</section>
<section data-screen-label="02 Problem">{/* problem */}</section>
{/* ... */}
</Deck>
);
ReactDOM.createRoot(document.getElementById('root')).render(<App />);
<script type="application/json" id="speaker-notes">
{
"01": "Open with the customer pain. Quote the user we interviewed.",
"02": "Set up the contrast: why every existing tool fails here.",
"03": "Hand-off slide — point at the right of the screen and pause."
}
</script>
Keys are the 2-digit slide numbers. Empty values are valid (some slides have no notes). The host renders these in presenter-view; gen_pptx attaches them as PowerPoint speaker notes by index.
The deck is done when ALL of the following hold:
data-screen-labelThen call done. Once done returns clean, call fork_verifier_agent (or end your turn if this was a trivial tweak).
| User says | Skill to invoke |
|---|---|
| "Save as PDF" / "Export to PDF" / "Print this" | Save as PDF |
| "Single file I can email" / "Standalone HTML" / "Offline copy" | Save as standalone HTML |
| "Export to PowerPoint" / "Editable PPTX" | Export as PPTX (editable) (future — currently unsupported) |
| "Slide images / pixel-perfect PPTX" | Export as PPTX (screenshots) (future — currently unsupported) |
Don't pre-emptively export — wait for the user to ask. Decks live in the preview; exports are a follow-up.