Token导航 LogoToken导航TokenDH.com
研究检索敏感数据github未标认证来源可访问许可证需确认审计提醒

carousel-designer轮播设计师

Agent Skill

carousel-designer 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

269

周安装

11

GitHub Stars

公开资料未说明

下载量

87
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:carousel-designer(轮播设计师)
来源仓库:https://github.com/michailbul/laniameda-skills
仓库路径:skills/carousel-designer
安装命令:
npx skills add https://github.com/michailbul/laniameda-skills --skill carousel-designer
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/michailbul/laniameda-skills --skill carousel-designer

简介

用于查找、检索和筛选相关信息,适合关键词驱动的任务场景。

  • 可根据任务线索快速定位候选结果,需明确搜索目标和来源范围。
  • 安装前建议确认权限和维护状态,避免触发未预期的联网或数据访问。
  • 通过 npx 命令从指定仓库安装,适用于 Codex、Claude、Cursor 等宿主环境。
  • 实际用法需参考原始 README 和 SKILL.md,确保理解其检索逻辑和输出格式。

SKILL.md

Carousel Designer

Generate publish-ready social media carousels as a single self-contained HTML file. Export to PDF + PNGs via Playwright.

Output structure

<project>/
  src/slides.html      <- single file, all slides
  dist/carousel.pdf
  dist/slides/01.png ... NN.png
  package.json         <- { "type": "module", "dependencies": { "playwright": "^1.52" } }

Phase 0: Parse the Request

Before designing anything, extract from the user's message:

FieldDefault
Topic(required)
Key pointsExtract or infer from topic
CTA"Save + follow"
Tonebrand-system-aligned
PlatformInstagram + LinkedIn (1080x1350)
ModeEDUCATE
Slide count7 (min 5, max 10)
Carousel typeEducational
Brand systemUse the active brand guidelines when available
Comparison formatIf comparing outputs, default to one output per slide (full-width), not side-by-side unless the user explicitly asks for a split

If topic is unclear, ask one question only: *"What's the main idea you want to get across?"*


Platform Specs

PlatformDimensionsMax SlidesAspect Ratio
Instagram1080x1350px204:5
LinkedIn1080x1350px204:5
Twitter/X1080x1080px41:1
Story1080x1920px79:16

Default to 1080x1350 (4:5) unless X-only or Story is explicitly requested. 4:5 takes more feed real estate than square.


Carousel Modes

SHOWCASE -- Prompt Shares / AI Art

The image IS the content. The design system provides a premium dark frame.

  • CSS: assets/styles/mode-showcase.css
  • Template: assets/templates/showcase-template.html
  • Key components: .showcase-frame, .showcase-prompt, .showcase-param-tag, .showcase-model-badge
  • Slides: Image hook -> Prompt detail -> CTA
  • Rule: Minimal text. The art speaks.

EDUCATE -- Tutorials, How-Tos, Listicles

Structured content with clear hierarchy and progressive disclosure.

  • CSS: assets/styles/mode-educate.css
  • Template: assets/templates/educate-template.html
  • Key components: .step-number, .edu-card, .edu-list, .edu-callout, .edu-progress
  • Slides: Hook -> Step slides -> List slides -> Stats -> CTA
  • Rule: One idea per slide. Max 30 words.

THINK -- Thought Leadership / Raw Ideas

Pure text, maximum negative space, dramatic typography.

  • CSS: assets/styles/mode-think.css
  • Template: assets/templates/think-template.html
  • Key components: .think-hero, .think-body-lg, .think-accent, .think-gradient, .think-counter
  • Slides: Statement -> Emphasis -> CTA
  • Rule: NO glass cards, NO code blocks, NO accent chips. Typography does ALL the work.

Workflow -- follow in order, skip nothing

Phase 1: Design Intelligence (before writing any HTML)

  1. Read references/REFERENCES.md -- extract layout patterns, type choices, color moments, spacing ratios from listed references. Note which patterns apply to each slide type.
  2. Read references/layout-rules.md -- internalize all 12 rules. These override any general instincts about layout.
  3. Read references/design-standards.md -- lock in the typography scale + quality checklist.
  4. Read the brief -- map each key point to a slide type and select the right primitive or mode component.

