---
description: 设定学习目标(知识/技能/学习成果)
scripts:
  sh: ../../scripts/bash/objective.sh
  ps1: ../../scripts/powershell/objective.ps1
---

# /objective - 学习目标设定系统 🎯

> **核心理念**: 引导用户明确课程要达到的学习目标
> **目标**: 完成 objective.json 的填写,为课程设计提供清晰的方向

---

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

### 执行检查

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

### 解析返回结果

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

- **如果 `action === "update"`**: 已有目标,引导用户更新
- **如果 `action === "create"`**: 首次创建,引导用户填写
- **包含 `spec`**: 课程规格信息,用于参考

---

## 学习目标的三个维度

学习目标应该包含三个层面:

### 1. 知识层面 (Knowledge)
**学员将学到什么概念和理论?**

示例:
- Python的基础语法规则
- 面向对象编程的核心概念
- 常用数据结构的特点和应用场景

### 2. 技能层面 (Skills)
**学员将掌握什么具体技能?**

示例:
- 能够编写和调试Python程序
- 能够使用面向对象思想设计程序结构
- 能够选择合适的数据结构解决问题

### 3. 成果层面 (Outcomes)
**学完后能够独立完成什么?**

示例:
- 能够独立开发一个Todo管理系统
- 能够参与团队的Python项目开发
- 能够继续学习更高级的Python框架

---

## 第二步: AI 生成学习目标方案 ⚠️ 必须执行

### AI 智能生成

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

生成原则:
- **方案 A - 快速实战型**: 偏重实践,知识点精简,技能导向,适合快速上手
- **方案 B - 系统学习型**: 理论扎实,知识全面,循序渐进,适合系统学习
- **方案 C - 项目驱动型**: 项目导向,问题驱动,综合应用,适合实战为主
- **方案 D - 自定义**: 用户手动输入

每个方案包含:
- **知识目标 (Knowledge)**: 4-8 个知识点
- **技能目标 (Skills)**: 3-6 个技能
- **学习成果 (Outcomes)**: 2-4 个成果

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

```
╔══════════════════════════════════════════════════════════╗
║            选择学习目标方案                                  ║
╚══════════════════════════════════════════════════════════╝

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

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

AI 已为你生成 3 套学习目标方案,请选择最适合的:

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

【方案 A: 快速实战型】[推荐入门课程]

📚 知识目标 ([N]个):
  • [知识点1]
  • [知识点2]
  • [知识点3]
  ...

🛠️ 技能目标 ([N]个):
  • [技能1]
  • [技能2]
  • [技能3]
  ...

🎯 学习成果 ([N]个):
  • [成果1]
  • [成果2]
  ...

特点: 偏重实践,快速上手,技能导向

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

【方案 B: 系统学习型】[推荐进阶课程]

📚 知识目标 ([N]个):
  • [知识点1]
  • [知识点2]
  • [知识点3]
  ...

🛠️ 技能目标 ([N]个):
  • [技能1]
  • [技能2]
  • [技能3]
  ...

🎯 学习成果 ([N]个):
  • [成果1]
  • [成果2]
  ...

特点: 理论扎实,知识全面,循序渐进

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

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

📚 知识目标 ([N]个):
  • [知识点1]
  • [知识点2]
  • [知识点3]
  ...

🛠️ 技能目标 ([N]个):
  • [技能1]
  • [技能2]
  • [技能3]
  ...

🎯 学习成果 ([N]个):
  • [成果1]
  • [成果2]
  ...

特点: 项目导向,问题驱动,实战为王

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

【方案 D: 自定义方案】

完全自定义所有学习目标内容

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

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

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

---

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

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

展示确认和微调界面:

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

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

是否需要微调?

  1. ✅ 直接使用 (无需修改)
  2. 📝 微调知识目标 (增删改知识点)
  3. 📝 微调技能目标 (增删改技能)
  4. 📝 微调学习成果 (增删改成果)
  5. 📝 全面微调 (逐项调整)

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

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

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

逐项引导用户微调,示例:

```
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📝 微调知识目标

