Frontend Slides
zarazhangrui/frontend-slides
Builds animated HTML slide decks that run in the browser with no dependencies, or converts PowerPoint files to the web, starting from visual style previews.
Designer role. An agent skill from hiyeshu/codeck.
$ npx skills add hiyeshu/codeck --skill codeck-design -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install hiyeshu/codeck codeck-design --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/hiyeshu/codeck.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/codeck-design .claude/skills/codeck-design && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "codeck-design" agent skill from https://github.com/hiyeshu/codeck/tree/main/skills/codeck-design into .claude/skills/codeck-design/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "codeck-design", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/hiyeshu/codeck/tree/main/skills/codeck-designType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add hiyeshu/codeck --skill codeck-design -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install hiyeshu/codeck codeck-design --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hiyeshu/codeck.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/codeck-design .agents/skills/codeck-design && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "codeck-design" agent skill from https://github.com/hiyeshu/codeck/tree/main/skills/codeck-design into .agents/skills/codeck-design/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "codeck-design", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add hiyeshu/codeck --skill codeck-design -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install hiyeshu/codeck codeck-design --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hiyeshu/codeck.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/codeck-design .cursor/skills/codeck-design && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "codeck-design" agent skill from https://github.com/hiyeshu/codeck/tree/main/skills/codeck-design into .cursor/skills/codeck-design/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "codeck-design", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/hiyeshu/codeck.git --path skills/codeck-design--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add hiyeshu/codeck --skill codeck-design -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install hiyeshu/codeck codeck-design --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hiyeshu/codeck.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/codeck-design .gemini/skills/codeck-design && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "codeck-design" agent skill from https://github.com/hiyeshu/codeck/tree/main/skills/codeck-design into .gemini/skills/codeck-design/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "codeck-design", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install hiyeshu/codeck codeck-designInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add hiyeshu/codeck --skill codeck-design -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/hiyeshu/codeck.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/codeck-design .github/skills/codeck-design && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "codeck-design" agent skill from https://github.com/hiyeshu/codeck/tree/main/skills/codeck-design into .github/skills/codeck-design/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "codeck-design", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add hiyeshu/codeck --skill codeck-design -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install hiyeshu/codeck codeck-design --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hiyeshu/codeck.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/codeck-design .opencode/skills/codeck-design && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "codeck-design" agent skill from https://github.com/hiyeshu/codeck/tree/main/skills/codeck-design into .opencode/skills/codeck-design/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "codeck-design", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
codeck-designDesigner role. An agent skill from hiyeshu/codeck.
Codeck Design is an agent skill from hiyeshu/codeck. Designer role. Reads deck.md, generates a single HTML presentation file with CSS design system + JS slide engine + per-slide content. Accepts visual references (URLs, screenshots, design specs) and extracts design signals to inform the isomorphic mapping. Use whenever the user says "design slides", "generate deck", "generate the deck", "build slides", "visual style", "reference this style", "like this design", "design", "generate slides", "visual style", "reference this style", or wants to turn an outline into…
Its SKILL.md is about 6.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 19 other files, including scripts and reference files (for example `references/CLAUDE.md`, `references/asset-guide.md` and `references/checklist.md`).
It sits in Documents & Office, covering Slides and decks. The repository describes itself as: No Keynote. No dragging. No font sizes. The licence is MIT.
3 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 572a4bc. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 6 files in scripts/ (Shell and JavaScript), which the agent can run.
Shell commands in SKILL.md call:
bashFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
github.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Codeck Design loads about 6.8k tokens when it runs, and up to ~27k if it reads all its reference files. Until then it costs about 136 tokens; SKILL.md has 2,929 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from hiyeshu/codeck at commit 572a4bc, republished under its MIT licence (© hiyeshu). 2,929 words, ~6,765 tokens.
.claude/skills/codeck-design/SKILL.md (or your agent's skills folder). This skill also uses 17 other files; get the full folder from GitHub.<!--
[INPUT]: Depends on deck.md, diagnosis.md, DESIGN references, and room decision state.
[OUTPUT]: Provides validated DESIGN.md, custom.css, slides.html, assembled HTML, and design lane memory.
[POS]: skills/codeck-design lane; converts canonical content into the visual source of truth.
[PROTOCOL]: 变更时更新此头部,然后检查 CLAUDE.md
-->
@design owns visual direction, validated design archive, design skeleton, HTML source, and assembled HTML.
Write boundaries:
$DECK_DIR/DESIGN.md, $DECK_DIR/custom.css, $DECK_DIR/slides.html$DECK_DIR/assets./{title}-r{revision}.html in the user's project directory$DECK_DIR/roles/design.md, $DECK_DIR/tasks/tasks.md, and $DECK_DIR/channel/YYYY-MM-DD.mddeck.md except for a user-requested concrete edit routed through @orchestrator; otherwise write a proposal to threads/threads.mdreview.md, speech.md, or export filesRead $DECK_DIR/diagnosis.md for the recommended design role and its structural mapping.
You are that person. Their formal logic — how they organize space, tension, rhythm — becomes your visual logic.
The role is chosen for structural match, not domain:
Content builds layer by layer, each page adding complexity → Ravel (Bolero): visual simplicity to richness, color gradually saturates, each page adds one element.
Content driven by contrast and opposing forces → Caravaggio: high-contrast lighting, black-white dominant, accent color used sparingly like a decisive stroke.
Content illuminates through structure and clarity → Bach manuscript: warm parchment ground, ink-weight hierarchy, grid precision, light as organizing principle — not dark by default.
Content strips away noise to reveal one truth → Dieter Rams: remove everything unnecessary, final slide is the emptiest and most powerful.
Apply their formal logic directly. Don't explain their principles — embody them in every visual choice.
If diagnosis.md doesn't exist, run /codeck entry logic first when possible. Do not ask a generic setup question.
Use the shared /codeck Decision Ask Policy.
Design Direction is the only Decision Ask moment in this skill. It may appear before visual generation, or when the user says "change the visual style".
Skip it when the user has already provided a clear style, reference, skeleton, or confirmed direction in MEMORY.md, roles/design.md, deck.md, or DESIGN.md.
When Design Direction is necessary, create a D-YYYYMMDD-NN decision in threads/threads.md first. Then render it through the current runtime:
Only state verified facts. For unrendered results, say "will" not "is".
If no structured AskUser UI is available and the visual direction is blocking, stop before writing DESIGN.md, custom.css, or slides.html. If the decision is non-blocking, use the recommended direction and record assumed default.
DECK_DIR="$HOME/.codeck/projects/$(basename "$(pwd)")"
CODECK_SKILL_DIR="${CODECK_SKILL_DIR:-}"
if [ -z "$CODECK_SKILL_DIR" ]; then
for d in \
"${CLAUDE_PLUGIN_ROOT}/skills/codeck" \
"$HOME"/.claude/plugins/cache/*/codeck/*/skills/codeck \
"$HOME"/.codex/plugins/cache/*/codeck/*/skills/codeck \
"$HOME/.agents/skills/codeck" \
"$HOME/.codex/skills/codeck" \
"$HOME/.claude/skills/codeck"; do
if [ -d "$d/scripts" ]; then CODECK_SKILL_DIR="$d"; break; fi
done
fi
[ -n "$CODECK_SKILL_DIR" ] || { echo "codeck skill scripts not found; set CODECK_SKILL_DIR" >&2; exit 1; }
. "$CODECK_SKILL_DIR/scripts/resolve-dirs.sh"
mkdir -p "$DECK_DIR"
mkdir -p "$DECK_DIR/channel" "$DECK_DIR/tasks" "$DECK_DIR/threads" "$DECK_DIR/roles" "$DECK_DIR/assets"
bash "$CODECK_SKILL_DIR/scripts/init-room.sh" "$DECK_DIR"
bash "$CODECK_SKILL_DIR/scripts/status.sh" "$DECK_DIR"Read $DECK_DIR/MEMORY.md, active rows in $DECK_DIR/tasks/tasks.md, open rows in $DECK_DIR/threads/threads.md, and $DECK_DIR/roles/design.md. Do not read channel/YYYY-MM-DD.md unless debugging history.
Read $DECK_DIR/deck.md — page structure, content points, user intent, note to designer. Ignore legacy outline.md.
Read $DECK_DIR/diagnosis.md — role, domain, expression challenge.
If deck.md does not exist, route back to /codeck to create the content source. Do not ask "run outline first?"
Read the "note to designer" at the end of deck.md. Write 1-2 sentences in your activated role's voice explaining how you'll turn the content source into visuals.
Before writing visual files, claim the work ticket:
@orchestrator
Owner: @design. Task: turn deck content into visual source and assembled HTML.
@design
I claim the design pass. I will write and validate `DESIGN.md`, then write `custom.css`, `slides.html`, build HTML, and hand off to @review.Append the exchange to today's channel file and update tasks/tasks.md.
If the user provides visual references (URLs, screenshots, design specs), extract design signals before the isomorphic mapping. When the user mentions a brand by name without a URL, browse their site yourself.
How to extract:
Multiple references → find the intersection. If references conflict with no clear intersection, note the dominant pattern and mention variants — let the user choose in the style reveal.
References inform the mapping, not override it. If a signal conflicts with the content structure, explain why you're diverging.
Fold extracted signals into the design skeleton and record the final structural choices in $DECK_DIR/DESIGN.md.
Image work belongs to @design. It is not a separate user command and not a fixed menu of image types.
Handle any visual asset the deck needs:
Decision order:
@design improve, adapt, generate, compose, or leave a placeholder?Default behavior:
Decision Ask is allowed only when image work changes meaning or deck direction:
Do not ask whether to crop, improve contrast, normalize ratios, clean a screenshot, create a placeholder, or use an asset already present.
Read references/asset-guide.md before asset work. Its shapes are examples, not modes. If none fit, invent the right asset shape.
Record image work in:
DESIGN.md ## Image Assets — visual strategy, asset decisions, generated prompt constraintsroles/design.md ## Asset Work — current lane state and generated/processed filesMEMORY.md Artifacts — only final asset outputs that matter for rebuildsthreads/threads.md — any needed deck.md asset-manifest update, because @outline owns deck.mdBefore writing DESIGN.md, read these four reference files:
references/theme-presets.md — named visual systems with palette, type, material, and motion defaultsreferences/layout-recipes.md — page-structure recipes chosen by rhetorical jobreferences/component-recipes.md — concrete component patterns for stats, callouts, rowlines, diagrams, media, and chromereferences/image-prompts.md — prompt recipes for generated, cleaned, redesigned, or composited assetsUse them as ingredients, not templates. The fixed engine remains codeck's runtime; do not copy external template code, JavaScript, or CSS shells.
Selection order:
custom-{name} only when no preset fits.none — {reason}.Record all four choices in DESIGN.md:
Theme preset: {preset}
Layout recipes: {recipe-a}, {recipe-b}, ...
Component recipes: {recipe-a}, {recipe-b}, ...
Image prompt recipes: {recipe-a | none — reason}Read references/skeletons.md before writing DESIGN.md.
A skeleton is the deck's page rhythm, layout grammar, and default slide family. It is not a theme, template, or asset pack.
Selection order:
DESIGN.md$DECK_DIR/roles/design.mddiagnosis.md expression challenge plus the content's formal structureDefault skeleton:
| Skeleton | Use for |
|---|---|
narrative-grid | argument-led decks with clear page roles, hero/body rhythm, stable media slots, data posters, quotes, pipelines, and before/after pages |
User references modify the skeleton; they do not replace the room protocol. Extract structural rules, name the variant, and record it in DESIGN.md and roles/design.md. Do not create a new permanent skeleton file unless the user asks.
Record the selected skeleton in DESIGN.md ## Overview as Skeleton: {name} and in roles/design.md under ## Current Skeleton.
Three steps: select the skeleton, find the isomorphic mapping (conceptual), then output DESIGN.md (specification).
Use references/skeletons.md and the current deck structure. Start from narrative-grid, then adapt the page pattern sequence to the argument.
The skeleton answers:
Extract the formal structure from the outline (not the content itself):
Find structurally similar things in your role's knowledge domain:
A layered business proposal → Ravel's Bolero → visually simple to complex, each page adds a layer, color gradually saturates
A contrastive technical argument → Go attack and defense → black-white contrast dominant, each turn uses one accent color as a "move"
A structured explanation that builds understanding → architectural blueprint → warm off-white ground, precise lines, information revealed through spatial hierarchy, not through darkness
A data report moving from chaos to order → Japanese karesansui → early pages scattered, final page stripped to minimal
Even flat lists have a formal structure (accumulation, enumeration, crescendo). Always do the isomorphic mapping — it's what makes codeck decks distinctive.
Read references/design-md-spec.md — the codeck DESIGN.md format spec, based on Google design.md. YAML front matter carries machine-readable tokens; Markdown sections carry design rationale and creative intent. The spec header documents the codeck environment constraints; the AI decides how to converge.
Every token and section must be populated with deliberate decisions — no empty strings, no placeholder text. Use "none" only inside YAML when a token truly does not apply; prose sections that do not apply must say Not applicable — {concrete reason}. A complete DESIGN.md forces deliberate decisions across all dimensions; skipping fields causes downstream generation to lack information.
Minimum archive shape:
design-md-spec.mdWrite to $DECK_DIR/DESIGN.md.
Run validation immediately after writing:
DECK_DIR="$HOME/.codeck/projects/$(basename "$(pwd)")"
CODECK_SKILL_DIR="${CODECK_SKILL_DIR:-}"
if [ -z "$CODECK_SKILL_DIR" ]; then
for d in \
"${CLAUDE_PLUGIN_ROOT}/skills/codeck" \
"$HOME"/.claude/plugins/cache/*/codeck/*/skills/codeck \
"$HOME"/.codex/plugins/cache/*/codeck/*/skills/codeck \
"$HOME/.agents/skills/codeck" \
"$HOME/.codex/skills/codeck" \
"$HOME/.claude/skills/codeck"; do
if [ -d "$d/scripts" ]; then CODECK_SKILL_DIR="$d"; break; fi
done
fi
[ -n "$CODECK_SKILL_DIR" ] || { echo "codeck skill scripts not found; set CODECK_SKILL_DIR" >&2; exit 1; }
. "$CODECK_SKILL_DIR/scripts/resolve-dirs.sh"
[ -n "${CODECK_DESIGN_DIR:-}" ] || { echo "codeck-design not found; set CODECK_DESIGN_DIR" >&2; exit 1; }
bash "$CODECK_DESIGN_DIR/scripts/validate-design.sh" "$DECK_DIR/DESIGN.md"If validation fails, revise DESIGN.md directly and rerun validation. Do not write custom.css or slides.html until validation passes.
This is the Design Direction Decision Ask moment.
Show the user three things: (1) the content's formal structure, (2) the isomorphic match and why it is structural, not decorative, (3) concrete visual consequences.
Offer 2-3 directions. Make the recommendation explicit.
If the decision is non-blocking and the user does not answer, use A. Write assumed default to MEMORY.md, and write the final visual direction and selected skeleton to DESIGN.md and roles/design.md. If the decision is blocking and no structured AskUser UI is available, leave it open in threads/threads.md and stop before writing visual source.
Correct and forgettable is a failure mode. Read references/visual-floor.md after DESIGN.md validates and before writing custom.css — 3 CSS benchmarks (dark cinematic, light editorial, minimal tension). Your output must be at least that level.
Pick the closest benchmark, compare element by element. If flatter, push the DESIGN.md harder before proceeding.
The slide engine (navigation, fragments, overview, speaker mode, progress bar, FOUC protection) is fixed code in scripts/engine.js and scripts/engine.css. Every deck uses the same engine.
AI writes two files:
| File | Contents |
|---|---|
$DECK_DIR/custom.css | :root variables + layout primitives + per-page styles + mobile |
$DECK_DIR/slides.html | <section class="slide"> sequence |
Bash assembles the final HTML. This is the only valid path to a project-root *-rN.html:
DECK_DIR="$HOME/.codeck/projects/$(basename "$(pwd)")"
CODECK_SKILL_DIR="${CODECK_SKILL_DIR:-}"
if [ -z "$CODECK_SKILL_DIR" ]; then
for d in \
"${CLAUDE_PLUGIN_ROOT}/skills/codeck" \
"$HOME"/.claude/plugins/cache/*/codeck/*/skills/codeck \
"$HOME"/.codex/plugins/cache/*/codeck/*/skills/codeck \
"$HOME/.agents/skills/codeck" \
"$HOME/.codex/skills/codeck" \
"$HOME/.claude/skills/codeck"; do
if [ -d "$d/scripts" ]; then CODECK_SKILL_DIR="$d"; break; fi
done
fi
[ -n "$CODECK_SKILL_DIR" ] || { echo "codeck skill scripts not found; set CODECK_SKILL_DIR" >&2; exit 1; }
. "$CODECK_SKILL_DIR/scripts/resolve-dirs.sh"
[ -n "${CODECK_DESIGN_DIR:-}" ] || { echo "codeck-design not found; set CODECK_DESIGN_DIR" >&2; exit 1; }
ENGINE_DIR="$CODECK_DESIGN_DIR/scripts"
bash "$ENGINE_DIR/build-html.sh" "$DECK_DIR" "{file-stem}" "{language}" "."Never hand-write the final project-root HTML. Never create a sibling project-root CSS file such as {file-stem}-deck.css. Final HTML must be self-contained and must contain the engine markers openPresenter, codeck-presenter, and BroadcastChannel; otherwise speaker mode was not assembled.
data-f="N" attribute, ArrowDown to reveal, ArrowUp to hidedata-notes attributeRead references/design-md-guide.md for full mapping rules: DESIGN.md → custom.css.
Flow: YAML front matter tokens → :root CSS variables → layout primitives → slide type styles → mobile.
Critical: --bg, --fg, --accent are engine interface variables. engine.css uses them for progress bar, overview borders, page numbers. They must be defined in :root.
Do not style engine selectors: .slide, #progress, .mobile-nav, or .presenter-*. Use slide-specific classes such as .slide-cover, .route-map, or .station-panel; the engine owns the shell.
Before writing slides.html, read DESIGN.md ## Components and apply the component semantics from references/design-md-spec.md.
<!-- ====== 1. Cover ====== -->
<section class="slide slide-cover" data-notes="Opening: lead with the problem, not the product">
<h1 class="title-mega">Title</h1>
<p class="body-text" style="opacity:0.7">Subtitle</p>
</section>
<!-- ====== 2. Problem ====== -->
<section class="slide" data-notes="Data from the 2024 report">
<h2 class="title-large">What is the problem</h2>
<div class="grid-2">
<div class="card" data-f="1">First point</div>
<div class="card" data-f="2">Second point</div>
</div>
</section>Conventions:
<section class="slide" data-notes="..."> is one pagedata-notes: 1-2 sentence summary of that page's key point from deck.md<!-- ====== N. Title ====== -->data-f="N": fragment stepping (lower N appears first)<!doctype>, <html>, <head>, <body>, <main class="deck">, stylesheet links, <script> tags, progress bar, or mobile nav — engine handles all of itRead references/asset-guide.md for image asset work, example asset shapes, and inline/poster/extract patterns.
Generated and processed assets go in $DECK_DIR/assets/.
Naming:
{slide-number}-{semantic-name}-{work}.{ext}Examples:
03-dashboard-clean.png04-system-map-generated.png06-founder-photo-crop.jpg08-ui-redesign.png$DECK_DIR/custom.css with Write tool$DECK_DIR/slides.html with Write toolbuild-html.sh with Bash; it calls assemble.sh and rejects HTML without speaker modeIf slides.html is long and a single write fails, write the first few pages then append with Edit.
After assembling, check the final HTML:
deck.md?<!-- ====== N. Title ====== -->?:root defines --bg, --fg, --accent, --font-body, --font-heading?@media (max-width: 768px)?<script> tags in slides.html?openPresenter, codeck-presenter, and BroadcastChannel?<link rel="stylesheet" ...> and no required sibling CSS file?Fix issues directly (Edit custom.css or slides.html, then run build-html.sh). Don't ask the user.
Do not use Decision Ask for generic iteration.
If the user asks for a visual change, edit $DECK_DIR/slides.html or $DECK_DIR/custom.css, then run build-html.sh. If the change requires deck.md, write a proposal in threads/threads.md and hand the ticket to @outline. For a new user request later, create the next revision.
End with the output path and the highest-signal note about what changed. The user can ask for concrete edits such as "make slide 3 lighter" or "switch to a warm palette".
After assembling and self-review:
MEMORY.md Active Context, Latest Channel Summary, Task Index, and Artifacts.@design task done in tasks/tasks.md.threads/threads.md.@design
I wrote validated `DESIGN.md`, `custom.css`, `slides.html`, and assembled the HTML. The next owner is @review.
@review
I will inspect the rendered deck through the audience lens and fix scoped source issues.@import url() at the top of custom.css — assemble.sh places it inside <style> in <head>. Always include a system font fallback stack. Offline = fallback renders, no breakage.<script> in slides.html. Engine handles all JS. A stray <script> causes double-binding, broken navigation, and mystery bugs.:root variables are an API contract. --bg, --fg, --accent are consumed by engine.css. Missing or misspelled = broken progress bar, invisible page numbers, white-on-white overview mode.data-f="1", data-f="2", etc. Gaps (1, 3, 5) cause the engine to skip steps. Duplicates cause simultaneous reveals..slide, #progress, .mobile-nav, .presenter-* belong to the engine. Overriding them produces layout corruption that's invisible until speaker mode or mobile.position on .slide or slide-type classes. .slide is position: absolute; inset: 0 in engine.css — that's what makes it fill the viewport. position: relative on .slide-cover etc. breaks this: the slide shrinks to content height, leaving a dead zone at the bottom.prefers-reduced-motion. If custom.css has @keyframes, wrap them: @media (prefers-reduced-motion: no-preference) { ... }. Skip this = accessibility failure.var() exclusively.-clamp(...), -min(...), -max(...) are silently discarded by browsers — no error, no warning, just wrong position. Always write calc(-1 * clamp(...)) instead.@media (max-height: 700px) and @media (max-height: 500px) to reduce title sizes and hide decorative elements. Width-only breakpoints miss the most common overflow scenario.r1, r2, etc. Manual names break the revision chain.codeck design complete.
@design I wrote the visual source, assembled the HTML, and handed the room to @review.
{One sentence — cite the DESIGN.md isomorphic mapping}
Output:
./{title}-r{revision}.html(in user's project directory) Intermediates:$DECK_DIR/DESIGN.mdNext:/codeckwill inspect and fix.
© hiyeshu, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 17 other files (scripts, references) in skills/codeck-design of hiyeshu/codeck.
Open the folder on GitHubat commit 572a4bc
Codeck Design next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Codeck Design this skillhiyeshu/codeck | 198 | — | ~6.8k | Automated safety check: Pass | MIT | |
| Frontend Slideszarazhangrui/frontend-slides | 30k | 16 repos | ~7k | Automated safety check: Pass | MIT | |
| Single-File HTML Slide Decksop7418/guizang-ppt-skill | 27k | 1 repos | ~6.3k | Automated safety check: Pass | AGPL-3.0 | |
| Openkb Deck EditorialVectifyAI/OpenKB | 4.7k | 1 repos | ~2.1k | Automated safety check: Pass | Apache-2.0 | |
| Build iPolloWork TemplatesDevin-AXIS/iPolloWork | 6.8k | — | ~925 | Automated safety check: Pass | Custom licence | |
| Openkb HTML CriticVectifyAI/OpenKB | 4.7k | 1 repos | ~1.4k | Automated safety check: Pass | Apache-2.0 |
zarazhangrui/frontend-slides
Builds animated HTML slide decks that run in the browser with no dependencies, or converts PowerPoint files to the web, starting from visual style previews.
op7418/guizang-ppt-skill
Generates single-file HTML slide decks with horizontal paging, WebGL backgrounds and a presenter view, in an editorial-magazine style or a Swiss-style layout.
VectifyAI/OpenKB
A skill your agent uses when the user asks the openkb chat to make a deck / slide presentation / PPT / slides / 演示稿 / 幻灯片 from their compiled KB content.
Devin-AXIS/iPolloWork
Builds a reusable iPolloWork template for Design, Slides or PPT, or HyperFrames Video through conversation, keeping a manifest, reusable variables and a validated package current.
VectifyAI/OpenKB
A skill your agent uses to review a generated HTML deck or single-page artifact for visual quality and structural correctness.
petergyang/human-review
Open an HTML file, Markdown file, or localhost page in the browser so the user can edit text directly and leave comments on specific parts, then send all edits and comments back to you.
hiyeshu/codeck
codeck entry point. An agent skill from hiyeshu/codeck.
hiyeshu/codeck
Reviewer role. An agent skill from hiyeshu/codeck.
hiyeshu/codeck
Editor role. An agent skill from hiyeshu/codeck.
hiyeshu/codeck
Internal publisher module for /codeck. An agent skill from hiyeshu/codeck.
hiyeshu/codeck
Internal speech module for /codeck. An agent skill from hiyeshu/codeck.
Categories
Designer role. An agent skill from hiyeshu/codeck. Codeck Design is an agent skill from hiyeshu/codeck. Designer role.
Codeck Design fits situations like: the user says design slides; generate the deck; reference this style; like this design.
Run `npx skills add hiyeshu/codeck --skill codeck-design -a claude-code`. Or copy the skill folder (skills/codeck-design in hiyeshu/codeck) into .claude/skills/codeck-design in your project. Claude Code loads it when a task matches its description.
Run `npx skills add hiyeshu/codeck --skill codeck-design -a codex`. Or copy the skill folder (skills/codeck-design in hiyeshu/codeck) into .agents/skills/codeck-design in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add hiyeshu/codeck --skill codeck-design -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/codeck-design, .gemini/skills/codeck-design, .github/skills/codeck-design and .opencode/skills/codeck-design in your project.
Going by SKILL.md and its folder, Codeck Design needs a shell and JavaScript for the scripts in its folder and the command-line tools its instructions call (bash). Our summary lists: Node.js; A Bash shell.
SKILL.md names 1 domain. As links in the text: github.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Codeck Design is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 6.8k tokens (SKILL.md is roughly 27k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 21k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Codeck Design: Frontend Slides (zarazhangrui/frontend-slides, 30k stars), Single-File HTML Slide Decks (op7418/guizang-ppt-skill, 27k stars), Openkb Deck Editorial (VectifyAI/OpenKB, 4.7k stars) and Build iPolloWork Templates (Devin-AXIS/iPolloWork, 6.8k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
hiyeshu (a GitHub user) maintains it in hiyeshu/codeck, which has 198 GitHub stars. The repository holds 6 skills in this directory. The repository was last updated on August 8, 2026.
Source: hiyeshu/codeck on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.