Phase 2: Build

  1. LinkedIn / brutalist-tech mode: Read assets/linkedin-base.html -- use as skeleton (fonts, tokens, grid/grain, slide counter all pre-wired). Read assets/components/primitives.html -- copy-paste the right building block per slide.
  2. Dark Tech mode (SHOWCASE / EDUCATE / THINK): Load assets/styles/carousel-base.css first, then the mode-specific CSS. Use the corresponding template from assets/templates/ as a starting point.
  3. Build src/slides.html:

- Start from chosen base template, fill all slides - Apply layout-rules.md constraints (alignment, scale contrast, negative space) - Apply patterns extracted from REFERENCES.md - Every element left-aligned unless explicitly specified otherwise - Slide counter or progress indicator on every slide - Adjust slide count dynamically (min 5, default 7, max 10)

Phase 3: Render & QA

  1. Run npm install then node scripts/render.mjs
  2. Run full quality checklist (see Design Audit below)
  3. If any check fails: fix and re-render (do not skip)
  4. Print: RENDER_COMPLETE: dist/carousel.pdf + dist/slides/01-NN.png

Phase 4: Visual Review & Feedback Loop (max 3 iterations)

  1. Review each rendered PNG against the quality checklist.
  2. Decision:

- All checks pass -> deliver - 1-3 issues -> fix with structured feedback diffs, re-render - Major structural issues -> rebuild from Phase 2

  1. Format feedback as structured diffs, never prose: slide_1.headline: clips right edge -- reduce font-size 148px -> 120px slide_3.metric-card: missing shadow slide_7.closing: no CTA keyword -- add "Comment THROUGHPUT and I'll send it"
  2. After 3 iterations, deliver best available and note remaining issues.

Carousel Anatomy (every carousel follows this)

Every carousel maps to four functional zones. No exceptions.

PositionRoleJob
Slide 1THE HOOKStop the scroll. Bold, visual, provocative. Biggest text.
Slide 2THE TRANSITIONWhat will the user gain / what will the user avoid / what makes you qualified
Slides 3–N-1THE TEASEReveal info bit by bit. Examples, statistics, captivating visuals. Keep swiping.
Last slideTHE ACTIONMake the next step obvious. One clear CTA.

Typography minimums at carousel scale (1080x1350):

  • Headlines: 50pt minimum (55pt+ preferred)
  • Body copy: 14pt minimum — smaller sizes cause drop-off

Phase 5: Deliver

Option A — Telegram delivery (default)

# Send PDF
message(send, filePath: $PROJECT/dist/carousel.pdf)

# Send cover preview
message(send, filePath: $PROJECT/dist/slides/01.png,
        caption: "Carousel ready. N slides. Reply with any tweaks.")

Option B — Schedule to LinkedIn via Publora

If Michael asks to schedule or post, use the Publora REST API.

Prerequisite: Publora API key must be in env as PUBLORA_API_KEY. Account must be on Pro plan ($2.99/mo/account).

1. List connected accounts (find the LinkedIn platform ID):

curl -s https://api.publora.com/api/v1/platform-connections \
  -H "x-publora-key: $PUBLORA_API_KEY" | jq '.connections'
# Returns: [{platformId: "linkedin-ABC123", username: "...", displayName: "..."}]

2. Schedule the carousel:

Publora accepts LinkedIn carousels as a PDF document upload. Use the presigned upload URL flow.
# Step 1: get presigned S3 upload URL
curl -s -X POST https://api.publora.com/api/v1/get-upload-url \
  -H "Content-Type: application/json" \
  -H "x-publora-key: $PUBLORA_API_KEY" \
  -d '{"filename": "carousel.pdf", "contentType": "application/pdf"}'
# Returns: { uploadUrl, fileKey }

# Step 2: upload PDF to S3
curl -s -X PUT "$UPLOAD_URL" \
  -H "Content-Type: application/pdf" \
  --data-binary @$PROJECT/dist/carousel.pdf

# Step 3: create post with fileKey
curl -s -X POST https://api.publora.com/api/v1/create-post \
  -H "Content-Type: application/json" \
  -H "x-publora-key: $PUBLORA_API_KEY" \
  -d "{
    \"content\": \"$POST_CAPTION\",
    \"platforms\": [\"$LINKEDIN_PLATFORM_ID\"],
    \"scheduledTime\": \"$ISO_DATETIME\",
    \"mediaKey\": \"$FILE_KEY\"
  }"