当前知识目标:
  1. [知识点1]
  2. [知识点2]
  3. [知识点3]
  ...

操作:
  • 输入 "+" 添加新知识点
  • 输入 "-N" 删除第N个知识点 (如: -2)
  • 输入 "=N 新内容" 修改第N个知识点 (如: =1 新的知识点)
  • 输入 "ok" 完成微调

请输入操作:
```

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

### 如果用户选择 D (自定义方案)

回退到原来的逐条输入流程:

```
╔══════════════════════════════════════════════════════════╗
║               设定知识目标 (Knowledge)                      ║
╚══════════════════════════════════════════════════════════╝

请逐条输入知识点 (输入"完成"结束):
```

**⚠️ 按照原流程逐条输入知识/技能/成果**

---

## 第四步: 质量检查 ⚠️ 必须执行

**展示检查清单**:

```
╔══════════════════════════════════════════════════════════╗
║              学习目标质量检查                                ║
╚══════════════════════════════════════════════════════════╝

让我们检查一下设定的学习目标:

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

✓ 检查 1/5: 完整性
  • 是否涵盖了知识、技能、成果三个维度?
  • 每个维度是否都有足够的目标?
  [AI 判断]

✓ 检查 2/5: 清晰度
  • 目标描述是否具体明确?
  • 是否避免了模糊和空泛的表述?
  [AI 判断]

✓ 检查 3/5: 可测性
  • 目标是否可以被测量和验证?
  • 是否能判断学员是否达成目标?
  [AI 判断]

✓ 检查 4/5: 一致性
  • 目标是否与课程规格一致?
  • 难度是否符合目标受众水平?
  [AI 判断]

✓ 检查 5/5: 实用性
  • 目标是否有实际价值?
  • 是否贴近学员的学习需求?
  [AI 判断]

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

[如果全部通过]
✅ 学习目标设定优秀!

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

是否要修改?
  1. 修改
  2. 继续(稍后调整)

请选择:
```

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

---

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

**展示完整目标汇总**:

```
╔══════════════════════════════════════════════════════════╗
║                学习目标汇总                                  ║
╚══════════════════════════════════════════════════════════╝

📋 课程名称: [course_name]

📚 知识目标 (Knowledge):
  1. [知识点1]
  2. [知识点2]
  3. [知识点3]
  ...

🛠️ 技能目标 (Skills):
  1. [技能1]
  2. [技能2]
  3. [技能3]
  ...

🎯 学习成果 (Outcomes):
  1. [成果1]
  2. [成果2]
  3. [成果3]
  ...

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

确认以上目标设定?

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

请输入 1 或 2:
```

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

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

使用 Write 工具更新 objective.json:

```json
{
  "knowledge": [
    "理解Python的基础语法和编程范式",
    "掌握面向对象编程的核心概念",
    "..."
  ],
  "skills": [
    "能够编写和调试Python程序",
    "能够使用面向对象思想设计程序结构",
    "..."
  ],
  "outcomes": [
    "能够独立开发一个完整的Python项目",
    "能够参与团队的Python开发工作",
    "..."
  ]
}
```

**显示成功消息**:

```
✅ 学习目标已保存!

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

📁 配置文件: objective.json

📊 统计:
  • 知识目标: [N] 个
  • 技能目标: [N] 个
  • 学习成果: [N] 个

💡 下一步建议:

  1. /structure - 设计课程结构
  2. /outline - 生成课程大纲

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

**任务完成** ✅

---

## 重要提醒 ⚠️

### 等待机制

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

### 角色定位

你是**学习目标设计顾问**,你的职责是:
- 🎯 引导用户全面思考学习目标
- 💡 提供专业的分类和建议
- ✅ 确保目标具体、可测、实用
- 🚫 不替用户决定目标内容

### SMART 原则提醒

好的学习目标应该符合 SMART 原则:
- **S**pecific - 具体明确
- **M**easurable - 可测量
- **A**chievable - 可达成
- **R**elevant - 相关性强
- **T**ime-bound - 有时间限制(通过课程时长体现)

---

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