home / skills / wayfind / origin-task / ppt-outline

ppt-outline skill

/ppt-generator/skills/ppt-outline

npx playbooks add skill wayfind/origin-task --skill ppt-outline

Review the files below or copy the command above to add this skill to your agents.

Files (5)
SKILL.md
5.9 KB
---
name: ppt-outline
description: |
  PPT skeleton generator - Create structured outline from context.
  Use when: (1) User wants to plan PPT structure, (2) User needs to clarify presentation requirements, (3) User wants to generate skeleton.yaml from documents.
  Triggers: "PPT大纲", "outline", "骨架", "skeleton", "PPT结构", "presentation structure"
---

# /ppt-outline

> 从上下文生成 PPT 骨架结构(skeleton.yaml)

## 概述

`/ppt-outline` 是 PPT 生成流水线的入口,负责分析输入上下文(文档、对话、需求描述),通过对话式交互澄清需求,生成结构化的 PPT 骨架文件。它是一个**结构生成器**,不负责内容填充——只专注于定义"讲什么"和"怎么组织"。

## 定位

```
/ppt-outline → /ppt-enrich → /ppt-render
     ↑
 你在这里
```

| 职责 | 说明 |
|------|------|
| ✅ 做 | 扫描上下文、澄清需求、生成骨架、标记研究需求 |
| ❌ 不做 | 内容填充、调研执行、幻灯片渲染 |

## 用法

### 交互模式(推荐)

```bash
/ppt-outline                    # 交互式生成骨架
/ppt-outline --context ./docs/  # 指定上下文目录
```

### 批处理模式

```bash
/ppt-outline --batch brief.yaml -o skeleton.yaml
```

### 参数

| 参数 | 说明 | 默认值 |
|------|------|--------|
| `--context`, `-c` | 上下文目录或文件 | 当前目录 |
| `--output`, `-o` | 输出 skeleton.yaml 路径 | `skeleton.yaml` |
| `--batch` | 批处理模式,从 brief 文件生成 | - |
| `--style` | 预设样式 | `corporate-light` |
| `--duration` | 目标时长(分钟) | 30 |
| `--audience` | 受众类型 | `professionals` |
| `--verbose`, `-v` | 详细输出 | `false` |

## 工作流程

### Step 1: 上下文扫描

自动扫描指定目录,识别:
- Markdown 文档 (`.md`)
- 元数据文件 (`_meta.yaml`)
- 已有骨架 (`skeleton.yaml`)
- 研究结果 (`*-ds/` 目录)

```
Context Analysis:
  Documents: 6 files, 45,230 chars
  Modules: 4 detected
  Cases: 12 found
  Data points: 45 found
```

### Step 2: 需求澄清(交互式)

通过对话澄清关键信息:

```
📋 PPT 骨架生成向导

Q1: 演示的主要目标是什么?
    [ ] 培训教学
    [ ] 项目汇报
    [x] 会议演讲
    [ ] 产品推介

Q2: 目标时长?
    → 90 分钟

Q3: 受众是谁?
    → 企业决策层(董事长/CEO)

Q4: 有哪些必须涵盖的主题?
    → AI趋势、行业案例、落地框架
```

### Step 3: 骨架生成

基于上下文和需求,生成结构化骨架:

```yaml
meta:
  title: "生成式AI驱动的产业应用与企业转型"
  version: "1.0"

audience:
  type: executives
  size: 30

presentation:
  duration: 90
  occasion: training
  style: corporate-light

structure:
  - id: "00-opening"
    title: "AI大势判断与破冰互动"
    type: opening
    duration: 12
    ...
```

### Step 4: 研究需求标记

自动识别需要调研补充的内容:

```yaml
research_needs:
  - type: case_study
    query: "制造业AI应用案例,要求有ROI数据"
    priority: high
    count: 3
  - type: statistics
    query: "2024-2025 AI市场规模数据"
    priority: medium
```

## 输入格式

### 上下文目录结构

```
docs/
├── _meta.yaml              # 元数据(可选)
├── 课程计划.md             # 总览文档
├── 01-模块一.md            # 内容文档
├── 02-模块二.md
└── 01-模块一-ds/           # 调研目录
    └── research.docx
```

### Brief 文件(批处理模式)

```yaml
# brief.yaml
title: "AI培训课程"
duration: 60
audience: managers
topics:
  - "AI基础概念"
  - "行业应用案例"
  - "实施路径"
style: corporate-light
```

## 输出格式

生成符合 [skeleton-spec.md](../ppt-specs/skeleton-spec.md) 规范的 YAML 文件。

## 上下文扫描规则

### 文档权重

| 文件模式 | 权重 | 说明 |
|----------|------|------|
| `_meta.yaml` | 最高 | 元数据定义 |
| `课程计划.md`, `README.md` | 高 | 总览文档 |
| `0*.md` | 中高 | 开场/结束模块 |
| `*.md` | 中 | 内容模块 |
| `*-ds/*.docx` | 中 | 调研结果 |

### 内容识别

| 模式 | 识别为 |
|------|--------|
| `## 案例:`, `### Case:` | 案例 |
| 数字 + `%`, `倍`, `万`, `亿` | 数据点 |
| `> "..."` | 引用 |
| 表格 | 对比/框架 |

## 研究需求推断

根据内容缺口自动生成研究需求:

| 缺口类型 | 生成的研究需求 |
|----------|----------------|
| 案例不足 | `type: case_study` |
| 数据过时 | `type: statistics` |
| 缺少权威引用 | `type: quote` |
| 趋势描述模糊 | `type: trend` |

## 文件结构

```
.claude/skills/ppt-outline/
├── SKILL.md                    # 本文档
├── scripts/
│   ├── outline.py              # 主入口脚本
│   ├── context_scanner.py      # 上下文扫描器
│   ├── skeleton_generator.py   # 骨架生成器
│   └── research_extractor.py   # 研究需求提取器
└── templates/
    └── skeleton_template.yaml  # 骨架模板
```

## 依赖

- Python >= 3.9
- PyYAML
- python-docx(可选,用于读取 .docx)

## API(编程使用)

```python
from outline import PPTOutline

outline = PPTOutline(
    context_dir='./docs/',
    style='corporate-light',
    duration=90
)

# 扫描上下文
context = outline.scan_context()

# 生成骨架
skeleton = outline.generate(
    title="AI培训课程",
    audience="executives"
)

# 保存
outline.save('skeleton.yaml')
```

## 与其他 Skill 的关系

| Skill | 关系 |
|-------|------|
| `/ppt-enrich` | 下游:接收 skeleton,生成 slide-md |
| `/ppt-render` | 下下游:接收 slide-md,生成 PPTX |
| `/ppt` | 编排器:协调整个流程 |

## 版本历史

| 版本 | 日期 | 变更 |
|------|------|------|
| 1.0.0 | 2026-01-12 | 初版 |

## 相关文档

- [skeleton-spec.md](../ppt-specs/skeleton-spec.md) - Skeleton YAML 规范
- [slide-md-spec.md](../ppt-specs/slide-md-spec.md) - Slide Markdown 规范