一键导入
carocut-planner-analysis
视频素材分析与清点。解析 PDF 文档提取文本/图片/表格,组织原始素材目录,生成结构化的 inventory.yaml 素材清单。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
视频素材分析与清点。解析 PDF 文档提取文本/图片/表格,组织原始素材目录,生成结构化的 inventory.yaml 素材清单。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Remotion Shot 组件实现。将 storyboard 转化为 React 组件。包含关键的帧计算规则(Math.round 强制)、interpolate 安全规则(最小 1 帧)、1080p 视觉标准、动画编排模式、音视频同步架构、组件复用模式。这是技术密度最高的 skill。
Remotion 资产管道。调用 project_migrate tool 将 raws/ 素材迁移到 template-project/public/ 并生成 resourceMap.ts、constants.ts、timing.ts。Agent 只需 edit constants.ts 中的 COLORS 和 FONTS。
音频素材生成与获取。批量 Edge TTS 旁白生成(支持 storyboard pacing 字段驱动语速)、BGM/SFX 检索(BGM 节奏匹配 BPM 规则)、音频时长提取。包含 Edge voice 配置、速度调整规则、durations.json 格式规范(含 audio_visual_relation 说明)和关键的音频时序规则。
视觉素材获取与生成。根据 resources.yaml 定义,通过库存图片/视频搜索(Pexels/Pixabay)或 AI 生图(Caro LLM)获取视觉素材。包含搜索策略、视觉隐喻搜索(counterpoint 声画关系)、构图感知搜索(framing 字段)、prompt 工程指南、素材质量评估标准。
旁白脚本口语化处理与情绪节奏标注。
视频制作策划。四阶段交互式策划流程:Creative Memo → Resources → Script → Storyboard。包含完整的影视标准(剪辑七律、景别、机位、灯光)、盖曼讲故事法则(叙事引擎、冰山理论、叙事声音、灵感堆肥、人物推进、幽默感、对白法则)、视听语言系统(情绪曲线、景别/运镜/节奏/张力/声画关系/转场)、文档模板和审批流程。
| name | carocut-planner-analysis |
| description | 视频素材分析与清点。解析 PDF 文档提取文本/图片/表格,组织原始素材目录,生成结构化的 inventory.yaml 素材清单。 |
Extracts structured content from source materials (PDF, images, videos, audio) and creates an organized inventory for video production planning.
Transform user-provided raw materials into structured data that can drive production planning. This step creates the foundation for all subsequent workflow stages.
| Type | Extensions | Extraction Method |
|---|---|---|
| PDF documents | Text blocks, images, tables via material decompose tool | |
| Images | .png, .jpg, .jpeg, .webp | Copied to raws/images/existing/ |
| Videos | .mp4, .mov, .webm | Copied to raws/videos/ |
| Audio | .mp3, .wav, .m4a | Copied to raws/audio/ |
| Text | .txt, .md | Read and indexed |
| URL | http/https | Text, images, tables extracted via web crawling |
raws/
images/
existing/ # User-provided images (organized)
crawled/ # Images downloaded from URL
crawled_img_001.jpg
crawled_img_002.png
page_01_img_01.png # Images extracted from PDF
page_02_img_01.png
table_01.png # Table screenshots from PDF
data.json # Structured content from PDF or URL
content.txt # Plain text extraction
inventory.yaml # Complete material inventory
{
"stats": {
"total": 45,
"pages": 12,
"by_type": { "text": 30, "title": 5, "image": 7, "table": 3 }
},
"elements": [
{ "type": "title", "page": 1, "content": "Introduction" },
{ "type": "text", "page": 1, "content": "Text content from this section..." },
{ "type": "image", "page": 1, "path": "images/img_001.png" },
{ "type": "table", "page": 3, "path": "images/table_001.png", "context": {
"before": ["Previous text for context..."],
"after": ["Following text..."]
}}
]
}
inventory:
source_files:
- name: presentation.pdf
type: pdf
pages: 12
extracted: true
images:
- path: images/page_01_img_01.png
source: presentation.pdf
page: 1
description: "Architecture diagram"
- path: images/existing/logo.png
source: user_provided
description: "Company logo"
text_blocks: 30
tables: 2
total_images: 7
digraph material_analysis {
"User provides materials" [shape=doublecircle];
"Create raws/ directory" [shape=box];
"Has PDF?" [shape=diamond];
"Decompose PDF" [shape=box];
"Has URL?" [shape=diamond];
"Crawl URL" [shape=box];
"Organize other files" [shape=box];
"Generate inventory.yaml" [shape=box];
"Report to user" [shape=box];
"Proceed to STEP-2" [shape=doublecircle];
"User provides materials" -> "Create raws/ directory";
"Create raws/ directory" -> "Has PDF?";
"Has PDF?" -> "Decompose PDF" [label="yes"];
"Has PDF?" -> "Has URL?" [label="no"];
"Decompose PDF" -> "Has URL?";
"Has URL?" -> "Crawl URL" [label="yes"];
"Has URL?" -> "Organize other files" [label="no"];
"Crawl URL" -> "Organize other files";
"Organize other files" -> "Generate inventory.yaml";
"Generate inventory.yaml" -> "Report to user";
"Report to user" -> "Proceed to STEP-2";
}
When decomposing PDFs, the following extraction patterns apply:
page_{NN}_img_{NN}.pngtable_{NN}.pngIf user provides only images, videos, or other files without a PDF:
Create directory structure:
raws/
images/existing/
videos/
audio/
Copy files to appropriate directories
Create inventory.yaml manually:
inventory:
source_files: []
images:
- path: images/existing/diagram.png
source: user_provided
description: "User-provided diagram"
text_blocks: 0
tables: 0
total_images: 1
| Source | Description | Availability |
|---|---|---|
user_provided | Files directly supplied by the user | Available in raws/images/existing/ |
pdf_extracted | Images and tables extracted from PDF documents | Available after decomposition |
retrieve | Stock images to be fetched from Pexels/Pixabay | Resolved in STEP-4 |
generate | Custom images to be generated via Caro LLM API | Resolved in STEP-4 |
url_crawled | Images downloaded from crawled web pages | Available after crawling |
材料分析完成。
来源: presentation.pdf (12 页)
提取结果:
文本块: 30
图片: 5
表格: 2
输出目录: raws/
- data.json (结构化内容)
- images/ (7 个文件)
- inventory.yaml (材料清单)
请确认材料是否完整,然后继续下一步。
材料整理完成。
用户提供:
- 3 张图片 -> raws/images/existing/
- 1 个视频 -> raws/videos/
- presentation.pdf (12 页)
PDF 提取结果:
文本块: 30
图片: 5
总计: 9 个可用素材
材料清单: raws/inventory.yaml
请确认后继续。
| Issue | Cause | Solution |
|---|---|---|
| PDF images blurry | Low resolution in source PDF | Use higher quality source or request original images |
| Tables not detected | Complex table layout | Extract tables manually as screenshots |
| Text encoding errors | Non-UTF8 PDF encoding | Re-export PDF with UTF-8 encoding |
| Missing sections | Title pattern mismatch | Adjust title detection parameters when invoking decompose tool |
page_{NN}_img_{NN}.pngtable_{NN}.pngexisting/ subdirectories增量模式用于在已有素材库基础上添加新材料,不重新解析已处理的文件。
amendment 字段指定的新素材文件raws/inventory.yaml,了解已有素材清单inventory.yaml,追加新素材条目,保留已有条目不变raws/inventory.yaml