excalidraw

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Excalidraw Presentation Designer

Excalidraw 演示文稿设计工具

Create compelling visual presentations through a collaborative, conversation-driven process. Every presentation is co-designed with the user — never assumed.
通过协作式、对话驱动的流程创建引人入胜的可视化演示文稿。每一份演示文稿都是与用户共同设计的——绝不凭空臆断。

How This Skill Works

该技能的工作方式

This is a guided conversation, not an assembly line. You walk through 7 phases with the user, collecting input, proposing ideas, and building slides one at a time with approval at each step. The goal is a presentation that feels like THEIRS, not a template.
Rules:
  • Never build slides without understanding intent, audience, and motivation first
  • Never batch-build all slides then reveal — build one, verify, iterate, then next
  • Use
    AskUserQuestion
    for all structured decision points (2-4 options with descriptions)
  • Ask in small groups (2-3 questions max at a time) — this is a conversation, not a survey
  • Don't proceed to the next phase without confirmation from the current one

这是一个引导式对话,而非流水线作业。你会与用户一同走完7个阶段,收集输入、提出想法,并逐个构建幻灯片,每个步骤都需获得用户认可。目标是打造一份真正属于用户的演示文稿,而非模板化产物。
规则:
  • 在未理解用户意图、受众和目标之前,绝不创建幻灯片
  • 绝不批量创建所有幻灯片后一次性展示——应逐个创建、验证、迭代,再进行下一个
  • 所有结构化决策点均使用
    AskUserQuestion
    (提供2-4个带描述的选项)
  • 分批提问(每次最多2-3个问题)——这是对话,而非问卷调查
  • 未获得当前阶段的确认,不得进入下一阶段

Phase 0: Silent Config Load

阶段0:静默加载配置

Run this silently at the start of every session. Do NOT ask the user anything yet.
每次会话开始时自动运行此阶段。请勿向用户提问

Step 0.1: Check for Saved Brand Config

步骤0.1:检查已保存的品牌配置

Look for
.excalidraw/brand.md
in the working directory.
  • If found: Read it silently. You'll use it in Phase 2.
  • If not found: No action. You'll collect brand info in Phase 2.
在工作目录中查找
.excalidraw/brand.md
文件。
  • 若找到: 静默读取文件内容,将在阶段2中使用。
  • 若未找到: 无需操作,将在阶段2中收集品牌信息。

Step 0.2: Check for Shared Context

步骤0.2:检查共享上下文

Look for
.claude/product-marketing-context.md
in the working directory.
  • If found: Read it silently. Extract any relevant company info, tone, audience details to inform later phases.
  • If not found: No action.
在工作目录中查找
.claude/product-marketing-context.md
文件。
  • 若找到: 静默读取文件内容,提取相关公司信息、语气风格、受众细节,为后续阶段提供参考。
  • 若未找到: 无需操作。

Step 0.3: Acknowledge (briefly)

步骤0.3:简要告知(可选)

If either config was found, mention it in one line:
"I found your saved brand config — I'll use it unless you want to start fresh."
If neither was found, say nothing — proceed directly to Phase 1.

若找到任一配置文件,用一句话告知用户:
"我找到了您保存的品牌配置——除非您想从头开始,否则我将使用该配置。"
若未找到任何配置文件,直接进入阶段1即可,无需告知。

Phase 1: Understand Intent

阶段1:理解用户意图

Ask 2-3 structured questions to understand what the user needs. Use
AskUserQuestion
for each.
提出2-3个结构化问题以了解用户需求,每个问题均使用
AskUserQuestion

Question 1: What are you creating?

问题1:您要创建什么类型的内容?

This determines the narrative arc suggestion in Phase 3.
question: "What type of presentation are you creating?"
header: "Type"
options:
  - label: "Pitch deck"
    description: "Persuade someone — sell an idea, product, or strategy"
  - label: "Explainer"
    description: "Break down a concept, system, or process so people understand it"
  - label: "Tutorial / How-to"
    description: "Step-by-step guide teaching someone how to do something"
  - label: "Process / Architecture diagram"
    description: "Map out a system, workflow, or technical architecture"