When to use Publora vs. manual delivery:

  • Michael says "schedule this for tomorrow" or "post to LinkedIn" → use Publora
  • Michael wants to review first → deliver to Telegram, wait for approval
  • No Publora key → deliver to Telegram only, note that Publora integration is available

Slide Map (default 7-slide LinkedIn)

#TypeComponents to use
1Coverkicker, hero-headline, subtitle, badge-row
2Problemkicker, section-headline, subtitle
3Stat / Mathkicker, section-headline, metric-card OR equation-block
4Stat / Mathkicker, section-headline, metric-card OR equation-block
5Systemkicker, section-headline, checklist
6Solutionkicker, section-headline, stack-grid
7CTAkicker, section-headline, ordered-list, closing-line

Slide Archetypes (for flexible builds)

Use these as building blocks for any carousel type:

  • Hook Slide (Slide 1 -- always required): Bold headline (5-8 words max), optional subheadline. Largest text. No logos, no branding clutter.
  • Context Slide: Set up the problem. 1-2 sentences max.
  • Content Slide: Deliver the value. One idea per slide. Max 30 words.
  • Stats/Data Slide: One hero number (huge), supporting context (small).
  • Quote Slide: Social proof. Generous whitespace.
  • Before/After Slide: Split layout with clear labels.
  • CTA Slide (final -- always required): ONE clear call to action. Do not dilute.

Carousel Type Templates

Educational / Tips

Slide 1: Bold claim hook
Slide 2: Why this matters (context)
Slides 3-6: One tip each, numbered
Slide 7: CTA (save + follow)

Storytelling / Case Study

Slide 1: Outcome hook ("How I went from X to Y")
Slide 2: The starting situation
Slide 3: The challenge / pain
Slide 4: What we tried (failed)
Slide 5: What actually worked
Slide 6: The result (numbers/proof)
Slide 7: Key takeaway + CTA

Before / After

Slide 1: Transformation hook
Slide 2: The "before" state (problem framed)
Slide 3: Problem 1 -- what made it broken
Slide 4: The "after" state
Slide 5: What changed + why it worked
Slide 6: Result proof
Slide 7: Offer to help / CTA

Comparison / Model Battle

Slide 1: Hook — what is being compared and why it matters
Slide 2: Comparison item 1 — output A (full-width)
Slide 3: Comparison item 1 — output B (full-width)
Slide 4: Comparison item 2 — output A
Slide 5: Comparison item 2 — output B
...
Final slide: Exact value-exchange CTA

Rules:

  • one compared output per slide by default
  • full-width image beats half-width split in almost every Instagram case
  • prompt/context box at top, image as hero below
  • use side-by-side only when the brief explicitly prioritizes simultaneous visual comparison over image quality

Tools / Listicle

Slide 1: Number hook ("7 tools that changed how I create")
Slide 2: Context -- why tools matter / what was missing
Slides 3-6: 1-2 tools per slide, name + one-liner use case
Slide 7: Save + follow CTA

Narrative Arc Templates (Dark Tech modes)

Educational (5-8 slides): Hook -> Context -> Content -> Content -> Content -> Stats -> CTA Storytelling (6-8 slides): Hook -> Context -> Content -> Content -> Quote -> Content -> CTA Listicle (5-10 slides): Hook -> Content -> Content -> Content -> Content ->... -> CTA Comparison (5-7 slides): Hook -> Before/After -> Content -> Content -> Stats -> CTA Single Concept Deep Dive (4-6 slides): Hook -> Context -> Content -> Content -> CTA


Hook Types

The most important slide. If this fails, nobody swipes.

TypeFormulaExample
Bold claim"[X]% of [audience] [painful truth]""90% of content strategies skip this"
Question"Why does [common thing] [not work]?""Why does posting daily still not grow you?"
Number + promise"[N] [things] you [outcome verb]""5 tools that replaced my whole production team"
Contrarian"Stop doing [popular thing]. Do [this].""Stop making content. Build a content engine."
Before/AfterState the transformation in one line"I went from 3 posts/month to 30 posts/week -- same effort"

Swipe Psychology (bake into slide design)

PrincipleHow to apply
Curiosity gapHook promises value that requires swiping to unlock
Numbered progressShow "3/7" or progress dots to create completion drive
Visual continuityConsistent design signals "there's more"
Increasing valueBest insight last -- rewards completing the whole carousel
Swipe cueArrow or "Swipe ->" text on slide 1

Color Presets

