---
description: 章节内容创作 - 自动逐课时生成
scripts:
  sh: ../../scripts/bash/content.sh
  ps1: ../../scripts/powershell/content.ps1
---

# /content - 章节内容创作系统 ✍️

> **核心功能**: 自动逐章逐课时生成内容
> **新特性**: 分课时保存,断点续传,防止生成中断

---

## 第一步: 运行脚本获取状态 ⚠️ 必须执行

```bash
# AI 操作: 运行脚本
bash scripts/bash/content.sh
```

### 解析返回结果

脚本返回:
- `chapters_dir`: 章节内容目录路径 (`chapters/`)
- `outlines_dir`: 大纲文件目录路径 (`outlines/`)
- `total_chapters`: 总章节数
- `completed_items`: 已完成的课时列表 (格式: "章:课,章:课")
- `current_chapter`: 当前要生成的章节
- `current_lesson`: 当前要生成的课时
- `failed_items`: 生成失败的课时列表
- `spec`, `structure`, `outlines`: 课程配置和大纲
- `progress_file`: 进度文件路径

---

## 第二步: 检测生成进度 ⚠️ 必须执行

### 如果 completed_items 不为空 (有未完成的生成)

**展示断点恢复界面**:

```
╔══════════════════════════════════════════════════════════╗
║           检测到未完成的内容创作                             ║
╚══════════════════════════════════════════════════════════╝

📊 生成进度:

已完成课时:
  • 第1章: [3/5] 课时
  • 第2章: [2/4] 课时
  • ...

🔄 当前位置: 第[current_chapter]章 第[current_lesson]课时

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

请选择:
  1. ✅ 继续生成 (从第[current_chapter]章第[current_lesson]课时开始)
  2. 🔄 重新生成当前课时
  3. 📋 查看已生成的内容
  4. 🎯 从其他位置开始

请输入 (1-4):
```

**⚠️ 等待用户选择**

**处理用户选择**:
- **选择 1**: 继续执行第三步
- **选择 2**: 删除当前课时文件,继续执行第三步
- **选择 3**: 读取并显示已完成的课时内容,然后询问是否继续
- **选择 4**: 询问从哪章哪课时开始,然后继续执行第三步

### 如果 completed_items 为空 (首次生成)

**展示开始界面**:

```
╔══════════════════════════════════════════════════════════╗
║              开始创作章节内容                                ║
╚══════════════════════════════════════════════════════════╝

📋 课程: [course_name]
📚 总章节: [total_chapters] 章

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

💡 生成策略:
  • 逐章逐课时生成,每课时保存到独立文件
  • 自动保存进度,支持断点续传
  • 生成失败可单独重试

开始生成? (y/n):
```

**⚠️ 等待用户确认**

---

## 第三步: 逐章逐课时生成内容 ⚠️ 必须执行

### 自动化生成循环

从 `current_chapter` 和 `current_lesson` 开始,嵌套循环生成:

#### 外层循环: 遍历章节

```
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【第[N]章 / 共[total]章】

章节标题: [从 structure 读取]
章节时长: [从 structure 读取]
课时总数: [从 structure.chapters[N].lessons 读取]

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
```

#### 内层循环: 遍历该章的课时

```
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【生成第[N]章第[M]课时 / 共[total_lessons]课时】

进度: [████░░░░░░] [M]/[total_lessons]

课时信息:
  • 标题: [从 structure.chapters[N].lessons[M].title 读取]
  • 时长: [从 structure.chapters[N].lessons[M].duration 读取]
  • 类型: [从 structure.chapters[N].lessons[M].type 读取]

参考大纲: [从 outlines/chapter-[N].md 读取相关部分]

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

🤖 AI 正在生成第[N]章第[M]课时内容...
```

#### AI 生成内容

**生成要求**:

根据以下信息生成该课时的详细教学内容:

1. **课时标题**: [从 structure.chapters[N].lessons[M].title 获取]
2. **课时时长**: [从 structure.chapters[N].lessons[M].duration 获取]
3. **课时类型**: [从 structure.chapters[N].lessons[M].type 获取]
4. **大纲要点**: [从 outlines/chapter-[N].md 中提取对应课时的内容要点]

**内容格式**:

```markdown
# [N].[M] [课时标题]

> **课时时长**: [duration]
> **学习目标**: 学完本课时,你将能够 [目标1]、[目标2]...

## 引言

[2-3段,引入本课时要学习的内容,为什么重要,与前后课时的关系]

## 核心内容

### [小节1标题]

[详细讲解内容,包含:]
- 概念定义和解释
- 原理说明
- 代码示例 (如适用)
- 配图说明 (如适用)

```[language]
// 代码示例
[实际可运行的代码]
```

**要点总结**:
- [要点1]
- [要点2]

---

### [小节2标题]

[继续讲解...]

---

## 实践环节

### 动手练习

[设计一个小练习,让学习者巩固本课时内容]

**练习目标**: [明确目标]

**步骤**:
1. [步骤1]
2. [步骤2]
3. [步骤3]

**参考答案**:
[提供参考实现或答案]

---

## 本课时总结

[3-5个要点,总结本课时的核心内容]

1. **[核心概念1]**: [简要说明]
2. **[核心概念2]**: [简要说明]
3. **[核心概念3]**: [简要说明]

---

## 思考题

1. [开放性问题1]
2. [开放性问题2]

**提示**: [给一些思考方向]

---

## 延伸阅读

- [资源1]: [链接或说明]
- [资源2]: [链接或说明]
```

