web-video-presentation
ConardLi/garden-skills
Convierte artículos o guiones en presentaciones web en formato 16:9 que se controlan con clics y parecen vídeos, con síntesis de voz mediante IA opcional.
...Expandir todoPresentación en vídeo web
Convertir un artículo o un guion de locución, paso a paso, en una «página web camuflada como vídeo» que permita la grabación de pantalla, con la opción de añadir audio de locución. Resultado final = proyecto en Vite + React + TS + audio dividido por secciones.
Casos de uso
- «Tengo un guion de locución o un artículo, ayúdame a convertirlo en un vídeo» — Contenido impulsado por la locución
- Quiero crear una «presentación de PowerPoint dinámica»
- Grabación de pantalla en formato horizontal 16:9, con letras grandes, espacios en blanco y efectos de animación en cada pantalla
- Formación / Demostración de productos / Keynote: se busca un estilo cinematográfico
- Contenido para Bilibili / YouTube / Douyin
Esta Skill se centra en la metodología y el proceso de colaboración. Las plantillas de andamiaje proporcionan tokens y primitivas, pero cada decisión estética (paleta de colores, tipografía, estilo de los efectos de animación) debe rediseñarse en función de tu tema — no las copies tal cual.
Resumen del flujo de trabajo
Phase 1 内容编写
1.1 识别用户输入
1.2 一次产出 script.md + outline.md
(口播稿 + 开发计划)
▼
[Checkpoint Plan] ← 必须停。一次对齐 5 件事:
稿子 / outline / 主题 / 素材 / 开发模式
▼
Phase 2 网页开发
2.1 脚手架(按选定主题)
2.2 第 1 章 = 主线程 + 完整版本(强制 anchor)
▼
[硬节点] 用户验收第 1 章 ← 不可跳过
▼
2.3 第 2~N 章(按选定模式:A 逐章 / B 顺序 / C 并行)
▼
[Checkpoint Audio] ← 必须停。是否合成音频
▼
Phase 3 音频合成(可选)
▼
Phase 4 录屏 + 后期
Convenciones del directorio de trabajo (el agente crea y edita en el directorio actual del usuario):
my-video/
├── article.md # 用户给原文时必有 —— 不删!开发阶段画面信息源
├── script.md # 必有:保持原文语言的平台化口播稿(决定节拍)
├── outline.md # 必有:开发计划(章节切分 + 每步内容 + 信息池)
└── presentation/ # 脚手架产出的 Vite + React + TS 项目
├── src/chapters/-/
│ ├── .tsx # 视觉实现
│ ├── .css
│ └── narrations.ts # ★ step 数 + 口播文本的唯一真相源
├── scripts/
│ ├── extract-narrations.ts # 扫所有 narrations.ts → audio-segments.json
│ ├── synthesize-audio.sh # provider-agnostic runner(循环 segments)
│ └── tts-providers/ # 每 provider 一个 .sh(内置 2 个)
│ ├── README.md # 三函数契约 + 5 段现成代码片段(11labs / edge-tts / say / azure / gcloud)
│ ├── minimax.sh # 默认 provider,用 mmx-cli
│ └── openai.sh # 内置 OpenAI TTS(curl + OPENAI_API_KEY)
├── audio-segments.json # extract 产出(合成前 review)
└── public/audio//.mp3 # 可选:合成的音频
Clave:
narrations.tses la única fuente de verdad en cuanto al número de pasos y la síntesis de audio. Capítulo.tsxelif (step === N)debe ser igual anarrations.length. Esto garantiza que en cinco lugares (script / outline / código de capítulos / chapters.ts / archivos de audio) nunca haya discrepancias.
Protocolo de autocomprobación estricto (aplicable a toda la Skill)
Los tres resultados siguientes deben pasar, una vez completados, por el proceso de autocomprobación → corrección → nuevo informe / avance:
| Resultado | Origen de la lista de autocomprobación |
|---|---|
script.md |
SCRIPT-STYLE.md Autocomprobación en tres niveles (forma / estilo / lectura en voz alta) |
outline.md |
OUTLINE-FORMAT.md Autocomprobación |
| Finalización de la implementación de un capítulo | CHAPTER-CRAFT.md Autocomprobación de finalización |
Métodos de ejecución (por orden de capacidad, dando prioridad a los métodos más aislados):
- Agent Teams (óptimo) : abrir un agente revisor independiente, proporcionarle la «ruta del archivo de salida + la lista correspondiente + el contexto clave», y dejar que lo compruebe punto por punto e informe rigurosamente de sus conclusiones (qué elementos se han superado y cuáles han fallado, junto con las pruebas y las recomendaciones de corrección).
- subAgent (segunda mejor opción): si no se dispone de la capacidad de Teams, pero se puede iniciar un subagent, utilícelo siguiendo el mismo proceso.
- Autocomprobación (opción de último recurso) : si ningún agente dispone de las capacidades mencionadas, se debe realizar una comprobación rigurosa punto por punto por cuenta propia; no se permite dar el visto bueno tras un simple vistazo.
Regla de oro: una vez obtenidas las conclusiones, modifica primero el producto según los elementos «fallidos» y, a continuación, informa al usuario de «conclusión de la autoverificación
- conclusiones de la autoverificación + qué se ha corregido». Informar directamente de las conclusiones originales sin realizar las correcciones = incumplimiento.
Guía de lectura de documentos en cada fase
En cada fase hay que consultar los documentos correspondientes. En las sesiones largas, los agentes tienden a olvidar los principios, especialmente el «capítulo de implementación» de la Fase 2.4, que se repite N veces; hay que volver a consultar las restricciones fundamentales cada vez.
| Fase | Lectura obligatoria (consultar siempre) | Leer de una sola vez / consultar según sea necesario |
|---|---|---|
| Redacción de contenidos de las fases 1.1-1.2 | references/SCRIPT-STYLE.md + references/OUTLINE-FORMAT.md + article.md(Texto original del usuario, si lo hay) |
—— |
| Plan de puntos de control: elección del tema | —— | themes/*/theme.json(Leer todo de forma dinámica, elaborar una lista + bestFor recomendaciones + descriptionZh);references/THEMES.md(cuando el usuario quiera conocer el sistema de temas) |
| Fase 2.1: Estructura | —— | SKILL.md: revisar esta sección una vez |
| Fase 2.4: Implementación de un solo capítulo (×N veces, llamado desde 2.2 / 2.3) | references/CHAPTER-CRAFT.md Punto de entrada único: Parte 0. Diez principios / Parte 1. 5 preguntas para empezar / Parte 2. Árbol de decisión: relaciones → acciones / Parte 3. Caja de herramientas visuales / Parte 4. Referencias de duración / Parte 5. Antipatrones contra el «sabor a IA» / Parte 6: Reglas estrictas de código (incluidas las restricciones obligatorias de narrations.ts) / Parte 7: Autocomprobación al finalizar / Parte 8: Referencia rápida de comentarios + el themes/ + Párrafos de outline.md del capítulo actual + Párrafos correspondientes a este capítulo en article.md + Lista de recursos |
references/EXAMPLES/(esquema de estructura, no es una plantilla para copiar);references/THEMES.md Contrato completo de tokens |
| Fase 3: síntesis de audio | references/AUDIO.md(incluye el proceso narrations.ts → segments.json → cualquier proveedor, con minimax + openai integrados) |
templates/scripts/tts-providers/README.md(al cambiar de proveedor o al utilizar el TTS integrado) |
| Fase 4: Grabación de pantalla + posproducción | references/RECORDING.md(incluye ?auto=1 grabación automática de pantalla) |
—— |
| Selección / creación / división de temas | —— | references/THEMES.md |
Al escribir los capítulos, consulta únicamente este documento:
CHAPTER-CRAFT.md. Los diez principios, la autoestimulación al comenzar, el árbol de decisión, los patrones para evitar el «sabor a IA» y la autoevaluación al finalizar se incluyen todos en este único documento de referencia.EXAMPLES/No es de lectura obligatoria : primero diseña libremente según el contenido y solo consulta este documento si te quedas atascado (utiliza los enlaces de anclaje para consultar la «estructura», no lo copies tal cual).
Fase 1 —— Redacción del contenido (elaboración única)
1.1 Identificar la entrada del usuario
| Lo que aporta el usuario | Lo que hay que hacer |
|---|---|
| Artículo original (texto escrito / cuenta de WeChat / artículo académico / blog) | Producción única script.md + outline.md(1.2), tras pasar por el Checkpoint Plan |
| Guión de locución directo / Guión de vídeo | Conversión en script.md, en una sola fase de producción outline.md(1.2, versión simplificada), pasar por el plan de control |
| No hay nada, solo se dice «hazme un vídeo sobre el tema X» | Pregunta de respuesta: «Primero, dame un fragmento de material o un esquema». Skill no crea el contenido por el usuario |
1.2 Resultado en una sola sesión: script.md + outline.md
Ambos resultados se completan en una sola sesión de reflexión:
- Generación de «
script.md»: siguiendoreferences/SCRIPT-STYLE.mdlas reglas, se convierte el artículo en un guion de locución adaptado a la plataforma, conservando el idioma original. Se conserva el archivo «article.md» sin borrarlo, ya que es la fuente de detalles para el «outline» a la hora de crear el banco de información y las secuencias de imágenes correspondientes a cada sección (principio de las dos fuentes). - Generación de «
outline.md»: siguiendoreferences/OUTLINE-FORMAT.mdlas reglas: dividir en capítulos + dividir en pasos + extraer el conjunto de información del primer párrafo de cada capítulo.
Límites de «outline» (fundamental):
| El «outline» debe | Lo que no debe incluir el «outline»: |
|---|---|
| División en capítulos / Número de pasos por capítulo / Tiempo estimado | Tipos de animación concretos (desvanecimiento, barrido, efecto resorte) |
| Contenido de la pantalla en cada paso (elemento principal / datos / eslogan / elementos de la lista) | Métodos de implementación en CSS (filtro / SVG / clip-path) |
| Banco de datos por sección: cifras / citas / casos prácticos / etiquetas extraídos del artículo | Valor de duración (no escribir |
| Prefijos para las relaciones entre pasos (sugerencias opcionales como «contraste», «lista progresiva» o «frase destacada», entre otras) | Ritmos microscópicos, como micromovimientos continuos o cantidades escalonadas |
Motivos para no incluir animaciones en el esquema: las animaciones fijas = el «agente de capítulo» se reduce a una mera máquina de traducción; el espacio en blanco permite que el «agente de capítulo» diseñe libremente, según
CHAPTER-CRAFT.mdel «árbol de decisión impulsado por el contenido», lo que le da una auténtica sensación de vídeo. Para más detalles, véaseCHAPTER-CRAFT.mdla Parte 0, principio 7.
Tras la ejecución, debe realizarse primero una autoverificación antes de pasar al Plan de puntos de control: según el «Protocolo de autoverificación obligatorio» mencionado anteriormente, se deben
ejecutar por separado script.md / outline.md (priorizando: equipos de agentes → subagentes → autocomprobación),
y solo tras completar las correcciones según las conclusiones se podrá acceder al Plan de puntos de control.
Plan de puntos de control — Alineación simultánea de 5 elementos (nodo rígido)
script.md + outline.md Una vez redactado, hay que detenerse. El usuario debe confirmar simultáneamente
estas 5 cosas en este nodo.
El trabajo preparatorio que debe realizar el agente en este momento
- Leer todos los
themes/*/theme.jsonCogernameZh/descriptionZh/bestFor/mood— No codificar la lista de forma rígida - Según
script.mdel tipo de contenido / las palabras clave / el tono, selecciona de forma proactiva del tema entre 2 y 3 conjuntos de recomendaciones que mejor se ajusten (campos debestFor) - Echa un vistazo
outline.mdla sección «Lista de materiales» al final
Resumir la plantilla (esquema; el agente la completará según el caso)
内容计划写完,产出文件:
📄 article.md {若用户给原文则保留}
📄 script.md {X} 字 / ~{T} 分钟
📄 outline.md {N} 章 / {M} 步 + 每章信息池 + 末尾素材清单
章节速览:
1. <章节标题> 步 ~s
2. ...
接下来一次对齐 5 件事:
1. 稿子 (script.md) 要不要改?
可以直接编辑文件,或口头告诉我修改方向。
2. 开发计划 (outline.md) 要不要改?重点看:
- 章节切分 / step 数 / 估时是否合理(合理判断:每章 30~60s)
- 每步屏幕内容是否清晰
- 每章首段「信息池」是否有足够的 article 细节供画面挂
- 末尾素材清单是否完整
3. 选哪个主题?我的推荐:
★ <推荐 1:nameZh (id)> — 因为 ;
★ <推荐 2 / 推荐 3>
其它可选:<剩余主题,nameZh + 一句话>
也可以让我帮你做新主题(详见 references/THEMES.md)。
4. 真素材怎么准备?粗看本视频要的图:<列粗略清单>
a) 我从 <现有素材路径> 帮你挑 b) 你自己提供 c) 全部 placeholder
5. 开发模式选哪个?
**第 1 章无论哪种模式都必须主线程做完 + 用户验收**(强制 anchor)。
差异在第 2 章及之后:
A) 默认 · 逐章确认(推荐)
每章做完都暂停验收 → 风险可控 / 节奏最稳
B) 第 1 章后顺序开发(不并行)
第 2~N 章主线程顺序做完后统一验收 → 速度中 / 适合 agent 不支持并行
C) 第 1 章后并行开发(subagent)
第 2~N 章用 subagent 并行 → 最快 / 用户控并行数(一次几章)
⚠️ 风格各章会有差异(这是预期,主题禁区兜底)
Tras recibir los comentarios:
- Si hay que modificar el borrador o el esquema: edita directamente el archivo y, una vez terminado, avisa (o describe verbalmente al agente para que lo modifique)
- El tema debe estar claro para pasar a la Fase 2. Si el usuario dice «Elige tú el tema por mí» → elige la primera de tus recomendaciones, comunícale al usuario qué has elegido y por qué, y dale la oportunidad de cambiar de opinión
- Una vez elegido el modelo → pasar a la Fase 2
Fase 2: desarrollo web
2.1 Estructura básica
bash /scripts/scaffold.sh \
./presentation \
--theme=<用户选的主题 id>
bash /scripts/scaffold.sh --list-themes
Tema personalizado → Primero sigue
references/THEMES.mdel proceso de «Crear un nuevo tema»themes/y, a continuación,/ --theme=。
el generador de código incluirá una 01-example demostración. Antes de escribir el contenido real del primer capítulo, elimina:
rm -rf presentation/src/chapters/01-example
y cambia presentation/src/registry/chapters.ts el EXAMPLE_CHAPTER
.
2.2 Capítulo 1: hilo principal + aceptación obligatoria
Esencia: el capítulo 1 = una versión completa desde el primer momento (con ritmo, elementos visuales y material real). No existe el concepto de «versión básica»: el primer capítulo debe ser una maqueta que el usuario pueda validar directamente.
¿Por qué el capítulo 1 debe ejecutarse en el hilo principal?
- Es
CHAPTER-CRAFT.mdla primera aplicación práctica de esta guía bajo el tema y la temática actuales - Si la guía tiene lagunas o no hay suficientes tokens de colores o tipografías para el tema, el Capítulo 1 lo pondrá de manifiesto — En ese momento, con la retroalimentación de los usuarios, se podrá modificar la guía o ajustar el tema; cuanto antes se corrija, menor será el coste
- Los capítulos posteriores (ya sean secuenciales o paralelos) deben basarse en el patrón de código del primer capítulo, por lo que este equivale a el «punto de referencia estilístico» del proyecto en cuestión (no se exige coherencia entre capítulos, pero cada capítulo debe ser convincente por sí mismo).
Una vez terminado el capítulo 1, hay que detenerse y esperar a la aprobación de los usuarios:
第 1 章 做完了,dev server 在 localhost:5173 运行。
验收重点:
□ 视觉气质对不对?符合 的预期吗?
□ 节奏对不对?某些步太快 / 太慢 / 信息太薄?
□ 内容驱动动画是否到位?还是有几步是无脑入场动画?
□ 双源原则:屏幕画面有没有"口播没念但 article 能挂"的细节?
□ 反 AI 味检查:紫粉渐变 / 圆角彩色边框 / 假插画 / emoji 是否有?
问题告诉我,我针对性改。OK 了告诉我"继续",我按选定模式做第 2 章及之后。
2.3 Capítulos 2 a N —— Siguiendo el patrón seleccionado
Regla común para todos los patrones: cada capítulo se desarrolla de forma independiente CHAPTER-CRAFT.md
. No se exige que el estilo sea totalmente uniforme entre capítulos
: los colores temáticos y los tokens de tipografía garantizan la
uniformidad visual, mientras que se espera que cada capítulo tenga libertad para desarrollar sus propias animaciones, ritmo y presentación visual.
Modelo A · Predeterminado · Confirmación capítulo a capítulo
Finalización del capítulo 2 → Pausa para la aceptación → OK → Capítulo 3 → Pausa → ... → Capítulo N. Cada capítulo se somete a aceptación de forma independiente; los problemas se corrigen en cualquier momento, lo que minimiza los riesgos y garantiza un ritmo más estable. Cuando el usuario no especifique un modo, se seguirá este por defecto.
Modo B · Desarrollo secuencial tras el capítulo 1
Capítulo 2 → Capítulo 3 → ... → Capítulo N. El hilo principal se completa de forma secuencial y, al final, se realiza una aceptación unificada. Velocidad media, adecuada para entornos en los que el agente no admite tareas en paralelo.
Modo C · Desarrollo paralelo tras el capítulo 1 (subagente)
Se utilizan subagentes para completar en paralelo los capítulos 2 a N; el usuario controla el número máximo de tareas en paralelo («4 capítulos a la vez» / «2 capítulos a la vez»). Es el más rápido, pero el estilo variará de un capítulo a otro —lo cual es de esperar, ya que:
- cada subagente no puede ver los resultados de los demás subagentes, por lo que no es posible una alineación mecánica
- El código de los capítulos está físicamente separado (una carpeta por capítulo / prefijo CSS propio), por lo que no se interferirán entre sí
- Los tokens del tema garantizan la coherencia visual (colores / tipografías / números destacados / tarjetas / líneas divisorias / personalidad / elementos decorativos), por lo que el estilo no se desvía
- La falta de uniformidad en el estilo aporta la sensación de naturalidad propia de un vídeo realizado a mano (múltiples voces / múltiples perspectivas)
Las indicaciones de los subagentes en paralelo deben incluir:
- Párrafos del esquema del capítulo actual (incluido el conjunto de datos)
references/CHAPTER-CRAFT.md(lectura obligatoria: requisitos de presentación visual + revelación gradual + principio de doble fuente + evitar el «sabor a IA» + líneas rojas del código + autocomprobación al finalizar; todo en este único documento)- el tema actual
theme.json,descriptionZh/mood/bestFor(basta con seguir el estilo de referencia; la animación, la duración, el tamaño de letra y los emojis los decide libremente el agente del capítulo) - Capítulo 1: el código sirve como referencia de «estilo de código» (no como «objeto de plagio visual»)
- Regla estricta: prefijo CSS independiente para cada capítulo (
.cd-/.mg-/.pm-/ ...); No modificarchapters.ts; una vez terminado, se ejecutanpx tsc --noEmit
Importante: independientemente del modo elegido, el usuario puede cambiar de modo en cualquier momento. Capítulo 2: una vez aprobado, el usuario puede elegir entre «el resto en paralelo» o «el resto capítulo por capítulo».
2.4 Implementación de un solo capítulo (se debe completar cada capítulo)
Para obtener instrucciones detalladas, consulta references/CHAPTER-CRAFT.md ——
Punto de entrada único obligatorio, que abarca: requisitos de presentación visual / revelación gradual / selección de contenidos / principio de doble fuente
/ estética básica de la demostración en vídeo / evitar el estilo «anti-IA» / límites del código / autocomprobación al finalizar.
Puntos clave (detallados en CHAPTER-CRAFT.md):
- Cada capítulo debe incluir una demostración visual con CSS / SVG / Canvas / JS; se prohíben los capítulos de solo texto
- Revelación gradual: las listas deben seguir el principio de 1 elemento = 1 paso; no se permite mostrar todo de una vez
- Principio de las dos fuentes: el ritmo debe seguir el del guion de voz (el orden no puede alterarse); los detalles deben extraerse del artículo original (base de datos + párrafos del artículo de este capítulo)
- La autoevaluación de finalización debe revisarse punto por punto; si no cumple los requisitos, hay que volver a modificarla — se aplicará el «Protocolo de autoevaluación obligatorio» mencionado anteriormente (prioridad: equipos de agentes → subagentes → autoevaluación); una vez corregido, informar al usuario de la entrega de este capítulo
2.5 Tras una modificación importante, actualizar STORAGE_KEY
Modificaciones chapters.ts(si se añaden, eliminan o reordenan capítulos, o si cambia narrations.ts
) se debe actualizar
presentation/src/hooks/useStepper.ts el
STORAGE_KEY(por ejemplo v4 → v5), para evitar que el cursor permanente se sitúe en un paso que ya no existe.
Checkpoint Audio —— ¿Se sintetiza el audio? (nodo fijo)
Una vez finalizada la Fase 2, hay que detenerse y preguntar al usuario:
网页做完,{N} 章 {M} 步,dev server 在 localhost:5173 跑着。
要不要合成音频做"自动播放录屏"?
✓ 合成 → 扫所有章节的 narrations.ts 出 audio-segments.json,
调 TTS provider 合成每步一个 mp3 到 public/audio/。
合成完后用 ?auto=1 模式可以一镜到底录屏(音视频天然同步)。
内置两个 provider:
• minimax (mmx-cli) —— 默认,中文音色稳
• openai (OPENAI_API_KEY) —— curl-based,多数已有 key
其它后端 (ElevenLabs / edge-tts 免费 / macOS say 离线 /
Azure / Google) 见 scripts/tts-providers/README.md 的现成片段。
✗ 不合成 → 跳过 Phase 3,直接 Phase 4 用手动录屏 + 后期配音。
¿Desea sintetizar? → Fase 3. ¿No desea sintetizar? → Directamente a la Fase 4.
Fase 3 —— Síntesis de audio (opcional)
Para ver el proceso detallado, véase references/AUDIO.md. Versión resumida:
cd presentation
npm run extract-narrations # 扫所有 narrations.ts → audio-segments.json
# 让用户扫一眼 audio-segments.json 确认文本对
npm run synthesize-audio # 默认 minimax provider,增量
# 或用内置 openai (要 OPENAI_API_KEY):
PRESENTATION_TTS=openai npm run synthesize-audio
# 或自定义:写一个 scripts/tts-providers/.sh,见该目录的 README.md
Una vez finalizada la síntesis, informar al usuario: ubicación de la salida / número total de segmentos / qué segmentos tienen una duración anómala (demasiado largo = hay que dividir ese paso; demasiado corto = el texto es demasiado escaso) — dar una última oportunidad para ajustar el ritmo. A continuación, pasar a la Fase 4.
Fase 4 —— Grabación de pantalla + posproducción
Para más detalles, véase references/RECORDING.md. Hay dos opciones:
| Escenario | Ruta recomendada |
|---|---|
| Fase 3: audio ya mezclado | Modo «Auto» de una sola toma: abrir el navegador localhost:5173/?auto=1 → pulsar la barra espaciadora → reproducción automática completa → detener la grabación → recortar el principio y el final y ya está, sin necesidad de edición posterior de la pista de audio |
| Fase 3: Saltar | Modo manual predeterminado: avanzar haciendo clic manualmente → añadir voz en off con cualquier herramienta de edición posterior |
El agente indica de forma proactiva al usuario la ruta de grabación más adecuada tras la Fase 3 / Checkpoint Audio.
Diez principios (lista concisa)
Para ver la versión completa, consulta references/CHAPTER-CRAFT.md
Parte 0 —— Consúltala al redactar los capítulos; lo que sigue es solo un índice.
| # | Principio | Frase |
|---|---|---|
| 1 | Escenario fijo 16:9 | Contenido: 1920×1080 + escala de transformación, sin diseño adaptativo |
| 2 | Contador global de pasos | Los capítulos son funciones puras de «step», sin temporizador |
| 3 | Cada paso ocupa toda la pantalla | if (step === N) return |
| 4 | El ritmo de la voz en off = «step» | Un compás = un «step» = una idea central |
| 5 | Controles ocultos en las esquinas | Barra de progreso / Páginador: opacidad predeterminada 0 |
| 6 | El escenario no tiene «chrome» | Sin encabezado / pie de página / numeración de páginas / barra de marca |
| 7 | Animaciones impulsadas por el contenido | Busca primero un movimiento intrínseco; si no lo encuentras, recurre a la animación de entrada como último recurso; utiliza con precaución los movimientos continuos y sutiles |
| 8 | Revelación gradual de varios elementos | 1 elemento = 1 paso; se prohíbe sincronizar el escalonamiento de N elementos |
| 9 | Mismo tema en toda la presentación | No cambiar el color de fondo entre capítulos; el color y la tipografía se rigen por tokens, el resto de aspectos de los capítulos son libres |
| 10 | Principio de doble fuente | El guion marca el ritmo; el artículo determina la densidad visual (que se plasma en el «depósito de información») |
Resumen de comentarios habituales de los usuarios
Véase la tabla simplificada references/CHAPTER-CRAFT.md
Parte 8: «Guía rápida de comentarios habituales». Clave
: primero identificar en qué nivel se encuentra el problema (ritmo / aspecto visual / contenido
/ código) y, a continuación, modificar la parte más pequeña posible, sin rehacer todo el capítulo
.
Recursos relacionados
Etiquétalos según «cuándo leerlos» para evitar leerlo todo de una vez:
| Archivo | Cuándo leerlo | Contenido |
|---|---|---|
references/SCRIPT-STYLE.md |
Fase 1.2: Lectura obligatoria | Artículo → Normas para guiones de locución, variantes de las plataformas |
references/OUTLINE-FORMAT.md |
Lectura obligatoria de la Fase 1.2 | Especificaciones de los campos de outline.md, convenciones de nomenclatura, división en capítulos, base de datos |
references/CHAPTER-CRAFT.md |
Fase 2.4: un único punto de acceso de lectura obligatoria para cada capítulo | Parte 0: Diez principios / Parte 1: Cinco preguntas para empezar / Parte 2: Árbol de decisión «relaciones → acciones» / Parte 3: Caja de herramientas visuales / Parte 4: Duración / Parte 5: Antipatrones contra el «sabor a IA» / Parte 6: Reglas estrictas de código / Parte 7: Autocomprobación al finalizar / Parte 8: Guía rápida de comentarios |
references/EXAMPLES/ |
Opcional —— Ver estructura | Esquema de la estructura de los capítulos (gancho / lista-revelación / caso-revisión técnica); no se trata de copiar una plantilla |
references/THEMES.md |
A la hora de seleccionar, crear o dividir los temas | Contrato de tokens completo + lista de temas integrada + proceso de creación |
references/AUDIO.md |
Leer solo en la Fase 3 | Proceso de síntesis de audio independiente del proveedor, uso integrado de minimax, ruta para cambiar de proveedor, resolución de problemas |
templates/scripts/tts-providers/README.md |
Al cambiar o añadir un proveedor de TTS | Contrato de tres funciones + 2 proveedores integrados (Minimax / OpenAI) + 5 fragmentos de código listos para usar (ElevenLabs / edge-tts / macOS Say / Azure / Google) |
references/RECORDING.md |
Leer en la Fase 4 | Herramientas de grabación de pantalla + síntesis posterior |
themes/ |
Consultar en el Plan de puntos de control / Fase 1.2 | Temas integrados (cada uno incluye theme.json + tokens.css) |
scripts/scaffold.sh |
Ejecutar una vez en la Fase 2.1 | Estructura del proyecto con un solo clic |
---
name: web-video-presentation
description: Transform articles or scripts into click-driven 16:9 web presentations that look like videos, with optional AI voiceover synthesis.
---
# Web Video Presentation
把一篇文章或口播稿,一步步做成可录屏的"伪装成视频的网页",可选合成
口播音频。产出物 = Vite + React + TS 项目 + 按章节切分的音频。
## 适用场景
- "我有口播稿 / 一篇文章,帮我做成视频" —— 口播驱动的内容
- 想做 "动态 PPT"
- 16:9 横屏录屏,大字、留白、每屏都要有动效
- 教学 / 产品演示 / keynote 想要电影感
- B 站 / YouTube /抖音视频内容
本 Skill **以方法论 + 协作流程为核心**。脚手架模板提供 token 和原语,
但每个美学决策(配色、字型、动效气质)都应该针对你的主题重新设计 ——
不要照搬。
---
## 工作流总览
```
Phase 1 内容编写
1.1 识别用户输入
1.2 一次产出 script.md + outline.md
(口播稿 + 开发计划)
▼
[Checkpoint Plan] ← 必须停。一次对齐 5 件事:
稿子 / outline / 主题 / 素材 / 开发模式
▼
Phase 2 网页开发
2.1 脚手架(按选定主题)
2.2 第 1 章 = 主线程 + 完整版本(强制 anchor)
▼
[硬节点] 用户验收第 1 章 ← 不可跳过
▼
2.3 第 2~N 章(按选定模式:A 逐章 / B 顺序 / C 并行)
▼
[Checkpoint Audio] ← 必须停。是否合成音频
▼
Phase 3 音频合成(可选)
▼
Phase 4 录屏 + 后期
```
工作目录约定(agent 在用户当前目录下创建 / 编辑):
```
my-video/
├── article.md # 用户给原文时必有 —— 不删!开发阶段画面信息源
├── script.md # 必有:保持原文语言的平台化口播稿(决定节拍)
├── outline.md # 必有:开发计划(章节切分 + 每步内容 + 信息池)
└── presentation/ # 脚手架产出的 Vite + React + TS 项目
├── src/chapters/<NN>-<id>/
│ ├── <Chapter>.tsx # 视觉实现
│ ├── <Chapter>.css
│ └── narrations.ts # ★ step 数 + 口播文本的唯一真相源
├── scripts/
│ ├── extract-narrations.ts # 扫所有 narrations.ts → audio-segments.json
│ ├── synthesize-audio.sh # provider-agnostic runner(循环 segments)
│ └── tts-providers/ # 每 provider 一个 .sh(内置 2 个)
│ ├── README.md # 三函数契约 + 5 段现成代码片段(11labs / edge-tts / say / azure / gcloud)
│ ├── minimax.sh # 默认 provider,用 mmx-cli
│ └── openai.sh # 内置 OpenAI TTS(curl + OPENAI_API_KEY)
├── audio-segments.json # extract 产出(合成前 review)
└── public/audio/<id>/<N>.mp3 # 可选:合成的音频
```
> **关键**:`narrations.ts` 是 step 数和音频合成的**唯一真相源**。
> 章节 `.tsx` 里的 `if (step === N)` 出现的最大 N + 1 必须等于
> `narrations.length`。这保证 5 处地方(script / outline / 章节代码 /
> chapters.ts / 音频文件)永远不会漂。
---
## 硬性自检协议(贯穿整个 Skill)
下面三个产出,每一个**完成后必须走自检 → 修复 → 再汇报 / 推进**:
| 产出 | 自检清单出处 |
|---|---|
| `script.md` | [`SCRIPT-STYLE.md`](references/SCRIPT-STYLE.md) 三层自检(形式 / 风骨 / 念出来) |
| `outline.md` | [`OUTLINE-FORMAT.md`](references/OUTLINE-FORMAT.md) 自检 |
| 单章实现完成 | [`CHAPTER-CRAFT.md`](references/CHAPTER-CRAFT.md) 完工自检 |
**执行方式**(按能力降级,**优先用更隔离的方式**):
1. **Agent Teams(最优)**:开一个独立的 reviewer agent,给它"产出文件
路径 + 对应清单 + 关键上下文",让它逐项核查并**严格汇报结论**
(哪几条 pass / 哪几条 fail + 证据 + 改写建议)。
2. **subAgent(次优)**:没有 Teams 能力但能开 subagent 就用 subagent
走同样流程。
3. **自检(兜底)**:当前 agent 都没有上述能力,就自己**严格逐项**
核查 —— 不允许目测一遍就放行。
**铁律**:拿到结论后**先按 fail 项把产出改完**,再向用户汇报"做完了
+ 自检结论 + 改了什么"。**直接拿原始结论汇报但不修复 = 违规**。
---
## 各阶段文件读取指南
不同阶段读不同的文件。**长会话里 agent 容易遗忘原则**,特别是
Phase 2.4 的"实现单章"会重复 N 次 —— 每次都要回看核心约束。
| 阶段 | 必读(每次都看) | 一次性看完 / 按需查 |
|---|---|---|
| Phase 1.1-1.2 内容编写 | `references/SCRIPT-STYLE.md` + `references/OUTLINE-FORMAT.md` + `article.md`(用户原文,如有) | —— |
| **Checkpoint Plan 选主题** | —— | `themes/*/theme.json`(动态读全部,列清单 + `bestFor` 推荐 + `descriptionZh`);`references/THEMES.md`(用户想了解主题系统时) |
| Phase 2.1 脚手架 | —— | SKILL.md 本节看一次 |
| **Phase 2.4 实现单章(×N 次,被 2.2 / 2.3 调用)** | **`references/CHAPTER-CRAFT.md`** 单一入口 —— Part 0 十条原则 / Part 1 开工 5 问 / Part 2 关系→动作决策树 / Part 3 视觉工具箱 / Part 4 时长参考 / Part 5 反 AI 味反模式 / Part 6 代码硬规则(**含 narrations.ts 强制约束**)/ Part 7 完工自检 / Part 8 反馈速查 + 当前主题的 `themes/<id>/theme.json` + 当前章节的 outline.md 段落 + **`article.md` 本章对应段落** + 素材清单 | `references/EXAMPLES/`(结构示意,不是抄袭模板);`references/THEMES.md` 完整 token 契约 |
| Phase 3 音频合成 | `references/AUDIO.md`(含 narrations.ts → segments.json → 任意 provider 流程,内置 minimax + openai) | `templates/scripts/tts-providers/README.md`(换 provider / 自带 TTS 时) |
| Phase 4 录屏 + 后期 | `references/RECORDING.md`(含 `?auto=1` 自动录屏) | —— |
| 选 / 造 / 切主题 | —— | `references/THEMES.md` |
> **写章节时只读一份 `CHAPTER-CRAFT.md`**。十条原则 / 开工 self-prompting /
> 决策树 / 反 AI 味反模式 / 完工自检全部并入这一份单一入口。`EXAMPLES/`
> **不是必读** —— 先按内容自由设计,卡壳才翻(按 anchor 翻"形",不要照搬)。
---
## Phase 1 —— 内容编写(一次产出)
### 1.1 识别用户输入
| 用户给的东西 | 该做的 |
|---|---|
| 原始文章(书面语 / 公众号 / 论文 / 博客) | 一次产出 `script.md` + `outline.md`(1.2),过 Checkpoint Plan |
| 直接的口播稿 / 视频脚本 | 落盘成 `script.md`,一次产出 `outline.md`(1.2 简化版),过 Checkpoint Plan |
| 啥都没有,只说"帮我做个 X 主题的视频" | **反问**:先给一段素材或大纲。Skill 不替用户构思内容 |
### 1.2 一次产出 script.md + outline.md
**两份产出物在一次思考中完成**:
1. **生成 `script.md`**:按 [`references/SCRIPT-STYLE.md`](references/SCRIPT-STYLE.md)
的规则把 article 转成保持原文语言的平台化口播稿。**保留 `article.md` 不删**——它是
outline 写信息池和章节实现画面时的细节源(双源原则)。
2. **生成 `outline.md`**:按 [`references/OUTLINE-FORMAT.md`](references/OUTLINE-FORMAT.md)
规则切章节 + 切 step + 每章首段抽**信息池**。
**outline 的边界**(关键):
| outline 必须写 | outline 不要写 |
|---|---|
| 章节切分 / 每章 step 数 / 估时 | 具体动画类型(blur clear / wipe / 弹簧) |
| 每步屏幕内容(hero / 数据 / 标语 / 列表项) | CSS 实现手段(filter / SVG / clip-path) |
| 章节级**信息池**:从 article 抽的数字 / 引用 / 案例 / 标签 | 时长数值(不写 ~2.5s / 80~120ms) |
| 步级关系名前缀("反差对照" / "递进列表" / "金句" 等可选 hint) | 持续微动 / 错峰量等微观节奏 |
> **outline 不写动画的理由**:写死动画 = chapter agent 退化为翻译机;
> 留白让 chapter agent 在每步开工时按 [`CHAPTER-CRAFT.md`](references/CHAPTER-CRAFT.md)
> 的"内容驱动决策树"自由设计,才有真正的视频感。详见
> [`CHAPTER-CRAFT.md`](references/CHAPTER-CRAFT.md) Part 0 原则 7。
**落盘后必须先走自检再进 Checkpoint Plan**:按上文「硬性自检协议」分别
对 `script.md` / `outline.md` 执行(优先 Agent Teams → subAgent → 自检),
按结论修复完成后再进入 Checkpoint Plan。
---
## Checkpoint Plan —— 5 件事一次对齐(**硬节点**)
`script.md` + `outline.md` 写完后必须停下来。**用户在这一个节点同时确认
5 件事**。
### agent 此时要做的预备工作
1. 读所有 `themes/*/theme.json` 拿 `nameZh` / `descriptionZh` / `bestFor`
/ `mood` —— **不要硬编码清单**
2. 根据 `script.md` 的内容类型 / 关键词 / 语气,**主动**从主题里挑 2~3
套**最匹配的推荐**(匹配 `bestFor` 字段)
3. 扫一遍 `outline.md` 末尾"素材清单"部分
### 总结模板(骨架,agent 按情况填充)
```
内容计划写完,产出文件:
📄 article.md {若用户给原文则保留}
📄 script.md {X} 字 / ~{T} 分钟
📄 outline.md {N} 章 / {M} 步 + 每章信息池 + 末尾素材清单
章节速览:
1. <id> <章节标题> <S> 步 ~<T>s
2. ...
接下来一次对齐 5 件事:
1. 稿子 (script.md) 要不要改?
可以直接编辑文件,或口头告诉我修改方向。
2. 开发计划 (outline.md) 要不要改?重点看:
- 章节切分 / step 数 / 估时是否合理(合理判断:每章 30~60s)
- 每步屏幕内容是否清晰
- 每章首段「信息池」是否有足够的 article 细节供画面挂
- 末尾素材清单是否完整
3. 选哪个主题?我的推荐:
★ <推荐 1:nameZh (id)> — 因为 <bestFor 命中>;<descriptionZh 摘要>
★ <推荐 2 / 推荐 3>
其它可选:<剩余主题,nameZh + 一句话>
也可以让我帮你做新主题(详见 references/THEMES.md)。
4. 真素材怎么准备?粗看本视频要的图:<列粗略清单>
a) 我从 <现有素材路径> 帮你挑 b) 你自己提供 c) 全部 placeholder
5. 开发模式选哪个?
**第 1 章无论哪种模式都必须主线程做完 + 用户验收**(强制 anchor)。
差异在第 2 章及之后:
A) 默认 · 逐章确认(推荐)
每章做完都暂停验收 → 风险可控 / 节奏最稳
B) 第 1 章后顺序开发(不并行)
第 2~N 章主线程顺序做完后统一验收 → 速度中 / 适合 agent 不支持并行
C) 第 1 章后并行开发(subagent)
第 2~N 章用 subagent 并行 → 最快 / 用户控并行数(一次几章)
⚠️ 风格各章会有差异(这是预期,主题禁区兜底)
```
收到反馈后:
- 稿子 / outline 要改:直接编辑文件,编辑完 ping 一次(或口头描述 agent 改)
- **主题必须明确**才进入 Phase 2。用户说"主题你帮我选" → 取你推荐的第 1 个,
**告诉用户你选了什么、为什么**,给反悔机会
- 模式选定 → 进 Phase 2
---
## Phase 2 —— 网页开发
### 2.1 脚手架
```bash
bash <path-to-web-video-presentation>/scripts/scaffold.sh \
./presentation \
--theme=<用户选的主题 id>
bash <path-to-web-video-presentation>/scripts/scaffold.sh --list-themes
```
> 自定义主题 → 先按 [`references/THEMES.md`](references/THEMES.md)
> "创作新主题"流程做一个 `themes/<my-theme>/`,再 `--theme=<my-theme>`。
脚手架带一个 `01-example` demo。在写第一章真实内容前**删掉**:
```bash
rm -rf presentation/src/chapters/01-example
```
并把 `presentation/src/registry/chapters.ts` 里 `EXAMPLE_CHAPTER`
的 import 和数组项移除。
### 2.2 第 1 章 —— 主线程 + 强制验收
**核心**:第 1 章 = 完整版本一次到位(节奏 + 视觉 + 真素材齐全)。
**没有"骨架版"概念** —— 第一章就要做出**用户能直接验收**的样板。
为什么第 1 章必须主线程:
- 它是 [`CHAPTER-CRAFT.md`](references/CHAPTER-CRAFT.md) 这套指引在**当前
主题 + 当前题材**下的第一次落地
- 如果指引有盲区 / 主题颜色 / 字体 token 不够用,第 1 章一定会暴露 ——
这时候有人类反馈就能修指引 / 调主题,**早改成本最低**
- 后续章节(无论顺序 / 并行)都要参考第 1 章的代码模式,所以第 1 章 =
当次项目的"风格锚点(不强求章节间一致,但单章自身得有完整说服力)"
**做完第 1 章后必须停下来**等用户验收:
```
第 1 章 <id> 做完了,dev server 在 localhost:5173 运行。
验收重点:
□ 视觉气质对不对?符合 <theme nameZh> 的预期吗?
□ 节奏对不对?某些步太快 / 太慢 / 信息太薄?
□ 内容驱动动画是否到位?还是有几步是无脑入场动画?
□ 双源原则:屏幕画面有没有"口播没念但 article 能挂"的细节?
□ 反 AI 味检查:紫粉渐变 / 圆角彩色边框 / 假插画 / emoji 是否有?
问题告诉我,我针对性改。OK 了告诉我"继续",我按选定模式做第 2 章及之后。
```
### 2.3 第 2~N 章 —— 按选定模式
**所有模式下的共同规则**:每章独立按 [`CHAPTER-CRAFT.md`](references/CHAPTER-CRAFT.md)
开发。**风格不强求章节间完全一致** —— 主题颜色 / 字体 token 兜底视觉
统一,动画 / 节奏 / 视觉演示由章节自由发挥是设计预期。
#### 模式 A · 默认 · 逐章确认
第 2 章做完 → 暂停验收 → OK → 第 3 章 → 暂停 → ... → 第 N 章。**每章
独立验收**,问题随时改,**风险最低,节奏最稳**。**用户不明确选模式时
默认走这个**。
#### 模式 B · 第 1 章后顺序开发
第 2 章 → 第 3 章 → ... → 第 N 章 **主线程顺序做完,最后统一验收**。
速度中等,适合 agent 不支持并行任务的环境。
#### 模式 C · 第 1 章后并行开发(subagent)
用 subagent 把第 2~N 章并行做完,最大并行数由用户控制("一次 4 章"
/ "一次 2 章")。**最快,但风格各章会有差异** —— 这是预期,因为:
1. 每个 subagent 看不到别的 subagent 产出,无法机械对齐
2. 章节代码物理分离(每章一个文件夹 / 自己的 CSS 前缀),不会互相
破坏
3. 主题 token 兜底视觉统一(颜色 / 字体 / hero 数字 / 卡片 / 分割线
性格 / 装饰),气质不会跑偏
4. **风格不一致 = 人手写视频的呼吸感**(多 voice / 多视角)
并行 subagent 的 prompt 必须包含:
- 当前章节 outline 段落(含信息池)
- `references/CHAPTER-CRAFT.md` 的路径(**单一必读** —— 视觉演示要求 +
逐步揭示 + 双源原则 + 反 AI 味 + 代码红线 + 完工自检全部在这一份里)
- 当前主题 `theme.json` 的 `descriptionZh` / `mood` / `bestFor`(参考气质
即可,动画 / 时长 / 字号 / emoji 由 chapter agent 自由决定)
- **第 1 章代码作为"代码风格"参考**(不是"视觉抄袭对象")
- 硬规则:每章独立 CSS 前缀(`.cd-` / `.mg-` / `.pm-` / ...);
不修改 `chapters.ts`;完工跑 `npx tsc --noEmit`
**重要**:无论选哪种模式,**用户随时可以中途切换模式**。第 2 章 OK
后用户说"剩下的并行" / "剩下的逐章" 都行。
### 2.4 实现单章(每章必走)
详细指引见 [`references/CHAPTER-CRAFT.md`](references/CHAPTER-CRAFT.md) ——
**单一必读入口**,覆盖:视觉演示要求 / 逐步揭示 / 内容取舍 / 双源原则
/ 视频演示基本审美 / 反 AI 味 / 代码红线 / 完工自检。
**核心要点**(CHAPTER-CRAFT.md 详述):
- **每章必须有 CSS / SVG / Canvas / JS 视觉演示**,禁纯文字章节
- **逐步揭示**:清单 / 列表必须 1 项 = 1 step,禁一次全展示
- **双源原则**:节奏跟口播稿(顺序不能乱),细节回原文章抽(信息池 +
本章 article 段落)
- **完工自检逐项过**,不达标回去改 —— 按上文「硬性自检协议」执行
(优先 Agent Teams → subAgent → 自检),**改完再向用户汇报本章交付**
### 2.5 大改后 bump STORAGE_KEY
改动 `chapters.ts`(增加 / 删除 / 重排章节,或某章 `narrations.ts`
长度变化)后,**bump** `presentation/src/hooks/useStepper.ts` 的
`STORAGE_KEY`(如 `v4` → `v5`),避免持久化游标落到不存在的 step 上。
---
## Checkpoint Audio —— 是否合成音频(**硬节点**)
Phase 2 结束后必须停下来,问用户:
```
网页做完,{N} 章 {M} 步,dev server 在 localhost:5173 跑着。
要不要合成音频做"自动播放录屏"?
✓ 合成 → 扫所有章节的 narrations.ts 出 audio-segments.json,
调 TTS provider 合成每步一个 mp3 到 public/audio/。
合成完后用 ?auto=1 模式可以一镜到底录屏(音视频天然同步)。
内置两个 provider:
• minimax (mmx-cli) —— 默认,中文音色稳
• openai (OPENAI_API_KEY) —— curl-based,多数已有 key
其它后端 (ElevenLabs / edge-tts 免费 / macOS say 离线 /
Azure / Google) 见 scripts/tts-providers/README.md 的现成片段。
✗ 不合成 → 跳过 Phase 3,直接 Phase 4 用手动录屏 + 后期配音。
```
要合成 → Phase 3。不合成 → 直接 Phase 4。
---
## Phase 3 —— 音频合成(可选)
详细流程见 [`references/AUDIO.md`](references/AUDIO.md)。简版:
```bash
cd presentation
npm run extract-narrations # 扫所有 narrations.ts → audio-segments.json
# 让用户扫一眼 audio-segments.json 确认文本对
npm run synthesize-audio # 默认 minimax provider,增量
# 或用内置 openai (要 OPENAI_API_KEY):
PRESENTATION_TTS=openai npm run synthesize-audio
# 或自定义:写一个 scripts/tts-providers/<name>.sh,见该目录的 README.md
```
合成完告诉用户:输出位置 / 总段数 / 哪些段时长异常(太长 = 该 step 拆
分;太短 = 文案太薄)—— 给最后一次校准节奏的机会。然后进入 Phase 4。
---
## Phase 4 —— 录屏 + 后期
详见 [`references/RECORDING.md`](references/RECORDING.md)。两种路径:
| 场景 | 推荐路径 |
|---|---|
| Phase 3 已合成音频 | **Auto 模式一镜到底**:浏览器开 `localhost:5173/?auto=1` → 按 SPACE → 整片自动播完 → 停录 → 裁头尾即成片,**无需后期对音轨** |
| Phase 3 跳过 | 默认 Manual 模式手动点击推进 → 后期任意剪辑工具配音 |
> agent 在 Phase 3 / Checkpoint Audio 后**主动告诉用户**适合的录屏路径。
---
## 十条原则(一句话清单)
完整展开见 [`references/CHAPTER-CRAFT.md`](references/CHAPTER-CRAFT.md)
Part 0 —— **写章节时回那里查**,下面只是索引。
| # | 原则 | 一句话 |
|---|---|---|
| 1 | 16:9 固定舞台 | 内容 1920×1080 + transform scale,没有响应式 |
| 2 | 全局 step 计数器 | 章节是 step 的纯函数,无定时器 |
| 3 | 每步独占整屏 | `if (step === N) return <FullScene />` |
| 4 | 口播节拍 = step | 一节拍 = 一 step = 一聚焦想法 |
| 5 | 隐藏的边角控件 | 进度条 / 翻页器默认 opacity 0 |
| 6 | 舞台无 chrome | 没有 header / footer / 页码 / 品牌条 |
| 7 | **内容驱动动画** | 先找内在动作,找不到才入场动画兜底;持续微动慎用 |
| 8 | 多点逐个揭示 | 1 项 = 1 step,禁同步 stagger 上 N 项 |
| 9 | 整片同一主题 | 章节间不翻表面色;**颜色 / 字体走 token**,其它尺度章节自由 |
| 10 | 双源原则 | script 定节拍,**article 定画面密度**(落到信息池) |
---
## 常见用户反馈速查
简化表见 [`references/CHAPTER-CRAFT.md`](references/CHAPTER-CRAFT.md)
Part 8「常见反馈速查」。**关键**:先定位是哪一层(节奏 / 视觉 / 内容
/ 代码),再改最小切片,**不要重做整章**。
---
## 相关资源
按"何时读"标注,避免一次性全读:
| 文件 | 何时读 | 内容 |
|---|---|---|
| [`references/SCRIPT-STYLE.md`](references/SCRIPT-STYLE.md) | Phase 1.2 必读 | 文章 → 口播稿规则、平台变体 |
| [`references/OUTLINE-FORMAT.md`](references/OUTLINE-FORMAT.md) | Phase 1.2 必读 | outline.md 字段 spec、命名约定、章节切分、信息池 |
| [`references/CHAPTER-CRAFT.md`](references/CHAPTER-CRAFT.md) | **Phase 2.4 每章单一必读入口** | Part 0 十条原则 / Part 1 开工 5 问 / Part 2 关系→动作决策树 / Part 3 视觉工具箱 / Part 4 时长 / Part 5 反 AI 味反模式 / Part 6 代码硬规则 / Part 7 完工自检 / Part 8 反馈速查 |
| [`references/EXAMPLES/`](references/EXAMPLES/) | **可选** —— 看结构 | 章节结构示意(hook / list-reveal / case-tech-review);**不是抄袭模板** |
| [`references/THEMES.md`](references/THEMES.md) | 选 / 造 / 切主题时 | 完整 token 契约 + 内置主题清单 + 创作流程 |
| [`references/AUDIO.md`](references/AUDIO.md) | Phase 3 才读 | provider-agnostic 音频合成流程、内置 minimax 用法、换 provider 路径、故障排查 |
| [`templates/scripts/tts-providers/README.md`](templates/scripts/tts-providers/README.md) | 换 / 加 TTS provider 时 | 三函数契约 + 内置 2 个 (minimax / openai) + 5 种现成代码片段(ElevenLabs / edge-tts / macOS say / Azure / Google) |
| [`references/RECORDING.md`](references/RECORDING.md) | Phase 4 才读 | 录屏工具 + 后期合成 |
| [`themes/`](themes) | Checkpoint Plan / Phase 1.2 时翻 | 内置主题(每个含 `theme.json` + `tokens.css`) |
| [`scripts/scaffold.sh`](scripts/scaffold.sh) | Phase 2.1 跑一次 | 一键项目脚手架 |
Todos los archivos
95 archivosInstalar web-video-presentation
Descarga y descomprime los archivos de habilidades en tu directorio .claude/skills/.
Descargar ZIPClona el repositorio y copia los archivos de la habilidad a tu proyecto.
git clone https://github.com/ConardLi/garden-skills/tree/main/skills/web-video-presentation # Copy SKILL.md to your .claude/skills/ directory
Copiar





Hogar