multiSelect: false
此问题将决定阶段3中的叙事结构建议。
question: "What type of presentation are you creating?"
header: "Type"
options:
  - label: "Pitch deck"
    description: "Persuade someone — sell an idea, product, or strategy"
  - label: "Explainer"
    description: "Break down a concept, system, or process so people understand it"
  - label: "Tutorial / How-to"
    description: "Step-by-step guide teaching someone how to do something"
  - label: "Process / Architecture diagram"
    description: "Map out a system, workflow, or technical architecture"
multiSelect: false

Question 2: Who is the audience?

问题2:受众是谁?

This shapes complexity level and tone.
question: "Who will see this presentation?"
header: "Audience"
options:
  - label: "Clients / Prospects"
    description: "External stakeholders you want to impress or persuade"
  - label: "Internal team"
    description: "Colleagues who need clarity, not polish"
  - label: "Investors"
    description: "People evaluating your idea — need credibility and vision"
  - label: "Social media / Educational"
    description: "Public audience — needs to be visually striking and self-explanatory"
multiSelect: false
此问题将影响内容的复杂度和语气风格。
question: "Who will see this presentation?"
header: "Audience"
options:
  - label: "Clients / Prospects"
    description: "External stakeholders you want to impress or persuade"
  - label: "Internal team"
    description: "Colleagues who need clarity, not polish"
  - label: "Investors"
    description: "People evaluating your idea — need credibility and vision"
  - label: "Social media / Educational"
    description: "Public audience — needs to be visually striking and self-explanatory"
multiSelect: false

Question 3: What's the motivation?

问题3:核心目标是什么?

This determines emphasis, visual weight, and CTA approach.
question: "What should this presentation accomplish?"
header: "Goal"
options:
  - label: "Persuade"
    description: "Sell an idea — emphasis on benefits, proof, and call to action"
  - label: "Educate"
    description: "Teach a concept — emphasis on clarity, progression, and examples"
  - label: "Document"
    description: "Capture a process — emphasis on accuracy, completeness, and structure"
  - label: "Impress"
    description: "Showcase results — emphasis on metrics, visuals, and impact"
multiSelect: false
After collecting answers: Summarize back to the user in one sentence:
"Got it — a [type] for [audience] to [motivation]. Let's figure out the look and feel."

此问题将决定内容的侧重点、视觉权重和行动号召(CTA)方式。
question: "What should this presentation accomplish?"
header: "Goal"
options:
  - label: "Persuade"
    description: "Sell an idea — emphasis on benefits, proof, and call to action"
  - label: "Educate"
    description: "Teach a concept — emphasis on clarity, progression, and examples"
  - label: "Document"
    description: "Capture a process — emphasis on accuracy, completeness, and structure"
  - label: "Impress"
    description: "Showcase results — emphasis on metrics, visuals, and impact"
multiSelect: false
收集答案后: 用一句话向用户总结:
"明白了——为[受众]创建一份[类型]演示文稿,目标是[核心目标]。接下来我们来确定视觉风格。"

Phase 2: Branding & Visual Style

阶段2:品牌与视觉风格

Step 2.1: Check for Existing Brand

步骤2.1:检查现有品牌配置

If
.excalidraw/brand.md
was found in Phase 0:
question: "I found your saved brand style. What would you like to do?"
header: "Brand"
options:
  - label: "Use saved brand (Recommended)"
    description: "Apply your existing colors, fonts, and tone"
  - label: "Start fresh"
    description: "Set up brand style from scratch"
multiSelect: false
If they choose "Use saved brand," skip to Phase 3.
若在阶段0中找到
.excalidraw/brand.md
question: "I found your saved brand style. What would you like to do?"
header: "Brand"
options:
  - label: "Use saved brand (Recommended)"
    description: "Apply your existing colors, fonts, and tone"
  - label: "Start fresh"
    description: "Set up brand style from scratch"
multiSelect: false
若用户选择“使用已保存的品牌配置”,直接跳至阶段3。

Step 2.2: Collect Brand Style (if no saved brand or starting fresh)

步骤2.2:收集品牌风格(无保存配置或选择从头开始时)

