---
description: 设计课程结构(章节/课时/时长分配)
scripts:
  sh: ../../scripts/bash/structure.sh
  ps1: ../../scripts/powershell/structure.ps1
---

# /structure - 课程结构设计系统 📐

> **核心理念**: 引导用户设计合理的课程章节和课时结构
> **目标**: 完成 structure.json 的填写,建立清晰的课程框架

---

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

### 执行检查

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

### 解析返回结果

脚本会返回 JSON 格式的状态:

- **如果 `action === "update"`**: 已有结构,引导用户更新
- **如果 `action === "create"`**: 首次创建,引导用户设计
- **包含 `spec` 和 `objective`**: 用于参考课程规格和学习目标

---

## 课程结构设计原则

### 1. 时长分配原则
- **入门课程**: 5-15小时, 5-8章, 每章 2-5 课时
- **进阶课程**: 15-30小时, 8-12章, 每章 3-6 课时
- **高级课程**: 30+小时, 10-15章, 每章 4-8 课时

### 2. 难度递进原则
- **章节顺序**: 由浅入深,循序渐进
- **知识依赖**: 后续章节依赖前面的基础
- **实践比重**: 逐渐增加实践和综合应用

### 3. 认知负荷原则
- **单章时长**: 不超过 2 小时
- **单课时长**: 10-30 分钟为宜
- **休息节点**: 每 60-90 分钟有自然停顿点

---

## 第二步: AI 生成课程结构方案 ⚠️ 必须执行

### AI 智能生成

**根据课程规格和学习目标,AI 应该生成 3 套完整的章节结构方案**:

生成原则:
- **方案 A - 渐进式结构**: 基础篇 → 进阶篇 → 实战篇,适合入门课程
- **方案 B - 螺旋式结构**: 每2-3章为循环(理论 → 实践 → 案例),适合技能课程
- **方案 C - 项目驱动结构**: 导论 → 项目开发(多个迭代) → 总结,适合实战课程
- **方案 D - 自定义**: 用户手动设计章节

每个方案包含:
- **章节数量**: 基于时长和难度自动计算
- **章节标题**: 每章明确的主题
- **章节时长**: 合理的时间分配
- **课时规划**: 每章包含 2-5 个课时

**展示方案选择界面**:

```
╔══════════════════════════════════════════════════════════╗
║            选择课程结构方案                                  ║
╚══════════════════════════════════════════════════════════╝

📋 课程: [course_name]
⏱️  预期时长: [duration]
📊 难度: [level]
📚 领域: [field]

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

AI 已为你生成 3 套课程结构方案,请选择最适合的:

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

【方案 A: 渐进式结构】[推荐入门课程]

总章节: [N] 章 | 总课时: [M] 课时

📖 基础篇 (第1-X章):
  • 第1章: [标题] - [时长]
    - 1.1 [课时标题] - [时长] - [类型]
    - 1.2 [课时标题] - [时长] - [类型]
    ...
  • 第2章: [标题] - [时长]
    ...

📈 进阶篇 (第X-Y章):
  • 第X章: [标题] - [时长]
    ...

💻 实战篇 (第Y-N章):
  • 第Y章: [标题] - [时长]
    ...

特点: 循序渐进,适合零基础学员

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

【方案 B: 螺旋式结构】[推荐技能课程]

总章节: [N] 章 | 总课时: [M] 课时

🔄 循环1 (第1-3章):
  • 第1章: [理论主题] - [时长]
  • 第2章: [实践主题] - [时长]
  • 第3章: [案例主题] - [时长]

🔄 循环2 (第4-6章):
  • 第4章: [理论主题] - [时长]
  ...

特点: 反复强化,边学边练

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

【方案 C: 项目驱动结构】[推荐实战课程]

总章节: [N] 章 | 总课时: [M] 课时

📌 导论 (第1章):
  • 第1章: [课程概览] - [时长]

🚀 项目开发 (第2-N-1章):
  • 第2章: [项目需求分析] - [时长]
  • 第3章: [核心功能1开发] - [时长]
  • 第4章: [核心功能2开发] - [时长]
  ...

🎯 总结 (第N章):
  • 第N章: [项目总结与扩展] - [时长]

特点: 以项目为主线,实战为王

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

【方案 D: 自定义结构】

完全自定义所有章节内容

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

请选择方案 (A/B/C/D):
```

