Turn an idea / article / dataset into single-file HTML presentations across 7 visual personas — where both taste and honesty are machine-enforced
English · 中文
Install — tell your agent (Codex / Claude Code / Cursor / Gemini CLI…): "Install this Skill:
github.com/dososo/blcaptain-ppt-skill"
Most AI slides announce themselves at a glance: big color blocks, emoji, purple gradients, centered stacking, made-up numbers, random stock photos. The problem isn't that the model isn't trying — it's that "looking good" is treated as mysticism, left to luck, different every time.
But real presentation design — a technical report, a launch keynote, an industry analysis — has a method: how much the type scale should differ, how much whitespace to leave, which colors you must never use, how a dark slide stays readable on a projector, which numbers you may not invent. Recognized design systems have studied this for decades.
blcaptain turns that craft into constraints a machine can enforce. Every deck is a precisely-engineered object that carries one judgment you can't dodge — precision × conviction. The AI doesn't free-style a layout; it fills a validated one. So the output is stably good, and honest — every time, not by luck.
"Good design is as little design as possible." — Dieter Rams. The moat isn't a feature list; it's the discipline of what we won't ship.
- Never fabricate data / logos / screenshots / sources — unverifiable numbers are labeled
illustrative, and it's machine-checked. - No emoji, no random stock photos — the two loudest tells of AI slop.
- One signal color, ~5% — no multi-color clutter fighting for attention.
- No decorative geometry that carries no meaning — form serves content, never the reverse.
- No frivolous font weights, no all-rounded floating cards, no purple/blue/orange/pink gradients.
- Never crowd out whitespace to cram more in.
- No unanchored, self-invented styles — every persona anchors to a recognized design system, with sources.
- No copying a single school wholesale as a finished product.
| 7 visual personas | Each anchored to a recognized design system (not recolored templates): Technical Sublime · Constructivism · Information Design · Luxury Minimalism · De Stijl · Editorial · Zen. Auto-picked from your content, or specify it. |
| Machine-enforced taste | token + WCAG contrast gate + spacing-scale gate + P0/P1/P2 validation + a 32-dimension audit — taste compiled into code constants; every deck passes the floor or it doesn't ship. |
| Anti-fabrication honesty | No fake data / logos / screenshots / sources; unverifiable numbers marked illustrative, enforced by machine. |
| Local fonts | Fonts subset and packed into the deck — never breaks offline or behind a firewall, no CDN. |
| Single-file HTML | One deck = one .html: present in a browser · Ctrl+P for a precise 16:9 PDF · screenshot for social. |
| Zero dependencies | Scripts use only Node built-ins. git clone and go — not one npm package. |
Picking a persona isn't choosing decoration — it's claiming a stance (a design system). Each cover below is page 1 of that persona's 20-page demo:
The covers above are page 1; here is every page of each demo (click to enlarge, or open the matching templates/deck-<persona>.html to see it live):
![]() Technical Sublime · engineered cool |
![]() Constructivism · red-square manifesto |
![]() Information Design · data as argument |
![]() Luxury Minimalism · bare color, priced whitespace |
![]() De Stijl · muted primaries, pure order |
![]() Editorial · serif, magazine grid |
![]() Zen · dark ink, one thought a page |
7 personas = 7 time-tested design systems, not recolored templates. Each is 20 pages, all passing P0=0 machine checks.Full-resolution images in docs/gallery/. |
| Dimension | Most AI deck tools | blcaptain |
|---|---|---|
| Consistency | Looks good by luck — different every run | Machine-enforced floor (WCAG / spacing / 32-dim audit) — passes or won't ship |
| Depth vs breadth | One template recolored for everything | 7 personas, each anchored to a recognized design system |
| Honesty | Happily invents data, fakes screenshots | Anti-fabrication, in writing and machine-checked |
| Fonts | CDN fonts — break offline / behind a firewall | Subset and packed into the deck, never breaks |
| Projection | Dark slides often unreadable on a projector | AAA contrast floor so a live audience can read it |
| Footprint | npm + build chain | Zero dependencies — git clone and go |
Large data tables / training material · legal / medical / financial compliance docs · multi-author PPT editing · plain-text summaries · replicating a brand's official keynote · fabricating realistic-looking data, logos, or screenshots. A tool that does everything usually does nothing well.
Once installed, just talk to your agent:
Use blcaptain to turn this into a deck:
(paste your goal / article / data)
It reads the content, picks a persona (and tells you why), asks at most 3 questions, then emits a single-file HTML deck plus a QA report. Don't like it? Say "switch persona / this page is too dense / bigger type" and it adjusts.
You get: one .html (present in a browser, or Ctrl+P for a 16:9 PDF) + a quality report (P0 / P1 / P2 + 32-dimension audit). Validate any deck:
node scripts/validate-deck.mjs templates/deck-compute.html # P0 must be 0Not box-filling — every step is the agent's own call:
- Read & scope — auto-detect deck type + persona, size the page count to the content (never padded, never bloated).
- Content first — given a URL / file,
scripts/ingest.mjspulls clean text (never bypasses paywalls, never fakes a source); enough info → generate, otherwise at most 3 questions. - Design brief — confirm the core judgment + audience + page rhythm in words before generating.
- Layout + images — pick the persona's seed layouts; images routed by role (below).
- Single-file HTML — tokens from the locked source of truth, signature per persona DNA, white-labeled (no internal codenames).
- Validate + audit —
validate-deck.mjs(P0=0 to ship) + a 32-dimension audit; last line asks "would you dare present this as-is?"
Images aren't forced. Each slot is routed by what role the image plays:
- Evidence / real (product shots · data · logos) → ① you provide → ② ask you → ③ real public source (with license) → ④ degrade to a chart / pure type. Never AI-faked; your screenshots get a zero-dependency CSS frame (frame only, never alter content).
- Atmosphere / metaphor / motif (cover hero · backgrounds · decoration) → ① CSS / SVG signature graphics (most decks, zero bitmap, style = persona DNA) → ② AI generation (first
scripts/image-gen.mjs detectprobes your image-gen environment — use it if present, tell you clearly if not) → ③ open library (Openverse CC0, auto-attributed).
Never silently inserts generic stock — a default-generated image is one any tool could produce; that erases the very difference you came for.
The aesthetic isn't invented; every persona anchors to a time-tested system:
- Technical Sublime → Vercel / Linear / Stripe engineered cool · Edward Tufte's data-ink ratio.
- Constructivism / De Stijl → Rodchenko · El Lissitzky · Mondrian · Theo van Doesburg · Vignelli.
- Information Design → Tufte · Financial Times · The Pudding · NYT Graphics.
- Luxury Minimalism / Editorial → Didone (Bodoni / Didot) · The New Yorker · Monocle · the Society of Publication Designers (SPD).
- Zen → Tanizaki's In Praise of Shadows · Kenya Hara / MUJI · the ma of a dry-stone garden.
blcaptain-ppt-skill/
├── SKILL.md # The brain agents read: intelligence-driven workflow + 7 personas + hard gates
├── PRODUCT.md # Positioning / differentiation / capability boundaries
├── references/ # Load on demand: locked tokens / layout library / chart system / screenshot framing / hidden details
├── scripts/ # Zero-dependency Node: validate / font-subset / chart-render / image-gen-detect / content-ingest
├── templates/ # 7 deck seeds (single-file HTML, tokens/layouts/signatures inline) + local fonts
├── examples/ # End-to-end example deck
└── docs/gallery/ # 7 personas × 20-page overviews + covers + hero wall
- Natively editable PPTX export — the "edit text in PowerPoint" corporate case (important, planned; today: browser
Ctrl+P→ precise 16:9 PDF). - More real-content polish + end-to-end examples per persona.
- Publish each persona's full design methodology, progressively.
- Continued bilingual docs covering more agent platforms.
How is this different from "one-click PPT" tools? Most recolor one template for everything — you can tell it's AI, and they happily invent data. This gives you 7 personas, each anchored to a recognized design system, plus machine-enforced contrast / spacing / a 32-dimension audit and anti-fabrication honesty — output that reads professional and doesn't lie.
Do I have to use Claude? No. Any Skill-capable agent works (Codex / Claude Code / Cursor / Gemini CLI…).
Lots of dependencies?
None. Scripts use only Node built-ins (fetch / fs…) — zero npm dependencies, git clone and go (Node ≥ 18).
What if I have no image? Most "images" are CSS/SVG signature graphics — zero bitmap and still complete. For real bitmaps it first detects your image-gen environment (uses it if present, tells you clearly if not), or pulls from Openverse CC0. It never quietly inserts generic stock and never fabricates a screenshot.
Can I change persona / color? Persona can be specified or auto-judged; accent has 3 presets; but type scale / spacing / contrast are machine-backstopped — that's exactly why it's stably good.
Where does my content go? Nowhere of ours. The Skill runs locally inside your own agent; your content only passes through the agent / model you're already using. We have no server and receive nothing.
爆裂队长NEXT (BLCaptain) — 15yr PM. Fired myself. Hired 10 AIs. Field notes from running an AI-agent team; production-grade, real war stories. Less second-hand noise, more first-hand signal.
- X / Twitter: @thinkszyg
- Email: blteam2026@outlook.com
Feedback and requests welcome in Issues.
Free for personal & open-source use; closed-source / commercial use needs a paid license. The decks you generate are always yours, unrestricted — only embedding the software itself in a closed / commercial product needs a license. See LICENSE. Commercial licensing: blteam2026@outlook.com














