/codeck-design
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
Claude Code
$ npx -y skills add hiyeshu/codeck --skill codeck-design --agent claude-code
Codex
$ npx skills add hiyeshu/codeck --skill codeck-design -a codex -y
Cursor
$ npx skills add hiyeshu/codeck --skill codeck-design -a cursor -y
Gemini CLI
$ npx skills add hiyeshu/codeck --skill codeck-design -a gemini-cli -y
GitHub Copilot
$ npx skills add hiyeshu/codeck --skill codeck-design -a github-copilot -y
OpenCode
$ npx skills add hiyeshu/codeck --skill codeck-design -a opencode -y
Windsurf
$ npx skills add hiyeshu/codeck --skill codeck-design -a windsurf -y
SKILL.md
codeck-design.SKILL.mdname: codeck-design
version: 2.0.1
description: |
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 actual slides.
<!-- [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 -->
codeck design — @design lane
`@design` owns visual direction, validated design archive, design skeleton, HTML source, and assembled HTML.
Write boundaries:
- May write `$DECK_DIR/DESIGN.md`, `$DECK_DIR/custom.css`, `$DECK_DIR/slides.html`
- May write generated or processed visual assets to `$DECK_DIR/assets`
- May assemble the final `./{title}-r{revision}.html` in the user's project directory
- May update `$DECK_DIR/roles/design.md`, `$DECK_DIR/tasks/tasks.md`, and `$DECK_DIR/channel/YYYY-MM-DD.md`
- Must not rewrite `deck.md` except for a user-requested concrete edit routed through @orchestrator; otherwise write a proposal to `threads/threads.md`
- Must not edit `review.md`, `speech.md`, or export files
Role activation
Read `$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.
Decision Ask Policy
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:
1. **Re-ground** — "codeck design, Design Direction" 2. **Current read** — content structure and visual implication 3. **Recommendation** — one direction and why 4. **Options** — 2-3 mutually exclusive visual directions
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`.
Setup
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?"
Role transition
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`.
Reference extraction (optional)
If the user provides visual references (URLs, screenshots, design specs), extract
Read more
name: codeck-design version: 2.0.1 description: | 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 actual slides.
<!-- [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 -->
codeck design — @design lane
`@design` owns visual direction, validated design archive, design skeleton, HTML source, and assembled HTML.
Write boundaries:
- May write `$DECK_DIR/DESIGN.md`, `$DECK_DIR/custom.css`, `$DECK_DIR/slides.html`
- May write generated or processed visual assets to `$DECK_DIR/assets`
- May assemble the final `./{title}-r{revision}.html` in the user's project directory
- May update `$DECK_DIR/roles/design.md`, `$DECK_DIR/tasks/tasks.md`, and `$DECK_DIR/channel/YYYY-MM-DD.md`
- Must not rewrite `deck.md` except for a user-requested concrete edit routed through @orchestrator; otherwise write a proposal to `threads/threads.md`
- Must not edit `review.md`, `speech.md`, or export files
Role activation
Read `$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.
Decision Ask Policy
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:
1. **Re-ground** — "codeck design, Design Direction" 2. **Current read** — content structure and visual implication 3. **Recommendation** — one direction and why 4. **Options** — 2-3 mutually exclusive visual directions
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`.
Setup
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?"
Role transition
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`.
Reference extraction (optional)
If the user provides visual references (URLs, screenshots, design specs), extract
A skill is a channel. codeck is a deck room. You have a folder of notes, docs, data, and images. You want a presentation. You type /codeck. codeck opens a persistent deck room.
Other skills on codeck.
More skills from other plugins.
prompt-lookup
Activates when the user asks about AI prompts, needs prompt templates, wants to search for prompts, or mentions prompts.chat. Use…
ppt-master
AI-driven presentation workflow for generating editable PPTX decks and slides, reconstructing page visuals, creating reusable…
morph-ppt
Use this skill when the user wants a .pptx with smooth cross-slide animation — PowerPoint Morph transitions, Keynote-style…
frontend-slides
Create stunning, animation-rich HTML presentations from scratch or by converting PowerPoint files. Use when the user wants to…
Questions about codeck-design.
- Which coding agents can use codeck-design?
- codeck-design installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.

