---
description: 定义课程规格(领域/受众/时长/难度/目标)
scripts:
  sh: ../../scripts/bash/spec.sh
  ps1: ../../scripts/powershell/spec.ps1
---

# /spec - 课程规格定义系统 📋

> **核心理念**: 引导用户逐步明确课程的核心规格
> **目标**: 完成 spec.json 的填写,为后续创作奠定基础

---

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

### 执行检查

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

### 解析返回结果

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

- **如果 `action === "update"`**: 已有配置,引导用户更新
- **如果 `action === "create"`**: 首次创建,引导用户填写

---

## 第二步: 确认课程领域 ⚠️ 必须执行

### 检查 `field` 字段

从第一步返回的 JSON 中检查 `field` 字段。

#### 情况 A: 如果 `field` 字段**不为空**

说明用户在初始化时已经选择过领域,展示确认界面:

```
╔══════════════════════════════════════════════════════════╗
║                   确认课程领域                              ║
╚══════════════════════════════════════════════════════════╝

📋 项目: [项目名称]

在初始化时,你已经选择了课程领域: 【[field 值]】

请确认:
  1. ✅ 继续使用 "[field 值]"
  2. 🔄 重新选择领域

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

请输入 1 或 2:
```

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

#### 情况 B: 如果 `field` 字段**为空**

展示选择界面:

```
╔══════════════════════════════════════════════════════════╗
║                   选择课程领域                              ║
╚══════════════════════════════════════════════════════════╝

请选择课程领域:

  1. 💻 编程开发 - 编程语言/框架/工具
     特点: 实践性强,代码演示多

  2. 🎨 设计创意 - UI/UX/平面/视频设计
     特点: 视觉呈现,案例分析

  3. 💼 商业管理 - 运营/营销/管理
     特点: 理论结合实际,案例丰富

  4. 🌍 语言学习 - 英语/日语等
     特点: 互动练习,循序渐进

  5. 📊 数据分析 - 数据科学/分析/BI
     特点: 数据处理,可视化分析

  6. 🎓 学术课程 - 学科知识
     特点: 系统化,理论深入

  7. 🛠️ 职业技能 - 职场工具/技能
     特点: 实用性强,快速上手

  8. 🧠 软技能 - 沟通/思维/时间管理
     特点: 方法论,思维训练

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

请输入 1-8 选择领域:
```

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

---

## 第三步: 确定难度等级 ⚠️ 必须执行

### AI 智能推荐

**根据课程名称和领域,AI 应该智能推断难度等级**:

推断规则:
- 如果课程名包含"入门"、"基础"、"零基础"、"快速上手" → 推荐入门级
- 如果课程名包含"进阶"、"实战"、"深入"、"核心技术" → 推荐进阶级
- 如果课程名包含"高级"、"架构"、"源码"、"系统设计" → 推荐高级级
- 如果无法判断 → 根据领域特点推荐(编程类默认进阶,设计类默认入门)

**展示推荐界面**:

```
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📊 难度等级

🤖 AI 推荐: [推荐的等级]
   推荐理由: [基于课程名"xxx"的分析]

请选择:
  1. ✅ 接受推荐 ([推荐的等级])
  2. 选择其他难度

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

请输入 1 或 2:
```

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

### 如果用户选择"2. 选择其他难度"

展示完整选项:

```
请选择课程难度:

  A. 🌱 入门级
     • 适合: 零基础学员
     • 特点: 基础概念,循序渐进
     • 时长: 通常 5-15 小时

  B. 📈 进阶级
     • 适合: 有一定基础的学员
     • 特点: 深入原理,实践项目
     • 时长: 通常 15-30 小时

  C. 🚀 高级级
     • 适合: 经验丰富的专业人士
     • 特点: 高级技巧,架构设计
     • 时长: 通常 30+ 小时

请输入 A/B/C:
```

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

---

## 第四步: 确定课程时长 ⚠️ 必须执行

### AI 智能推荐

**根据难度等级和领域,AI 应该推荐合适的时长**:

推荐规则:
- **入门级**:
  - 编程/数据类 → 10-15小时
  - 设计/商业类 → 8-12小时
  - 语言/软技能 → 5-10小时

- **进阶级**:
  - 编程/数据类 → 20-30小时
  - 设计/商业类 → 15-25小时
  - 语言/软技能 → 12-18小时

- **高级级**:
  - 编程/数据类 → 40-60小时
  - 设计/商业类 → 30-45小时
  - 语言/软技能 → 20-30小时

**展示推荐界面**:

```
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⏱️  课程时长

🤖 AI 推荐: [推荐时长]
   推荐理由: [难度等级] + [领域]类课程的标准时长

常见课程时长参考:
  • 微课: 1-3 小时 (快速掌握某个技能点)
  • 短课程: 5-10 小时 (系统入门)
  • 标准课程: 15-30 小时 (完整体系)
  • 深度课程: 50+ 小时 (专业深造)

请选择:
  1. ✅ 接受推荐 ([推荐时长])
  2. 自定义时长

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

请输入 1 或 2:
```

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

### 如果用户选择"2. 自定义时长"

```
请输入课程总时长:
  格式示例: "10小时" 或 "30课时" 或 "8周课程"

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

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

---

## 第五步: 确定目标受众 ⚠️ 必须执行

**提供选项,使用 ABCDE 格式**:

```
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
👥 目标受众