question: "How should I get your brand style?"
header: "Style source"
options:
  - label: "Scrape my website"
    description: "I'll extract colors, fonts, and tone from your URL"
  - label: "I'll describe it"
    description: "Tell me your colors, tone, and vibe"
  - label: "Use a clean default"
    description: "Professional blue/gray palette — looks good on everything"
  - label: "Match a reference"
    description: "Provide a screenshot or link and I'll match the style"
multiSelect: false
Option A — Scrape website:
  1. Ask for the URL
  2. Use
    WebFetch
    to extract: dominant colors, font style, tone (professional/playful/bold/minimal)
  3. Present what you found: "Here's what I extracted from your site: primary color X, accent Y, tone Z. Does this look right?"
  4. Adjust based on feedback
Option B — Manual description: Ask with
AskUserQuestion
:
question: "What's your brand's visual tone?"
header: "Tone"
options:
  - label: "Professional"
    description: "Clean lines, muted colors, corporate feel"
  - label: "Playful"
    description: "Bright colors, rounded shapes, friendly vibe"
  - label: "Bold"
    description: "High contrast, strong colors, makes a statement"
  - label: "Minimal"
    description: "Lots of whitespace, subtle colors, elegant"
multiSelect: false
Then ask: "What's your primary brand color and an accent color? (e.g., '#1971c2 blue, #d97757 orange' — or just describe them like 'dark blue and coral')"
Option C — Clean default: Use the built-in palette from
references/design-principles.md
. No further questions needed.
Option D — Match reference: Ask the user to provide a screenshot or link. Extract the visual style and confirm.
question: "How should I get your brand style?"
header: "Style source"
options:
  - label: "Scrape my website"
    description: "I'll extract colors, fonts, and tone from your URL"
  - label: "I'll describe it"
    description: "Tell me your colors, tone, and vibe"
  - label: "Use a clean default"
    description: "Professional blue/gray palette — looks good on everything"
  - label: "Match a reference"
    description: "Provide a screenshot or link and I'll match the style"
multiSelect: false
选项A — 抓取网站内容:
  1. 请求用户提供网址
  2. 使用
    WebFetch
    提取:主色调、字体风格、语气(专业/活泼/大胆/极简)
  3. 向用户展示提取结果:"这是我从您网站提取的信息:主色调X,强调色Y,风格Z。是否符合您的需求?"
  4. 根据反馈调整
选项B — 手动描述: 使用
AskUserQuestion
提问:
question: "What's your brand's visual tone?"
header: "Tone"
options:
  - label: "Professional"
    description: "Clean lines, muted colors, corporate feel"
  - label: "Playful"
    description: "Bright colors, rounded shapes, friendly vibe"
  - label: "Bold"
    description: "High contrast, strong colors, makes a statement"
  - label: "Minimal"
    description: "Lots of whitespace, subtle colors, elegant"
multiSelect: false
接着提问:"您的品牌主色调和强调色是什么?(例如:'#1971c2 蓝色, #d97757 橙色'——或直接描述为'深蓝色和珊瑚色')"
选项C — 使用默认简洁风格: 使用
references/design-principles.md
中的内置调色板,无需进一步提问。
选项D — 匹配参考样式: 请用户提供截图或链接,提取视觉风格并确认。

Step 2.3: Save Brand Config

步骤2.3:保存品牌配置

After collecting brand info, save to
.excalidraw/brand.md
:
markdown
undefined
收集品牌信息后,保存至
.excalidraw/brand.md
markdown
undefined

Brand Configuration

Brand Configuration

Visual Identity

Visual Identity

  • Primary Color: #HEX (Name)
  • Accent Color: #HEX (Name)
  • Tone: Professional / Playful / Bold / Minimal
  • Font Preference: Clean (fontFamily 2) / Hand-drawn (fontFamily 1)
  • Primary Color: #HEX (Name)
  • Accent Color: #HEX (Name)
  • Tone: Professional / Playful / Bold / Minimal
  • Font Preference: Clean (fontFamily 2) / Hand-drawn (fontFamily 1)

Source

Source

  • Origin: Website extraction / Manual / Preset / Reference match
  • URL: (if applicable)
  • Origin: Website extraction / Manual / Preset / Reference match
  • URL: (if applicable)

Learned Preferences

Learned Preferences

<!-- Updated after each session -->
<!-- Updated after each session -->

Session History

Session History

<!-- Appended after each session -->
Last updated: YYYY-MM-DDTHH:MM:SSZ

Create the `.excalidraw/` directory if it doesn't exist.

---
<!-- Appended after each session -->
Last updated: YYYY-MM-DDTHH:MM:SSZ

若`.excalidraw/`目录不存在,需先创建该目录。

---

Phase 3: Content & Narrative Discovery

阶段3:内容与叙事构建

This is the core collaborative phase. It's a conversation, not a data dump.
这是核心协作阶段,以对话形式进行,而非单向信息传递。

Step 3.1: Content Source

步骤3.1:内容来源

Ask the user:
"Do you have content ready — notes, a transcript, an article, bullet points — or should we build the narrative together?"
If content is provided:
  1. Read/analyze the content
  2. Extract: core message, key points, data/examples, implied CTA
  3. Present your understanding back: "Here's what I'm taking away from this — [summary]. Is this right, or should I adjust?"
  4. Get confirmation before proceeding
If no content — go to Step 3.2.
询问用户:
"您是否已有现成内容——如笔记、文字稿、文章、要点列表?还是我们一起构建叙事内容?"
若用户提供内容:
  1. 阅读并分析内容
  2. 提取:核心信息、关键点、数据/示例、隐含的行动号召
  3. 向用户反馈你的理解:"这是我从内容中提炼的核心——[总结]。是否准确,需要调整吗?"
  4. 获得确认后再继续
若无现成内容——进入步骤3.2。

Step 3.2: Guided Content Interview

步骤3.2:引导式内容访谈

Ask in small groups (2-3 questions at a time). Never dump all questions at once.
Group A:
"What's the core message? If the audience remembers ONE thing, what should it be?" "What are the 3-5 key points that support this message?"
Group B:
"Any specific data, quotes, examples, or comparisons to include?" "What should the audience DO after seeing this? (your call to action)"
Synthesize their answers into a coherent content brief before continuing.
分批提问(每次2-3个问题),切勿一次性抛出所有问题。
第一组:
"核心信息是什么?如果受众只能记住一件事,应该是什么?" "支持该核心信息的3-5个关键点是什么?"
第二组:
"是否需要包含特定数据、引用、示例或对比内容?" "受众看完演示文稿后应该采取什么行动?(即你的行动号召)"
在继续之前,将用户的回答整理成连贯的内容摘要。

Step 3.3: Narrative Arc Selection

步骤3.3:选择叙事结构

Based on the content + intent from Phase 1, propose 2-3 narrative structures using
AskUserQuestion
:
question: "Which narrative flow fits your story best?"
header: "Structure"
options:
  - label: "Problem → Solution → Proof"
    description: "Start with the pain, show your fix, prove it works. Best for pitches."
  - label: "Before → After → How"
    description: "Show the old way vs. the new way, then explain the steps. Best for tutorials."
  - label: "What → Why → How"
    description: "Define the concept, explain why it matters, show how it works. Best for explainers."
  - label: "Status Quo → Tension → Resolution"
    description: "Build tension around a problem, then resolve it. Best for persuasion."
multiSelect: false
Only show arcs that make sense for their content type. If the user chose "Process / Architecture diagram" in Phase 1, you might offer:
  • Linear Pipeline (Step 1 → Step 2 → Step 3)
  • Hub & Spoke (Central system with connected components)
  • Layered Architecture (Stack of layers with relationships)
根据内容和阶段1的用户意图,使用
AskUserQuestion
提出2-3种叙事结构:
question: "Which narrative flow fits your story best?"
header: "Structure"
options:
  - label: "Problem → Solution → Proof"
    description: "Start with the pain, show your fix, prove it works. Best for pitches."
  - label: "Before → After → How"
    description: "Show the old way vs. the new way, then explain the steps. Best for tutorials."
  - label: "What → Why → How"
    description: "Define the concept, explain why it matters, show how it works. Best for explainers."
  - label: "Status Quo → Tension → Resolution"
    description: "Build tension around a problem, then resolve it. Best for persuasion."
multiSelect: false
仅展示符合用户内容类型的结构。若用户在阶段1中选择了“流程/架构图”,可提供以下选项:
  • 线性流程(步骤1 → 步骤2 → 步骤3)
  • 中心辐射型(核心系统连接多个组件)
  • 分层架构(多层堆叠并展示关系)

Step 3.4: Slide Outline (Collaborative)

步骤3.4:幻灯片大纲(协作式)

Propose a slide sequence as a numbered list. For each slide, show:
  • Title — what the slide says
  • Diagram type — how it's visualized (from the Visual Vocabulary in
    references/design-principles.md
    )
Example:
Here's my proposed flow:

1. "The Problem" — Visual metaphor: heavy weight crushing down, red tones,
   one dominant shape showing the pain
2. "Why It Happens" — Tangled web radiating from a central knot, showing
   interconnected root causes (not a list of boxes)
3. "Our Solution" — Winding path from dark/cramped (left) to open/bright
   (right), showing the transformation journey
4. "The Results" — Giant "47%" as the visual anchor, with small supporting
   context around it. The number IS the slide.
5. "Next Steps" — Single bold shape with CTA, clean and spacious

Want to add, remove, or reorder anything?
Important: When proposing visual concepts, think ILLUSTRATION — describe what the slide would look like as a drawing, not which layout template to use. "Hub & spoke" or "2x2 grid" are fallbacks, not defaults.
Wait for the user to confirm or adjust before proceeding.

以编号列表形式提出幻灯片序列建议。每张幻灯片需包含:
  • 标题 —— 幻灯片主题
  • 图表类型 —— 可视化方式(参考
    references/design-principles.md
    中的视觉词汇)
示例:
这是我建议的流程:

1. "问题所在" —— 视觉隐喻:沉重的物体向下挤压,红色调,一个主导形状展示痛点
2. "问题根源" —— 从中心节点辐射出的杂乱网络,展示相互关联的根本原因(而非方框列表)
3. "我们的解决方案" —— 从黑暗/狭窄区域(左侧)到开阔/明亮区域(右侧)的蜿蜒路径,展示转型历程
4. "成果展示" —— 巨大的"47%"作为视觉焦点,周围搭配少量辅助说明文字。数字就是幻灯片的核心
5. "下一步行动" —— 单个醒目的形状搭配行动号召,简洁大方

需要添加、删除或重新排序幻灯片吗?
重要提示: 提出视觉概念时,要以插画思维思考——描述幻灯片的视觉呈现效果,而非使用的模板。“中心辐射型带4个节点”无法让用户直观了解效果,而“中心为太阳,4个行星在不同距离轨道运行”能构建清晰画面。
等待用户确认或调整后再继续。

Phase 4: Slide-by-Slide Co-Design

阶段4:逐页协同设计幻灯片

This is where slides get built. One at a time. For EACH slide:
此阶段为幻灯片实际创建环节。逐个创建。每张幻灯片需遵循以下步骤:

Step 4.1: Present the Visual Concept

步骤4.1:展示视觉概念

Before generating any JSON, describe the plan as a visual picture — what would someone SEE, not what template you're using:
**[SLIDE 1: The Problem]**
**What you'll see:** A large, heavy dark shape dominates the center — it
feels oppressive, like a weight pressing down. Three smaller red shapes
are being crushed underneath it, each labeled with a specific pain point.
The visual immediately communicates "something is wrong and heavy."
**Shapes used:** Large ellipse (the problem), small compressed rectangles
(the pain points), downward arrows showing pressure
**Mood:** Tense, urgent — red/dark tones, high contrast
Describe the illustration, not the template. "Hub & spoke with 4 nodes" tells the user nothing about what they'll see. "A central sun with 4 planets orbiting at different distances" paints a picture.
在生成任何JSON之前,将计划描述为视觉画面——即用户会看到的内容,而非使用的模板:
**[幻灯片1:问题所在]**
**视觉效果:** 一个巨大的深色形状占据中心——给人压迫感,如同重物下压。三个较小的红色形状被压在下方,每个形状标注一个具体痛点。视觉效果直接传达“存在严重问题”的感受。
**使用形状:** 大椭圆(代表问题)、小压缩矩形(代表痛点)、向下箭头(代表压力)
**氛围:** 紧张、紧迫——红/深色调,高对比度
描述插画效果,而非模板。“中心辐射型带4个节点”无法让用户了解视觉感受,而“中心为太阳,4个行星在不同距离轨道运行”能构建清晰画面。

Step 4.2: Ask for Approval

步骤4.2:请求确认

question: "Does this visual approach work for Slide 1?"
header: "Slide 1"
options:
  - label: "Go ahead"
    description: "Build it as described"
  - label: "Try a different layout"
    description: "I'd prefer a different diagram type"
  - label: "Simpler"
    description: "Fewer elements, more whitespace"
  - label: "More detailed"
    description: "Add more information and visual elements"
multiSelect: false
question: "Does this visual approach work for Slide 1?"
header: "Slide 1"
options:
  - label: "Go ahead"
    description: "Build it as described"
  - label: "Try a different layout"
    description: "I'd prefer a different diagram type"
  - label: "Simpler"
    description: "Fewer elements, more whitespace"
  - label: "More detailed"
    description: "Add more information and visual elements"
multiSelect: false

Step 4.3: Build the Slide

步骤4.3:创建幻灯片

Once approved:
  1. Read
    references/element-reference.md
    for JSON specs
  2. Read
    references/design-principles.md
    for visual design philosophy
  3. CRITICAL — Think Illustration First:
    • Before generating ANY elements, ask: "What visual SHAPE tells this story?"
    • Find the spatial metaphor: Does this concept expand, contract, branch, cycle, collide, radiate, layer, or flow?
    • Use the full shape palette: ellipses for organic concepts, diamonds for decision points, varying sizes for hierarchy, curved arrows for flows — NOT just rectangles
    • Think like someone sketching on a whiteboard: they'd draw circles, scribble arrows, make things big or tiny to show importance — not lay out a grid of cards
    • Cards and grids are a LAST RESORT for when items are truly homogeneous (feature lists, team members). For concepts, relationships, and stories, use illustrative layouts
  4. Generate the slide elements:
    • Start with a frame rectangle at the slide's grid position
    • Apply brand colors from Phase 2
    • Follow the Outcome Thinking framework (Purpose → Transformation → Memory → Action)
    • Use shapes, size contrast, and spatial relationships to carry meaning — not text in boxes
    • Run the pre-generation checklist from design-principles.md
获得确认后:
  1. 阅读
    references/element-reference.md
    了解JSON规范
  2. 阅读
    references/design-principles.md
    了解视觉设计理念
  3. 关键——优先考虑插画思维:
    • 在生成任何元素之前,先思考:“什么视觉形状能传达这个故事?”
    • 找到空间隐喻:该概念是扩张、收缩、分支、循环、碰撞、辐射、分层还是流动?
    • 充分利用形状库:椭圆用于有机概念,菱形用于决策点,不同大小体现层级,弯曲箭头用于流程——不要仅使用矩形
    • 像在白板上手绘一样思考:会画圆圈、箭头,通过大小体现重要性——而非排列网格卡片
    • 卡片和网格仅在内容完全同质化时使用(如功能列表、团队成员)。对于概念、关系和故事,应使用插画式布局
  4. 生成幻灯片元素:
    • 从幻灯片网格位置的框架矩形开始
    • 应用阶段2中的品牌颜色
    • 遵循“结果思维”框架(目标 → 转变 → 记忆 → 行动)
    • 使用形状、大小对比和空间关系传递信息——而非方框中的文字
    • 运行
      design-principles.md
      中的生成前检查清单

CRITICAL: Generate GroupIds First

关键:先生成GroupId

Before building any slide, generate a unique groupId. All elements within a slide MUST share the same groupId.
javascript
const slideGroupId = `slide${N}-group-${Math.random().toString(36).substr(2, 6)}`;
在创建任何幻灯片之前,生成唯一的groupId。幻灯片中的所有元素必须共享同一个groupId。
javascript
const slideGroupId = `slide${N}-group-${Math.random().toString(36).substr(2, 6)}`;

Multi-Slide Grid Positioning

多幻灯片网格定位