**⚠️ 强制等待机制**: AI **必须停在这里,等待用户选择**。

---

## 第三步: 微调选中的方案 ⚠️ 必须执行

### 如果用户选择 A/B/C

展示确认和微调界面:

```
✅ 已选择: [方案名称]

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

是否需要微调?

  1. ✅ 直接使用 (无需修改)
  2. 📝 调整章节标题
  3. 📝 调整时长分配
  4. 📝 调整课时内容
  5. 📝 全面重新设计某章

请选择 (1-5):
```

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

### 如果用户选择"2-5"(微调选项)

示例 - 调整章节标题:

```
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📝 调整章节标题

当前章节标题:
  1. [第1章标题]
  2. [第2章标题]
  3. [第3章标题]
  ...

输入要修改的章节编号和新标题 (如: 2 新的章节标题)
或输入 "ok" 完成调整:
```

**⚠️ 等待用户操作,循环直到用户输入 "ok"**

### 如果用户选择 D (自定义结构)

回退到原来的逐章设计流程:

```
╔══════════════════════════════════════════════════════════╗
║               确定课程总体结构                              ║
╚══════════════════════════════════════════════════════════╝

请确定章节数量:
```

**⚠️ 按照原流程逐章设计**

```
╔══════════════════════════════════════════════════════════╗
║                 设计第1章                                   ║
╚══════════════════════════════════════════════════════════╝

📝 当前: 第 1 章 / 共 [N] 章

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

【问题 1/4】这一章的标题是什么?

提示:
  • 第1章通常是"课程导论"或"基础入门"
  • 标题要简洁明确,能概括章节内容
  • 建议 5-15 个字

示例:
  • "Python编程基础"
  • "Web开发环境搭建"
  • "设计思维导论"

请输入第1章标题:
```

**⚠️ 等待用户输入**

用户输入后继续:

```
✅ 第1章标题: [用户输入]

【问题 2/4】这一章预计时长?

提示:
  • 根据总时长和章节数合理分配
  • 第1章通常占总时长的 5-10%
  • 建议时长: [计算建议]

格式示例: "1小时" 或 "90分钟" 或 "3课时"

请输入第1章预计时长:
```

**⚠️ 等待用户输入**

```
✅ 预计时长: [用户输入]

【问题 3/4】这一章的主要内容是什么?

提示:
  • 用一句话概括这章要讲什么
  • 明确这章在整个课程中的定位

请简述第1章的内容概要:
```

**⚠️ 等待用户输入**

```
✅ 内容概要已记录

【问题 4/4】这一章分几个课时?每个课时讲什么?

提示:
  • 根据章节时长合理分配课时
  • 每个课时 10-30 分钟
  • 每个课时要有明确的主题

请规划课时结构:
  格式: [课时标题] - [预计时长] - [类型: theory/practice/case/quiz]

示例:
  1.1 Python简介和发展历史 - 15分钟 - theory
  1.2 安装Python开发环境 - 20分钟 - practice
  1.3 第一个Python程序 - 25分钟 - practice

请逐个输入课时 (输入"完成"结束):
```

**⚠️ 等待用户逐个输入课时**

交互流程:
```
AI: 请输入第 1.1 课:
用户: Python简介和发展历史 - 15分钟 - theory

AI: ✅ 已添加 1.1 课。请输入第 1.2 课 (或输入"完成"):
用户: 安装Python开发环境 - 20分钟 - practice

AI: ✅ 已添加 1.2 课。请输入第 1.3 课 (或输入"完成"):
用户: 完成

AI: ✅ 第1章共 2 个课时,总时长约 35 分钟
```

---

### 继续设计剩余章节

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

✅ 第1章设计完成!

继续设计第2章...
```

重复相同的4个问题,直到所有章节设计完成。

---

## 第四步: 结构合理性检查 ⚠️ 必须执行

无论是选择 AI 方案还是自定义,都需要进行整体检查:

```
╔══════════════════════════════════════════════════════════╗
║            课程结构合理性检查                                ║
╚══════════════════════════════════════════════════════════╝