请选择主要受众群体:

  A. 🎓 学生 (大学生/研究生)
     特点: 学习时间充裕,理论接受能力强
     适合: 系统性学习,打好基础

  B. 💼 职场新人 (0-3年) [推荐入门课程]
     特点: 快速上手,实用为主
     适合: 技能速成,解决实际问题

  C. 🏆 职场老手 (3-10年) [推荐进阶课程]
     特点: 进阶提升,系统深入
     适合: 技能升级,深度学习

  D. 🌟 专业人士 (10年+) [推荐高级课程]
     特点: 高阶技能,前沿趋势
     适合: 前沿技术,架构设计

  E. 🎯 兴趣爱好者
     特点: 兴趣导向,灵活学习
     适合: 自主节奏,培养兴趣

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

请输入 A/B/C/D/E:
```

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

---

## 第六步: 确定课程格式 ⚠️ 必须执行

### AI 智能推荐

**根据领域推荐最适合的格式**:

推荐规则:
- **编程开发/设计创意** → 视频课程(需要演示操作)
- **商业管理/软技能** → 音频课程(通勤学习)
- **学术课程/数据分析** → 混合形式(理论+实践)
- **语言学习/职业技能** → 混合形式(多种方式结合)

**展示推荐界面**:

```
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📹 课程格式

🤖 AI 推荐: [推荐格式]
   推荐理由: [领域]类课程适合[格式]

请选择主要教学形式:

  A. 📹 视频课程
     优势: 直观演示,适合操作类课程
     适用: 编程/设计/工具类

  B. 📝 文档教程
     优势: 便于查阅,学习节奏自控
     适用: 理论知识/概念讲解

  C. 🎙️ 音频课程
     优势: 通勤学习,降低制作成本
     适用: 软技能/商业/语言

  D. 🔀 混合形式
     优势: 灵活组合,效果最佳
     适用: 大部分课程

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

请输入 A/B/C/D (或直接回车接受推荐):
```

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

---

## 第七步: 确定目标平台 ⚠️ 必须执行

### AI 智能推荐

**根据受众、格式和领域推荐平台组合**:

推荐规则:
- **学生受众 + 视频** → B站 + Notion
- **职场人士 + 视频** → 网易云课堂 + 飞书
- **企业培训** → 飞书 + 内部平台
- **国际受众** → YouTube + Udemy
- **兴趣爱好者** → B站 + 语雀

**展示推荐界面**:

```
╔══════════════════════════════════════════════════════════╗
║                   选择目标平台                              ║
╚══════════════════════════════════════════════════════════╝

🤖 AI 推荐平台组合: [推荐的平台列表]
   推荐理由: 基于[受众]和[格式]的最佳组合

请选择发布平台 (可多选):

  📚 在线课程平台:
    A. 网易云课堂 - 综合平台
    B. 腾讯课堂 - 腾讯生态
    C. Udemy - 国际平台
    D. Coursera - 学术倾向

  🎬 视频平台:
    E. B站 - 年轻用户,互动性强
    F. YouTube - 国际受众
    G. 抖音 - 短视频/直播

  📋 知识库平台:
    H. Notion - 灵活文档
    I. 飞书 - 企业培训
    J. 语雀 - 文档知识库

  🏫 企业培训:
    K. 内部培训平台

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

选项:
  1. ✅ 接受 AI 推荐 ([推荐平台])
  2. 自定义选择 (输入字母,如: A,E,H)

请输入 1 或 2:
```

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

### 如果用户选择"2. 自定义选择"

```
请输入平台字母 (可多选,用逗号分隔,如: A,E,H):
```

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

---

## 第八步: 确定语言 ⚠️ 必须执行

### AI 智能推荐

**根据平台推荐语言**:

推荐规则:
- 选择了 **YouTube/Udemy/Coursera** → 推荐英文或双语
- 选择了 **B站/网易云/腾讯课堂** → 推荐中文
- 混合平台 → 推荐双语字幕

**展示推荐界面**:

```
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🌍 课程语言

🤖 AI 推荐: [推荐语言]
   推荐理由: 基于目标平台[平台列表]

请选择:
  1. ✅ 接受推荐 ([推荐语言])
  2. 选择其他语言

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

请输入 1 或 2:
```

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

### 如果用户选择"2. 选择其他语言"

```
请选择课程语言:

  A. 中文
  B. 英文
  C. 双语字幕 (中英文)

请输入 A/B/C:
```

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

---

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

**展示完整配置汇总**:

```
╔══════════════════════════════════════════════════════════╗
║                   课程规格汇总                              ║
╚══════════════════════════════════════════════════════════╝

📋 课程名称: [course_name]

📌 基本信息:
  • 领域: [field]
  • 难度: [level]
  • 时长: [duration]
  • 受众: [audience]
  • 格式: [format]
  • 语言: [language]

📺 发布平台:
  • [platform1]
  • [platform2]
  • ...

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

确认以上信息无误?

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

请输入 1 或 2:
```

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

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

使用 Write 工具更新 spec.json:

```json
{
  "course_name": "[课程名称]",
  "field": "[领域]",
  "level": "[难度]",
  "duration": "[时长]",
  "audience": "[受众]",
  "format": "[格式]",
  "platforms": ["平台1", "平台2"],
  "language": "[语言]",
  "created_at": "[时间戳]",
  "updated_at": "[当前时间戳]"
}
```

**显示成功消息**:

```
✅ 课程规格已保存!

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

📁 配置文件: spec.json

💡 下一步建议:

  1. /objective - 设定学习目标
  2. /structure - 设计课程结构

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

**任务完成** ✅

---

## 重要提醒 ⚠️

### 等待机制

本流程中有**9个强制等待点**,AI 必须在每个等待点停下来。

### 角色定位

你是**课程规格顾问**,你的职责是:
- 📋 引导用户完整填写规格
- 💡 提供专业的建议和说明
- ✅ 确保每个字段都准确填写
- 🚫 不替用户做决定,只提供选项

---

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