One line of intent → a presentation-grade dark/paper editorial HTML deck. ▶ Watch the full films:
> /plugin marketplace add gongnyang/deck-factory> /plugin install deck-factory@deck-factory
FAQ
deck-factory is a Claude Code plugin with 1 hand-picked skill for content work, indexed on Flowy. Install it with the command on its page. It includes deck-factory. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.
Repo: gongnyang/deck-factory
English | 한국어
One line of intent → a presentation-grade dark/paper editorial HTML deck.

▶ Watch the full films: Hook · 30s · Making-of · 40s · Usage · 30s
You know the pain: it's midnight before the review, and you're still nudging text boxes, fighting gray cards, and shrinking fonts nobody in the back row will read. deck-factory replaces that grind with a design system. Give it one sentence about what you want to say, and it builds the front-of-house — an editorial deck with giant numbers, four-corner chrome, hairline structure, and zero amateur boxes. Dark remains the keynote default; report, document, and print-oriented briefs switch to a paper-light profile.
The verified deliverable today: 12 premium slides + 3 motion-graphics films, all built from this design system. The full generation pipeline (below) is the roadmap that automates it end to end.
# 1. Add the plugin marketplace
/plugin marketplace add kimsh-1/deck-factory
# 2. Install the skill
/plugin install deck-factory@deck-factory
# 3. Call it with one sentence
/deck-factory "Series A IR deck, 12 slides, why our retention curve wins"
# Document-style briefs auto-select the light profile
/deck-factory "Board report, 10 slides, Q2 retention analysis"
# Explicit overrides also work
/deck-factory "Proposal deck, 8 slides, profile: light"
Installation via the plugin marketplace is the intended path. The design system and skill are real and ready to use; the fully-automated one-command pipeline is being wired up (see How it works).
| Dark + paper-light profiles | near-black #08090A by default, paper #F7F4EC for document decks, lavender-blue accent family, Pretendard, giant stat numbers. |
no_box · giant numbers · four-corner chrome | no gray filler cards — structure comes from hairlines and a surface ladder. 120px+ stat numbers with value > label > context hierarchy. |
| Quality gate — by design | 47 deterministic checks across 6 weighted categories (typography, structure, trust, data-viz, color, alignment), a 90-point pass line, and 7 hard-fail thresholds. Autoscoring is calibration-pending; the gate is designed so a sub-grade deck can't quietly reach final. |
| Real Chromium render | slides are laid out in HTML/CSS and rendered by an actual browser engine — what you see is what exports. |
| Compact share PDF by default | raw Chrome PDFs are archival; *-lite.pdf is the default shareable artifact. |
| 8 style presets | apple · linear · notion · stripe · vercel · krds · toss-principles · kr-pick. |
| CJK-safe | keep-all line-breaking and Hangul break rules — no text shattering mid-syllable. |
Twelve slides, one design system. This is the proof.
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |
![]() | ![]() | ![]() |