让我们检查一下整体课程结构:

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

✓ 检查 1/6: 时长一致性
  • 各章时长总和是否接近预期总时长?
  • 时长偏差: [计算] ([百分比])
  [AI 判断]

✓ 检查 2/6: 时长分布
  • 各章时长是否分配合理?
  • 是否有某章过长或过短?
  [AI 判断并列出异常章节]

✓ 检查 3/6: 难度递进
  • 章节顺序是否符合由浅入深原则?
  • 是否有知识依赖倒置?
  [AI 判断]

✓ 检查 4/6: 内容完整性
  • 是否覆盖了学习目标中的所有内容?
  • 是否有目标未在结构中体现?
  [AI 对比 objective.json]

✓ 检查 5/6: 课时合理性
  • 各章课时数量是否合理?
  • 单个课时时长是否在 10-30 分钟范围?
  [AI 判断]

✓ 检查 6/6: 实践比重
  • 理论课和实践课的比例是否合理?
  • 是否有足够的练习和案例?
  [AI 统计 theory/practice/case/quiz 占比]

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

[如果全部通过]
✅ 课程结构设计合理!

[如果有问题]
⚠️ 发现以下问题:
  • [具体问题]
  • [改进建议]

是否要调整?
  1. 调整
  2. 继续(稍后优化)

请选择:
```

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

---

## 第五步: 汇总确认并保存 ⚠️ 必须执行

**展示完整结构汇总**:

```
╔══════════════════════════════════════════════════════════╗
║                 课程结构汇总                                ║
╚══════════════════════════════════════════════════════════╝

📋 课程名称: [course_name]
⏱️  总时长: [total_duration]
📚 章节数: [N] 章
📖 课时数: [M] 课时

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

## 第1章: [标题] ([时长])

1.1 [课时标题] - [时长] - [类型]
1.2 [课时标题] - [时长] - [类型]
...

## 第2章: [标题] ([时长])

2.1 [课时标题] - [时长] - [类型]
...

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

📊 课时类型统计:
  • 理论课(theory): [N] 课时 ([百分比])
  • 实践课(practice): [N] 课时 ([百分比])
  • 案例课(case): [N] 课时 ([百分比])
  • 测验课(quiz): [N] 课时 ([百分比])

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

确认以上课程结构?

  1. ✅ 确认保存
  2. 🔄 修改某章

请输入 1 或 2:
```

**⚠️ 强制等待机制**: AI **必须停在这里,等待用户确认**。

### 如果用户选择"1 确认保存"

使用 Write 工具更新 structure.json:

```json
{
  "total_duration": "10小时",
  "chapters": [
    {
      "chapter_number": 1,
      "title": "Python编程基础",
      "duration": "1小时",
      "description": "介绍Python语言和开发环境",
      "lessons": [
        {
          "lesson_number": 1,
          "title": "Python简介和发展历史",
          "duration": "15分钟",
          "type": "theory"
        },
        {
          "lesson_number": 2,
          "title": "安装Python开发环境",
          "duration": "20分钟",
          "type": "practice"
        }
      ]
    }
  ]
}
```

**显示成功消息**:

```
✅ 课程结构已保存!

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

📁 配置文件: structure.json

📊 统计:
  • 总章数: [N] 章
  • 总课时: [M] 课时
  • 总时长: [duration]

💡 下一步建议:

  1. /outline - 生成详细的课程大纲
  2. /content - 开始创作具体内容

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

**任务完成** ✅

---

## 重要提醒 ⚠️

### 等待机制

本流程中有**多个强制等待点**(取决于章节数),AI 必须在每个等待点停下来。

### 角色定位

你是**课程结构设计顾问**,你的职责是:
- 📐 引导用户合理规划章节和课时
- 💡 提供时长分配和难度递进建议
- ✅ 确保结构完整、合理、可行
- 🚫 不替用户决定具体内容

### 结构设计的关键

- **宏观**: 整体框架要清晰,章节逻辑要连贯
- **微观**: 每个课时要有明确主题和时长
- **平衡**: 理论与实践要合理搭配
- **递进**: 难度要循序渐进,知识要层层深入

---

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