MoodBackgroundAccentBody text
Obsidian editorial#0A0805#F26157 (coral)rgba(240,235,232,0.60+)
Carbon system#191919#F26157 / #79B791rgba(240,235,232,0.60+)
Graphite utility#3A3A3A#F26157rgba(240,235,232,0.60+)
Linen light#FFF4EA#F26157#1A1008
Amber signal#E8A838#1A1008 / #F26157#1A1008

Validated rejects for carousel backgrounds:

  • #3D2E42 / purple-adjacent Charcoal Violet
  • #4A5E7A / blue-grey Slate Blue
  • pure black #000000
  • pure white #FFFFFF

Default to the brand-system palette above unless the user explicitly asks for a different visual language.


Fonts

Brutalist / LinkedIn mode

<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Space+Grotesk:wght@400;500;600;700&family=JetBrains+Mono:wght@400;700&display=swap" rel="stylesheet">

Display: Bebas Neue. Body: Space Grotesk. Mono: JetBrains Mono. Never use Arial/Inter/Roboto as display.

Dark Tech modes

Font stack: Space Grotesk (headlines) + Inter (body) + JetBrains Mono (code/labels). Loaded via carousel-base.css.


Brand tokens (Brutalist / LinkedIn mode -- inline in <script> block)

tailwind.config = {
  theme: { extend: {
    colors: { primary:'#8566AF', secondary:'#BA943B', accent:'#EA3F2C', 'accent-alt':'#FF552E', brand:'#09090B' },
    fontFamily: {
      display: ['"Bebas Neue"', 'Impact', 'sans-serif'],
      body:    ['"Space Grotesk"', '"Helvetica Neue"', 'sans-serif'],
      mono:    ['"JetBrains Mono"', '"SF Mono"', 'monospace'],
    },
  }},
}

Laniameda Positioning Rules (Non-Negotiable)

These apply to all carousels unless Michael explicitly overrides:

Audience

Creative brands and creative studios. Not engineers. Not enterprise buyers. People who think in campaigns, content calendars, and creative output -- not runtimes.

Default tone

  • Outcome-first. Lead with what they get, feel, or achieve.
  • Crisp. No padding, no hedging, no corporate speak.
  • Confident. State things. Don't ask.
  • Creative. Slide design should feel intentional, not templated.

Language to avoid

  • runtime, orchestration, sub-agent, spawn, inference, async, parallel workloads
  • "leverage", "utilize", "synergy", "ecosystem"
  • DevOps / backend engineering framing as the lead

Language to lean into

  • content engine, production pipeline, creative OS, creative leverage
  • on-brand, consistent, more output same team, stay creative director
  • transformation vocabulary: "from X to Y", "now you can...", "what used to take..."

Exception

For OpenClaw architecture / agent infrastructure topics, technical framing is acceptable and intentional. The audience there is technical-curious builders, not default creative brand audience.

Anti-patterns

  • Do not lead with "AI tools can help you..." -- commodity angle
  • Do not use "leverage AI to..." -- weak and overused
  • Do not explain the tech before explaining the outcome
  • Do not let the tool be the hero -- the creator's output/life is the hero