**内容长度控制**:
- 理论课时: 2000-3000字
- 实践课时: 1500-2500字 (更多代码示例)
- 案例课时: 2500-3500字 (完整案例流程)

#### 保存课时内容

**AI 操作**: 确保章节目录存在,然后保存内容

```bash
# 1. 创建章节目录 (如果不存在)
mkdir -p chapters/chapter-[N,补零]

# 2. 保存课时文件
Write: chapters/chapter-[N,补零]/lesson-[M,补零].md
Content: [上面生成的内容]
```

例如:
- `chapters/chapter-01/lesson-01.md`
- `chapters/chapter-01/lesson-02.md`
- `chapters/chapter-02/lesson-01.md`

#### 更新进度文件

**AI 操作**: 更新 `content-progress.json`

```json
{
  "total_chapters": [total],
  "completed": [
    {"chapter": [N], "lesson": [M]},
    ...
  ],
  "current_chapter": [N if more lessons, else N+1],
  "current_lesson": [M+1 if more lessons, else 1],
  "failed": [],
  "updated_at": "[当前时间]"
}
```

**显示进度**:

```
✅ 第[N]章第[M]课时已保存到: chapters/chapter-[N]/lesson-[M].md

[如果该章还有更多课时]
继续生成第[N]章第[M+1]课时...

[如果该章已完成,但还有更多章节]
✅ 第[N]章已完成! 共 [total_lessons] 个课时
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
继续生成第[N+1]章...

[如果所有章节都完成]
跳转到第四步
```

#### 循环直到所有课时完成

重复上述流程,直到:
- `current_chapter` > `total_chapters`
- 所有章节的所有课时都已生成

---

## 第四步: 生成完成总结 ⚠️ 必须执行

所有内容生成完成后,展示总结界面:

```
╔══════════════════════════════════════════════════════════╗
║              ✅ 章节内容创作完成!                             ║
╚══════════════════════════════════════════════════════════╝

📊 生成统计:
  • 总章节: [total_chapters] 章
  • 总课时: [total_lessons] 课时
  • 成功生成: [completed 数量] 课时
  • 失败: [failed 数量] 课时

📁 文件结构:
  • chapters/
    ├── chapter-01/
    │   ├── lesson-01.md
    │   ├── lesson-02.md
    │   └── ...
    ├── chapter-02/
    │   ├── lesson-01.md
    │   └── ...
    └── ...

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

💡 下一步建议:

  1. /exercise - 生成配套练习题
  2. /script - 生成视频脚本
  3. /review - 评估内容质量
  4. 手动查看和编辑内容文件

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
```

**任务完成** ✅

---

## 错误处理

### 如果某课时生成失败

1. **标记失败**: 更新 `progress_file`,将该课时加入 `failed` 列表
2. **显示错误**:
   ```
   ❌ 第[N]章第[M]课时生成失败: [错误信息]

   已保存进度,可稍后使用以下命令重新生成:
   /content --retry-chapter [N] --retry-lesson [M]

   是否继续生成下一课时? (y/n):
   ```
3. **等待用户选择**:
   - `y`: 继续生成下一课时
   - `n`: 退出,保存当前进度

---

## 高级用法

### 生成特定课时

用户可以直接指定章节和课时:

```bash
# 只生成第3章第2课时
/content --chapter 3 --lesson 2

# 从第2章第3课时开始生成
/content --from-chapter 2 --from-lesson 3

# 重新生成第5章第1课时
/content --retry-chapter 5 --retry-lesson 1

# 从上次断点继续
/content --continue
```

**AI 处理**: 脚本已经处理了参数,AI 只需根据返回的 `current_chapter` 和 `current_lesson` 开始生成

---

## 重要提醒 ⚠️

### AI 的职责

1. **自动化生成**: AI 应该自动嵌套循环生成,不需要每课时都询问用户
2. **保存文件**: 每课时生成后立即使用 Write 工具保存
3. **创建目录**: 使用 Bash 工具创建 `chapters/chapter-N/` 目录
4. **更新进度**: 每课时完成后立即更新进度文件
5. **错误恢复**: 生成失败时保存进度,方便用户重试
6. **清晰显示**: 实时显示进度,让用户了解当前状态

### 文件命名规范

- 章节目录: `chapters/chapter-01/`, `chapter-02/` (数字补零,两位)
- 课时文件: `lesson-01.md`, `lesson-02.md` (数字补零,两位)
- 进度文件: `.courseify/content-progress.json`

### 内容质量标准

1. **结构完整**: 引言 → 核心内容 → 实践 → 总结 → 思考题
2. **深度适中**: 符合课程难度等级,不过浅也不过深
3. **实用性强**: 包含实际代码示例和可操作的练习
4. **逻辑清晰**: 前后连贯,循序渐进
5. **长度合理**: 根据课时时长控制内容长度

---

**开始执行第一步** ⬇️