The design system is here today. The pipeline below is the vision that turns one sentence into a finished deck automatically — a six-stage chain where each stage hands off a file the next one verifies:
draft, never silently promoted.*-lite.pdf artifact.Stages storyline through render/export exist as working code in the incubator; end-to-end autoscoring and the final polish pass are the remaining calibration work.
The whole look reduces to a few enforced tokens — the skill is the source of truth:
--bg-0: #08090A (near-black, never pure black); light uses --bg-0: #F7F4EC (paper). Both use surface ladders and hairlines for depth instead of drop shadows.#6E7BF2 and cyan #43C7F4, one accent moment per slide.#FFFFFF / #A1A1A6 / #6B6B70, a three-step foreground hierarchy.no_box, alpha-white hairlines, four-corner chrome (brand chip · section · author · page), one dominant object per slide.→ Full contract: skills/deck-factory/SKILL.md
deck-factory/
├── skills/deck-factory/ # the skill — SKILL.md + assets/styles.css
├── docs/
│ ├── media/ # hero.gif, pipeline.png
│ └── gallery/ # slide-01.jpg … slide-12.jpg
├── videos/ # the three motion-graphics films
├── design/ # DECK-STANDARD.md — the quality contract (SSOT)
└── incubator/ # pipeline code: deck-grader, deck-tokens, deck-editor
Customizing: pick a preset (/deck-factory "… preset: linear"), force a profile (/deck-factory "… profile: light"), or edit the token values in the skill's stylesheet to retune the palette. Presets change structure and signature devices; color always resolves through token variables.
Released under the MIT License.
Built with Claude Code — powered by the deck-factory skill.
One line in. A deck worth presenting out.
.claude-plugin/
marketplace.json
plugin.json
.gitignore
docs/
examples/
light-profile-sample.html
gallery/
slide-01.jpg
slide-02.jpg
slide-03.jpg
slide-04.jpg
slide-05.jpg
slide-06.jpg
slide-07.jpg
slide-08.jpg
slide-09.jpg
slide-10.jpg
slide-11.jpg
slide-12.jpg
internal/
codex-critique.md
codex-final-verdict.md
codex-reverdict.md
HANDOFF.md
PLAN.md
REBUILD-PLAN.md
workers-critique.md
workers-final-verdict.md
workers-reverdict.md
WORKERS.md
media/
art/
closing.png
cover.png
data.png
making.png
pipeline.png
section.png
hero.gif
pipeline.png
LICENSE
README.ko.md
README.md
research/
astryx.md
chart-libs.md
consulting-quality.md
deck-frameworks.md
image-and-text.md
korean-design-systems.md
manim-video.md
skill-architecture.md
slides-grab.md
toss-design.md
skills/
deck-factory/
assets/
styles.css
reference.md
scripts/
compact-pdf.sh
SKILL.md
vendor/
PINS.json
work/
dag.json
phase0/
T0-1-contracts-v1/
brief.md
done
passed.json
state/
attempt-0.passed
verdict/
1.json
2.json
3.json
final.json
judge-qualification-link.json
T0-10-dag-runner/
brief.md
brief.retry-1.md
done
passed.json
state/
attempt-0.aborted
attempt-1.passed
T0-2-scaffold/
brief.md
done
passed.json
state/
attempt-0.passed
T0-3-vendored-sync/
brief.md
done
passed.json
state/
attempt-0.passed
T0-4-grader-skeleton/
brief.md
brief.retry-1.md
done
passed.json
state/
attempt-1.passed
T0-5-goldenset-freeze/
brief.md
done
passed.json
state/
attempt-0.passed
T0-6-license-evidence/
brief.md
done
passed.json
state/
attempt-0.passed
verdict/
1.json
2.json
3.json
final.json
judge-qualification-link.json
T0-7-vendor-pin/
brief.md
done
passed.json
state/
attempt-0.passed
T0-8-judgment-infra/
brief.md
done
passed.json
state/
attempt-0.passed
T0-9-spawn-wrapper/
brief.md
brief.retry-1.md
done
passed.json
state/
attempt-1.passed
phase1/
demo.tasks.jsonl
T1-1-validators/
brief.md
done
logs/
run.log.json
passed.json
state/
attempt-0.passed
T1-10-demo/
brief.md
done
logs/
run.log.json
passed.json
state/
attempt-0.passed
T1-2-apple/
brief.md
done
logs/
run.log.json
passed.json
state/
attempt-0.passed
verdict/
1.json
2.json
3.json
final.json
T1-2-kr-pick/
brief.md
done
logs/
run.log.json
passed.json
state/
attempt-0.passed
verdict/
1.json
2.json
3.json
final.json
T1-2-krds/
brief.md
done
logs/
run.log.json
passed.json
state/
attempt-0.passed
verdict/
1.json
2.json
3.json
final.json
T1-2-linear/
brief.md
done
logs/
run.log.json
passed.json
state/
attempt-0.passed
verdict/
1.json
2.json
3.json
final.json
T1-2-notion/
brief.md
done
logs/
run.log.json
passed.json
state/
attempt-0.passed
verdict/
1.json
2.json
3.json
final.json
T1-2-stripe/
brief.md
done
logs/
run.log.json
passed.json
state/
attempt-0.passed
verdict/
1.json
2.json
3.json
final.json
T1-2-toss-principles/
brief.md
done
logs/
run.log.json
passed.json
state/
attempt-0.passed
verdict/
1.json
2.json
3.json
final.json
T1-2-vercel/
brief.md
done
logs/
run.log.json
passed.json
state/
attempt-0.passed
verdict/
1.json
2.json
3.json
final.json
T1-4-capacity/
brief.md
done
logs/
run.log.json
passed.json
state/
attempt-0.passed
T1-5-closing-special/
brief.md
done
logs/
run.log.json
passed.json
state/
attempt-0.passed
verdict/
1.json
2.json
3.json
final.json
T1-5-cover-section/
brief.md
brief.retry-1.md
done
logs/
run.log.json
passed.json
state/
attempt-0.passed
verdict/
1.json
2.json
3.json
final.json
T1-5-data-chart/
brief.md
brief.retry-1.md
brief.retry-2.md
done
logs/
run.log.json
passed.json
verdict/
1.json
2.json
3.json
final.json
T1-5-image-visual/
brief.md
brief.retry-1.md
brief.retry-2.md
done
logs/
run.log.json
passed.json
state/
attempt-1.aborted
verdict/
1.json
2.json
3.json
final.json
T1-5-text-content/
brief.md
brief.retry-1.md
brief.retry-2.md
done
logs/
run.log.json
passed.json
state/
attempt-2.passed
verdict/
1.json
2.json
3.json
final.json
T1-5f-margin-hardening/
brief.md
done
logs/
run.log.json
passed.json
T1-5g-font-canonical/
brief.md
done
logs/
run.log.json
passed.json
T1-6-overflow-checker/
brief.md
done
logs/
run.log.json
passed.json
state/
attempt-0.passed
T1-7-render-queue/
brief.md
done
logs/
run.log.json
passed.json
state/
attempt-0.passed
T1-8-budget-watch/
brief.md
done
logs/
run.log.json
passed.json
state/
attempt-0.passed
T1-9-align/
brief.md
done
logs/
run.log.json
passed.json
state/
attempt-0.passed
T1-9-color/
brief.md
done
logs/
run.log.json
passed.json
state/
attempt-0.passed
T1-9-typo/
brief.md
done
logs/
... 421 more© 2026 Flowy · Free and open source
Built for Claude Code · Not affiliated with Anthropic