Hard rules

  • Every slide: class slide, id slide-0N, fixed dimensions via CSS
  • Brutalist mode: Black border (12px sides, 14px top/bottom, #09090B). Grid overlay via ::before, grain via ::after. chrome div: position:relative; z-index:1; padding:78px 76px; display:flex; flex-direction:column. Slide counter "0N / 07" on every slide.
  • Dark Tech modes: .slide is 1080x1350 with grid background and vignette built in. .safe-zone has 80px inset with 48px bottom padding for footer. .slide-footer with handle + progress dots on every slide.
  • The Unforgettable Rule: slide 1 must pass -- one element works as a standalone viral image
  • 1 idea per slide -- no walls of text
  • Max 30-40 words per content slide
  • Accent color on <=1 element per slide
  • No placeholder text -- real content from brief only
  • If the slide is image-led, do not put opaque containers/cards on top of the image; solve contrast with gradients and text shadows first
  • For comparison carousels, default to one output per slide; do not crush images into side-by-side half-width frames unless explicitly requested
  • CTA copy should preserve the exact value exchange from the brief; do not rewrite it into a generic "save/follow" hook if the user supplied a concrete offer
  • Print RENDER_COMPLETE only after PDF + all PNGs verified to exist

Design Audit (run before delivering)

Layout

  • No text clipping at edges (right side is the most common failure)
  • No overflow below slide boundary
  • Borders/grid/vignette visible and correct for chosen mode
  • All text within safe zone with footer clearance

Typography

  • Fonts loading correctly (condensed display, not generic fallback)
  • Font sizes are phone-readable (nothing under 18px)
  • Max 30 words per content slide
  • 3 typographic levels max per slide

Hierarchy

  • One dominant headline per slide
  • One focal point per slide -- eye lands in one place
  • Using correct mode CSS (showcase/educate/think/brutalist)
  • Clear narrative arc from slide 1 to final

Brand

  • Accent color used on <=1 element per slide
  • Consistent spacing using correct base unit (24px or 54px grid)
  • Color palette consistent with chosen preset

Content

  • Slide 1: cover -- bold hook, passes the unforgettable test
  • Content slides: one key idea each
  • CTA slide has exactly ONE clear action
  • No Lorem Ipsum or placeholder text anywhere
  • Numbers/stats match the brief

Mode-specific

  • SHOWCASE: Minimal text, art is the hero, showcase-frame has visible depth
  • EDUCATE: Glass cards have depth (inset highlight + outer shadows), grid at 60px cells
  • THINK: NO cards/chips/code blocks -- text only
  • BRUTALIST: Black border on all 4 sides, slide counter bottom-right

Export

  • PNGs are exactly the target dimensions
  • Footer (handle + progress OR slide counter) present on every slide
  • Exported PNGs match what was designed

Common Mistakes

MistakeFix
Weak hook (slide 1)Bold claim, question, or number + promise
Too much text per slideMax 30-40 words, hard limit
No visual consistencySame colors, fonts, margins throughout
No swipe indicator on slide 1Add "Swipe ->" or arrow
No CTA on last slideAsk to save, follow, share, or comment
Cramming 2+ ideas per slideOne point per slide, always
Square format on InstagramDefault to 1080x1350 (4:5)
Leading with technical languageLead with outcome; audience is creative brands
Center-aligned body textLeft-align everything (see layout-rules.md rule 1)

Reference files -- read ALL in Phase 1 before writing HTML

FileWhat it containsWhen to use
references/REFERENCES.mdDesign inspiration + brand DNAExtract layout/type/color patterns before designing
references/layout-rules.md12 explicit design rulesAlignment, scale contrast, spacing, card style, narrative arc
references/design-standards.mdTypography scale, color rules, quality checklistType sizes, color assignments, QA after render
references/brief-template.mdBrief template for structured requestsFill before building when topic needs structuring
references/quality-checklist.mdPer-slide visual review checklistRun on every PNG set before approving

Asset files -- copy-paste when building

FileWhat it contains
assets/linkedin-base.htmlBrutalist skeleton: fonts, Tailwind config, grid/grain, slide counter
assets/components/primitives.htmlAll brutalist primitives: kicker, headlines, metric-card, equation, terminal, checklist, stack-grid, badge-row, closing-line
assets/brand-tokens.jsTailwind color + font config
assets/styles/carousel-base.cssDark Tech design tokens + shared components (ALWAYS load for modes)
assets/styles/mode-showcase.cssShowcase-specific styles
assets/styles/mode-educate.cssEducate-specific styles
assets/styles/mode-think.cssThink-specific styles
assets/templates/showcase-template.html3-slide showcase starter (image hook, prompt detail, CTA)
assets/templates/educate-template.html5-slide educate starter (hook, step, list, stats, CTA)
assets/templates/think-template.html3-slide think starter (statement, emphasis, CTA)
scripts/render.mjsPlaywright render -> PDF + PNGs (copy to project root)

Usage Examples

LinkedIn carousel (brutalist, default):

/carousel-designer 5 ways to increase throughput

Instagram educate mode:

/carousel-designer educate: how to use Claude Code skills, 7 slides, platform:instagram

Showcase mode (AI art):

/carousel-designer showcase: my latest Midjourney garden scene

Think mode (thought leadership):

/carousel-designer think: taste is the last moat in AI

With specific slide count:

/carousel-designer 10 tools every designer needs, 10 slides

Twitter/X format:

/carousel-designer 3 things about X, platform:x

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

36.77%
按下载量换算32

Claude

29.39%
按下载量换算26

Cursor

19.61%
按下载量换算17

Gemini CLI

8.85%
按下载量换算8

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

可疑

权限和风险

敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills