codeck-speech
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
Chinesecodeck speech
codeck 演讲稿生成
Role activation
角色激活
Read . If a speech role is recommended, use it. Otherwise, pick a coach based on domain and audience:
$DECK_DIR/diagnosis.mdTechnical → Feynman: simplify the complex, bridge with analogyBusiness → Jobs: build anticipation, one "one more thing"Academic → Hans Rosling: let data tell the story
读取。如果推荐使用演讲稿角色,则直接启用。否则,根据领域和受众选择对应风格的导师:
$DECK_DIR/diagnosis.md技术类 → Feynman:简化复杂内容,用类比搭建认知桥梁商业类 → Jobs:营造期待感,设置「one more thing」彩蛋学术类 → Hans Rosling:让数据讲故事
Setup
环境配置
bash
DECK_DIR="$HOME/.codeck/projects/$(basename "$(pwd)")"
mkdir -p "$DECK_DIR"
bash "$HOME/.claude/skills/codeck/scripts/status.sh" "$DECK_DIR"Read:
- HTML (latest ) — actual slide content
*-r*.html - outline.md — structure, arc, user intent
- design-notes.md — visual intent (speech rhythm should match visual rhythm)
If no HTML and no outline, suggest or first.
/codeck-design/codeck-outlineIf only outline exists, write based on outline — note that the script is based on structure, not final visuals.
Smart skip: skip questions if user's instruction already specifies style and duration.
bash
DECK_DIR="$HOME/.codeck/projects/$(basename "$(pwd)")"
mkdir -p "$DECK_DIR"
bash "$HOME/.claude/skills/codeck/scripts/status.sh" "$DECK_DIR"读取内容:
- HTML(最新的文件)—— 实际的幻灯片内容
*-r*.html - outline.md —— 结构、叙事弧、用户意图
- design-notes.md —— 视觉设计意图(演讲节奏应匹配视觉节奏)
如果没有HTML也没有大纲,建议先使用或命令。
/codeck-design/codeck-outline如果只有大纲,则基于大纲撰写——需备注脚本是基于结构而非最终视觉内容生成。
智能跳过: 如果用户指令已经指定了风格和时长,跳过后续询问步骤。
Questions
询问信息
Q1: Style
Q1: 风格
- A) TED — conversational, story-driven, breathing room
- B) Formal — structured, precise language
- C) Casual — natural, humor ok
- A) TED —— 口语化、故事驱动、预留停顿空间
- B) 正式 —— 结构化、用词精准
- C) 轻松随意 —— 自然流畅,可使用幽默
Q2: Duration
Q2: 时长
- A) 5 min — lightning, ~1000 words
- B) 15 min — standard, ~3000 words
- C) 30+ min — deep dive, ~6000 words
- A) 5分钟 —— 闪电演讲,约1000字
- B) 15分钟 —— 标准演讲,约3000字
- C) 30分钟以上 —— 深度分享,约6000字
Generate
生成内容
Before writing, build a fragment map. For each slide in the HTML, list: slide number, title, fragment count ( elements). This map determines the speech structure — slides with fragments get + sections, slides without get a single block. Do not skip this step.
data-f### [on enter]### [fragment N]Write a complete, readable-aloud transcript. Page by page.
撰写前先构建片段映射表。 针对HTML中的每一页幻灯片,列出:幻灯片编号、标题、片段数量(元素)。该映射表决定演讲结构——带片段的幻灯片会生成 + 章节,无片段的幻灯片则生成单个内容块。请勿跳过该步骤。
data-f### [进入时]### [片段N]逐页撰写完整、适合大声朗读的逐字稿。
Rules
规则
- One section per slide — matches the deck
- Transitions — natural bridges between pages
- Stage directions — write in the same language as the transcript. Chinese:
[停顿 2秒][放慢]; English:[看观众][pause 2s][slow down]; other languages: translate accordingly. The speaker must understand them without switching languages.[look at audience] - Word count — ~200 words/min Chinese, ~130 words/min English
- Source-based — no fabricated data
- Strong opening — story, data, or question
- Strong close — callback to opening or call to action
- 每页幻灯片对应一个章节 —— 与演示文稿结构匹配
- 过渡衔接 —— 页面之间设置自然的过渡语
- 舞台提示 —— 与演讲稿使用相同语言编写。中文:
[停顿 2秒][放慢语速];英文:[看向观众][pause 2s][slow down];其他语言对应翻译即可。演讲者无需切换语言即可理解提示内容[look at audience] - 字数控制 —— 中文约200字/分钟,英文约130字/分钟
- 基于原文 —— 不得编造数据
- 开场有力 —— 用故事、数据或问题开场
- 收尾有力 —— 呼应开场或给出行动号召
Style notes
风格说明
TED: use "you" / "we", mix short and long sentences, pause after key points, end by echoing the opening.
Formal: complete sentences, logical progression, summarize + outlook at the end.
Casual: colloquial, self-deprecating ok, casual transitions, end with a surprise.
TED风格: 使用「你」/「我们」称谓,长短句结合,关键点后停顿,结尾呼应开场。
正式风格: 句式完整,逻辑递进,结尾总结+展望。
轻松风格: 口语化,可使用自嘲表达,过渡随意,结尾设置惊喜。
Time budget
时间预算
| Slide | Title | Words | Estimate |
|---|---|---|---|
| 1 | ... | ... | ... |
- A) Help me trim the ones over time
- B) I'll manage it myself
| 幻灯片 | 标题 | 字数 | 预计时长 |
|---|---|---|---|
| 1 | ... | ... | ... |
- A) 帮我删减超时的内容
- B) 我会自行调整
Write back HTML data-notes (fragment-synced)
回写HTML data-notes(与片段同步)
The engine's concatenates the slide's with each visible fragment's as the presenter steps through. Use this to sync speech rhythm with fragment rhythm.
buildNotes()data-notesdata-notes引擎的方法会在演讲者翻页时,将幻灯片的与每个可见片段的拼接展示。用该功能实现演讲节奏与片段播放节奏的同步。
buildNotes()data-notesdata-notesHow it works
工作原理
- Read the slide's fragments — find all elements with to know the stepping order
data-f="N" - Split the speech into segments — one segment per step (slide entry + each fragment)
- Assign notes to each step:
- Slide's → what to say when the slide first appears (before any fragment)
data-notes - element's
data-f="1"→ what to say when fragment 1 revealsdata-notes - element's
data-f="2"→ what to say when fragment 2 revealsdata-notes - ...and so on
- Slide's
- 读取幻灯片片段 —— 找到所有带的元素,明确播放顺序
data-f="N" - 拆分演讲稿为片段 —— 每个步骤对应一个片段(幻灯片进入 + 每个片段展示)
- 为每个步骤分配备注:
- 幻灯片的→ 幻灯片首次出现时(展示任何片段前)要说的内容
data-notes - 元素的
data-f="1"→ 片段1展示时要说的内容data-notes - 元素的
data-f="2"→ 片段2展示时要说的内容data-notes - ...以此类推
- 幻灯片的
Example
示例
Speech for slide 3:
"Let's talk about the three ideas behind codeck. [pause 2s] First, it recruits people, not rules. [pause] Second, isomorphic mapping. [pause] Third, no schema ceiling."
Slide 3 has , , :
data-f="1"data-f="2"data-f="3"html
<section class="slide" data-notes="Let's talk about the three ideas behind codeck. [pause 2s]">
<h2 data-f="1" data-notes="First, it recruits people, not rules. [pause]">People, not rules</h2>
<p data-f="2" data-notes="Second, isomorphic mapping. [pause]">Isomorphic mapping</p>
<p data-f="3" data-notes="Third, no schema ceiling.">No schema ceiling</p>
</section>Presenter presses → three times. Notes build up progressively:
- Step 0: "Let's talk about the three ideas..."
- Step 1: + "First, it recruits people..."
- Step 2: + "Second, isomorphic mapping..."
- Step 3: + "Third, no schema ceiling."
第3页幻灯片的演讲稿:
"我们来聊聊codeck背后的三个核心理念。[停顿 2s] 第一,以人为本,而非规则约束。[停顿] 第二,同构映射。[停顿] 第三,无schema上限。"
第3页幻灯片有、、:
data-f="1"data-f="2"data-f="3"html
<section class="slide" data-notes="Let's talk about the three ideas behind codeck. [pause 2s]">
<h2 data-f="1" data-notes="First, it recruits people, not rules. [pause]">People, not rules</h2>
<p data-f="2" data-notes="Second, isomorphic mapping. [pause]">Isomorphic mapping</p>
<p data-f="3" data-notes="Third, no schema ceiling.">No schema ceiling</p>
</section>演讲者按3次翻页键。备注会逐步拼接展示:
- 步骤0: "我们来聊聊codeck背后的三个核心理念..."
- 步骤1: + "第一,以人为本,而非规则约束..."
- 步骤2: + "第二,同构映射..."
- 步骤3: + "第三,无schema上限。"
Rules
规则
- If a slide has no fragments, put the full speech in the slide's
data-notes - HTML-escape quotes inside attribute values
data-notes - Keep stage directions (,
[pause], etc.) in the notes[slow down] - Each segment should be self-contained — the presenter reads what's new at each step
- Match the number of speech segments to the number of steps (1 + fragment count)
- 如果幻灯片没有片段,将完整演讲稿放入幻灯片的中
data-notes - 属性值内的引号需要进行HTML转义
data-notes - 保留备注中的舞台提示(、
[pause]等)[slow down] - 每个片段内容独立——演讲者只需阅读每个步骤新增的内容
- 演讲片段数量与步骤数量(1 + 片段数)匹配
Output: $DECK_DIR/speech.md
输出路径:$DECK_DIR/speech.md
markdown
---
style: "{style}"
duration: "{target}"
totalEstimate: "{estimate}"
---markdown
---
style: "{style}"
duration: "{target}"
totalEstimate: "{estimate}"
---Speech: {topic}
演讲稿:{topic}
Slide 1: {title}
幻灯片1:{title}
<!-- estimate: {N}s | {M} words | fragments: 0 -->
{verbatim speech text}
[pause 2s]
<!-- 预计时长: {N}秒 | {M}字 | 片段数: 0 -->
{逐字演讲内容}
[停顿 2秒]
Slide 2: {title}
幻灯片2:{title}
<!-- estimate: {N}s | {M} words | fragments: 3 -->
<!-- 预计时长: {N}秒 | {M}字 | 片段数: 3 -->
[on enter]
[进入页面时]
{what to say when slide appears, before any fragment}
{幻灯片加载完成、任何片段展示前要说的内容}
[fragment 1]
[片段1]
{what to say when fragment 1 reveals}
{片段1展示时要说的内容}
[fragment 2]
[片段2]
{what to say when fragment 2 reveals}
{片段2展示时要说的内容}
[fragment 3]
[片段3]
{what to say when fragment 3 reveals}
undefined{片段3展示时要说的内容}
undefinedDone
完成
Point to the single strongest moment in the script — the line or pause that will land hardest:
codeck speech done.Strongest moment: {slide N — what happens and why it works. e.g., "Slide 4, the three-second pause after the question. That silence is where the audience decides you're worth listening to."}{one line — readiness assessment}Output:+ HTML data-notes updated Press P in the deck for speaker mode to see the script.$DECK_DIR/speech.mdAll done. Need to export?. Check progress anytime with/codeck-export./codeck
指出脚本中最有冲击力的一个瞬间——效果最好的台词或停顿:
codeck 演讲稿生成完成。最有冲击力的瞬间:{第N页幻灯片 —— 具体内容及效果原因,例如:「第4页幻灯片,提问后的3秒停顿。这段沉默会让观众判断你是否值得倾听。」}{一行内容——就绪状态评估}输出:+ HTML data-notes 已更新 在演示文稿中按P进入演讲者模式即可查看脚本。$DECK_DIR/speech.md全部完成。需要导出?使用命令。随时使用/codeck-export命令查看进度。/codeck