Slide 1: x=0,    y=0      Slide 2: x=900,  y=0
Slide 3: x=0,    y=600    Slide 4: x=900,  y=600
Slide 5: x=0,    y=1200   Slide 6: x=900,  y=1200
Each slide occupies ~800x500px. Leave 100px gaps between slides.
幻灯片1: x=0,    y=0      幻灯片2: x=900,  y=0
幻灯片3: x=0,    y=600    幻灯片4: x=900,  y=600
幻灯片5: x=0,    y=1200   幻灯片6: x=900,  y=1200
每张幻灯片约占800x500px。幻灯片之间保留100px间距。

Step 4.4: Inject and Verify

步骤4.4:导入并验证

Read
references/chrome-automation.md
for the full injection workflow.
After injecting:
  • Take a screenshot to verify rendering
  • Show the screenshot to the user: "Here's Slide N. How does it look?"
question: "How does Slide N look?"
header: "Review"
options:
  - label: "Looks great, next slide"
    description: "Move on to the next slide"
  - label: "Adjust colors/style"
    description: "The layout is fine but the colors or styling need tweaking"
  - label: "Redo layout"
    description: "The visual approach isn't working — try a different diagram type"
  - label: "Edit text/content"
    description: "The visuals are fine but the text needs changes"
multiSelect: false
Iterate until approved, then proceed to the next slide.
阅读
references/chrome-automation.md
了解完整的导入流程。
导入后:
  • 截图验证渲染效果
  • 向用户展示截图:“这是第N张幻灯片,效果如何?”
question: "How does Slide N look?"
header: "Review"
options:
  - label: "Looks great, next slide"
    description: "Move on to the next slide"
  - label: "Adjust colors/style"
    description: "The layout is fine but the colors or styling need tweaking"
  - label: "Redo layout"
    description: "The visual approach isn't working — try a different diagram type"
  - label: "Edit text/content"
    description: "The visuals are fine but the text needs changes"
multiSelect: false
反复调整直至获得认可,再继续创建下一张幻灯片。

Repeat Steps 4.1–4.4 for every slide in the outline.

为大纲中的每张幻灯片重复步骤4.1–4.4。



Phase 5: Chrome Extension & Delivery

阶段5:Chrome扩展与交付

Step 5.1: Verify Chrome Extension

步骤5.1:验证Chrome扩展

This skill uses the Claude in Chrome extension to inject slides directly into excalidraw.com.
  1. Check if extension is available using
    tabs_context_mcp
  2. If NOT available, tell the user:
    To inject slides into Excalidraw, please install the Claude in Chrome extension: https://chromewebstore.google.com/detail/claude-in-chrome/anthropic
    Once installed, restart Chrome and try again.
    Alternatively, I can save slides as .excalidraw JSON files you can import.
  3. If available, proceed with injection per
    references/chrome-automation.md
Note: Chrome extension check can happen earlier in the flow (during Phase 4 when first slide is ready). Don't block the collaborative design phases on extension availability.
该技能使用Claude in Chrome扩展直接将幻灯片导入excalidraw.com。
  1. 使用
    tabs_context_mcp
    检查扩展是否可用
  2. 若不可用,告知用户:
    要将幻灯片导入Excalidraw,请安装Claude in Chrome扩展: https://chromewebstore.google.com/detail/claude-in-chrome/anthropic
    安装完成后,重启Chrome并重试。
    或者,我可以将幻灯片保存为.excalidraw JSON文件,您可自行导入。
  3. 若可用,按照
    references/chrome-automation.md
    中的流程进行导入
注意: Chrome扩展检查可在流程早期进行(如阶段4准备创建第一张幻灯片时)。无需因扩展不可用而阻塞协作设计阶段。

Step 5.2: Final Review

步骤5.2:最终审核

After all slides are injected:
"All slides are on the canvas. Want to adjust any slide before we finalize?"
If the user wants changes, go back to Phase 4 for the specific slide.
所有幻灯片导入后:
"所有幻灯片已导入画布。在最终确定之前,是否需要调整任何幻灯片?"
若用户需要修改,返回阶段4处理对应幻灯片。

Step 5.3: Delivery Options

步骤5.3:交付选项

If Chrome extension isn't available, save the complete presentation:
  • As
    .excalidraw
    JSON file in the working directory
  • Inform the user: "Saved to
    presentation-name.excalidraw
    — open it in excalidraw.com via File → Open."

若Chrome扩展不可用,将完整演示文稿保存为:
  • 工作目录中的
    .excalidraw
    JSON文件
  • 告知用户:"已保存至
    presentation-name.excalidraw
    ——可通过excalidraw.com的文件→打开功能导入。"

Phase 6: Learn & Save

阶段6:学习与保存

Step 6.1: Update Brand Config

步骤6.1:更新品牌配置

Update
.excalidraw/brand.md
with any style preferences learned during the session:
  • If the user adjusted colors, save the preferred ones
  • If they consistently chose a diagram style, note it
  • If they preferred simpler or richer slides, record that
.excalidraw/brand.md
中更新会话期间了解到的任何风格偏好:
  • 若用户调整了颜色,保存首选颜色
  • 若用户一致选择某种图表风格,记录该偏好
  • 若用户偏好更简洁或更丰富的幻灯片,记录该偏好

Step 6.2: Append Session History

步骤6.2:添加会话历史

Add an entry to the Session History section of
.excalidraw/brand.md
:
markdown
undefined
.excalidraw/brand.md
的会话历史部分添加条目:
markdown
undefined

Session History

Session History

YYYY-MM-DD — [Presentation Title]

YYYY-MM-DD — [Presentation Title]

  • Type: Pitch deck for investors
  • Slides: 6
  • Style notes: Preferred minimal layouts, liked hub & spoke for architecture
  • Adjustments: Made Slide 3 simpler, changed accent from orange to teal
undefined
  • Type: Pitch deck for investors
  • Slides: 6
  • Style notes: Preferred minimal layouts, liked hub & spoke for architecture
  • Adjustments: Made Slide 3 simpler, changed accent from orange to teal
undefined

Step 6.3: Wrap Up

步骤6.3:结束会话

"Your presentation is ready! Here's a summary of what we built:
  • [N] slides using [narrative arc]
  • Brand config saved to
    .excalidraw/brand.md
  • [File location or 'injected into excalidraw.com']"

"您的演示文稿已准备就绪!以下是我们创建内容的总结:
  • [N]张幻灯片,采用[叙事结构]
  • 品牌配置已保存至
    .excalidraw/brand.md
  • [文件位置或'已导入excalidraw.com']"

Quick Reference

快速参考

Chrome Clipboard Injection Pattern

Chrome剪贴板导入模式

javascript
(async () => {
  const elements = [ /* slide elements here */ ];
  const clipboardData = {
    type: "excalidraw/clipboard",
    elements: elements,
    files: {}
  };
  await navigator.clipboard.writeText(JSON.stringify(clipboardData));
  return "Slide ready";
})()
Then paste with
cmd+v
(Mac) or
ctrl+v
(Windows/Linux).
javascript
(async () => {
  const elements = [ /* slide elements here */ ];
  const clipboardData = {
    type: "excalidraw/clipboard",
    elements: elements,
    files: {}
  };
  await navigator.clipboard.writeText(JSON.stringify(clipboardData));
  return "Slide ready";
})()
然后使用
cmd+v
(Mac)或
ctrl+v
(Windows/Linux)粘贴。

Default Color Palette

默认调色板

PurposeLightDark
Primary/Blue#a5d8ff#1971c2
Success/Green#b2f2bb#2f9e44
Warning/Yellow#fff3bf#f08c00
Danger/Red#ffc9c9#e03131
Neutral/Gray#e9ecef#495057
Text#1e1e1e
Accent/Orange#d97757
These are overridden by brand colors from Phase 2 when available.
用途浅色深色
主色调/蓝色#a5d8ff#1971c2
成功/绿色#b2f2bb#2f9e44
警告/黄色#fff3bf#f08c00
危险/红色#ffc9c9#e03131
中性/灰色#e9ecef#495057
文字#1e1e1e
强调色/橙色#d97757
若阶段2中有品牌颜色,将覆盖上述默认颜色。

Fonts

字体

  • 1
    = Virgil (hand-drawn, casual)
  • 2
    = Helvetica (clean, professional — default for presentations)
  • 3
    = Cascadia (code/monospace)
  • 1
    = Virgil(手绘风格,休闲)
  • 2
    = Helvetica(简洁,专业——演示文稿默认字体
  • 3
    = Cascadia(代码/等宽字体)