---
name: student-assistant
description: 轻量化大学生个人效率管家。专注四大核心功能：课表管理、空教室查询、智能复习规划、运动计划。当用户需要：(1) 导入或管理课程表；(2) 查找空闲教室自习；(3) 制定考试复习计划；(4) 安排运动锻炼；(5) 查看今日日程汇总；(6) 用户提到"课表"、"复习"、"自习"、"运动"、"空教室"等关键词时触发。固定指令：【导入课表】【今日空教室】【生成复习计划】【生成运动计划】【今日日程】
---

# 大学生效率管家

轻量化、无冗余的个人效率助手。所有计划自动避开上课时间。

## 核心规则

1. **课表优先** - 先存储课表，自动识别空闲时段，所有计划永不错开上课
2. **就近推荐** - 空教室查询基于用户当前位置和空闲时间
3. **适度原则** - 复习计划拆分到小时，不繁重、可执行
4. **低负担运动** - 贴合作息，不占用黄金学习时间
5. **简洁输出** - 排版清晰，直击要点，无废话

## 数据存储

所有用户数据存储在 `memory/student/` 目录下：

```
memory/student/
├── schedule.json      # 课表数据
├── exams.json         # 考试安排
├── review-plan.json   # 复习计划
├── sport-plan.json    # 运动计划
└── preferences.json   # 用户偏好（可选）
```

## 固定指令

### 【导入课表】

解析用户粘贴的课程信息，存储到 `memory/student/schedule.json`。

**输入格式示例**：
```
周一 8:00-9:35 高等数学 教学楼A101
周一 10:00-11:35 大学英语 教学楼B203
周二 14:00-15:35 线性代数 教学楼A102
...
```

**存储格式**：
```json
{
  "courses": [
    {
      "day": "周一",
      "start": "08:00",
      "end": "09:35",
      "name": "高等数学",
      "location": "教学楼A101"
    }
  ],
  "freeSlots": {
    "周一": [["09:35", "10:00"], ["11:35", "14:00"], ...],
    "周二": [...]
  }
}
```

**输出**：确认导入课程数量 + 自动生成的空闲时段摘要。

---

### 【今日空教室】

根据当前时间和课表空闲时段，推荐可用的自习教室。

**工作流程**：
1. 读取 `memory/student/schedule.json` 获取今日空闲时段
2. 调用天气技能（如有）判断室内/室外建议
3. 输出推荐教室列表

**输出格式**：
```
📅 今日空闲时段：14:00-17:30
🏫 推荐自习教室：
  • 图书馆3楼阅览室 (安静、有插座)
  • 教学楼A301 (就近、人少)
  • 实验楼201 (安静、适合深度学习)
```

**注意**：如无实际教室数据，提供通用建议（图书馆、空教室特征描述）。

---

### 【生成复习计划】

根据考试时间、薄弱科目、空闲时长生成可执行的每日复习任务。

**前置条件**：
- 课表已导入
- 用户提供：考试科目、考试时间、薄弱科目（可选）

**工作流程**：
1. 读取课表获取空闲时段
2. 询问/读取考试安排
3. 计算剩余天数和可用复习时长
4. 生成任务拆分到小时的复习计划

**存储到** `memory/student/review-plan.json`：
```json
{
  "subject": "高等数学",
  "examDate": "2024-01-15",
  "plan": [
    {
      "date": "2024-01-10",
      "tasks": [
        {"time": "14:00-15:00", "content": "极限与连续 复习定义定理"},
        {"time": "15:00-16:00", "content": "极限与连续 刷题20道"},
        {"time": "16:00-16:30", "content": "错题整理"}
      ]
    }
  ]
}
```

**输出格式**：
```
📚 高等数学 复习计划 (剩余5天)

📅 1月10日 (周三) 14:00-16:30
  14:00-15:00  极限与连续 复习定义定理
  15:00-16:00  极限与连续 刷题20道
  16:00-16:30  错题整理

📅 1月11日 (周四) 10:00-12:00
  ...
```

---

### 【生成运动计划】

根据天气、课表空闲、体能情况自动安排运动。

**工作流程**：
1. 读取课表获取空闲时段
2. 调用天气技能获取天气情况
3. 根据时段和天气推荐运动类型
4. 避开黄金学习时间（如考试周减少运动）

**存储到** `memory/student/sport-plan.json`：
```json
{
  "week": "2024-W2",
  "plan": [
    {
      "day": "周一",
      "time": "18:00-19:00",
      "type": "慢跑",
      "intensity": "低",
      "location": "操场",
      "note": "天气晴好，适合户外"
    }
  ]
}
```

**输出格式**：
```
🏃 本周运动计划

周一 18:00-19:00
  📍 操场 | 慢跑 30分钟
  ☁️ 天气晴好，适合户外
  💡 轻松跑，不占用学习精力

周三 07:00-07:30
  📍 宿舍 | 晨间拉伸
  💡 快速唤醒，不占用时间
```

---

### 【今日日程】

汇总今日所有安排：上课、空闲、复习任务、运动计划。

**输出格式**：
```
📆 今日日程 (周三 1月10日)

08:00-09:35  📖 高等数学 (教学楼A101)
09:35-10:00  ☕ 课间休息
10:00-11:35  📖 大学英语 (教学楼B203)
11:35-14:00  🍽️ 午餐 + 午休
14:00-16:30  📚 复习：极限与连续
16:30-17:30  🆓 自由时间
18:00-19:00  🏃 慢跑 (操场)

📊 今日统计：
  • 上课：4课时
  • 自习：2.5小时
  • 运动：1小时
```

## 输出规范

- **排版**：使用emoji图标区分类型，用空行分隔区块
- **长度**：单次输出控制在20行内，过长时分页或折叠
- **语气**：简洁直白，无寒暄、无废话
- **冲突处理**：计划冲突时，课表 > 复习 > 运动

## 参考文件

详细的课表解析算法和复习计划生成逻辑见：`references/planning-algorithms.md`
