Xiaozhi Teach Schedule Manager

Automation

帮助独立教师把"凭记忆排课"升级为"系统化排课与课时管理"。 当老师说"排课"、"调课"、"补课"、 "学员请假"、"课时包剩余"、"本周课表"、 "排课冲突"、"下一节课谁"时,必须激活此SKILL。 核心工作流:周课表生成 → 学员时间矩阵 → 课时包台账 → 补课/请假/调课三动作 → 冲突检测 → 课时扣减/补回 → 与 xiaozhi-teach-solo-dashboard / student-intake / lesson-log / parent-communication 建立数据接口。 该版本基于"时间是独立教师最稀缺资产"原则, 让排课冲突早发现、课时台账透明化。

Install

openclaw skills install xiaozhi-teach-schedule-manager

排课与课时管理 SKILL

一句话定位: 独立教师的时间是唯一不可再生的资产——把时间排清楚,是把生活排清楚。


⚠️ 技术实现边界声明

关于"自动排课"边界: 本 SKILL 提供排课建议与冲突检测;自动写入学员课表;老师需确认后写入 solo-dashboard。

关于"学员时间偏好"边界: 排课时仅使用学员授权的时间偏好信息(来自 intake);不擅自增加可上课时间。

关于"课时扣减"边界: 课时扣减与 lesson-log 联动,由 lesson-log 在课后触发预扣;本 SKILL 仅管理课时包台账和到期预警。


一、核心使命

独立教师排课常见的三个误区:

误区① 全靠记性:课排在脑子里,
        学员问"下次课什么时候"答不上来,
        学员冲突了才后知后觉。

误区② 课时台账混乱:学员课时包还剩多少不清楚,
        课时耗尽了才想起续费,
        学员超课时上课但课时没扣。

误区③ 补课调课靠手动:学员请假靠微信沟通,
        调课靠反复确认,
        没有系统记录,靠人脑容易漏。

本 SKILL 要解决的是:

  • 让排课可视化:周课表 + 学员时间矩阵
  • 让冲突早发现:排课时自动检测时间冲突
  • 让课时台账透明:每个学员课时包剩余/到期/续费节点清楚
  • 让补课请假有流程:标准动作 + 自动留痕

二、触发时机

触发场景示例语句
排课"排下周的课" / "[化名] 排课"
周课表"本周课表" / "下周课表"
调课"调课" / "把 [化名] 的课调到 [日期]"
补课"补课" / "[化名] 缺课要补"
请假"[化名] 请假" / "学员请假怎么扣课时"
课时包"[化名] 还剩几课时" / "课时包快到期了"
排课冲突"这个时间排了谁" / "有没有冲突"
下一节课"我下一节课是谁"
续费节点"[化名] 课时快用完了"

三、核心流程

                ┌──────────────────────────┐
                │ ① 学员时间矩阵            │
                │  来自 intake              │
                └────────────┬─────────────┘
                             ↓
                ┌──────────────────────────┐
                │ ② 周课表生成              │
                │  固定课+临时调课         │
                └────────────┬─────────────┘
                             ↓
                ┌──────────────────────────┐
                │ ③ 冲突检测                │
                │  老师时间/学员时间        │
                └────────────┬─────────────┘
                             ↓
                ┌──────────────────────────┐
                │ ④ 排课建议输出            │
                │  老师确认后写入            │
                └────────────┬─────────────┘
                             ↓
                ┌──────────────────────────┐
                │ ⑤ 课时包台账              │
                │  剩余/到期/续费           │
                └────────────┬─────────────┘
                             ↓
                ┌──────────────────────────┐
                │ ⑥ 补课/请假/调课          │
                │  标准动作+自动留痕        │
                └────────────┬─────────────┘
                             ↓
                ┌──────────────────────────┐
                │ ⑦ 写回 solo-dashboard     │
                │  课表+台账                │
                └──────────────────────────┘

四、学员时间矩阵

4.1 学员可用时间表

━━━━━━━━━━━━━━━━━━━━━━━━━━━
📅 学员时间矩阵 · [化名]
━━━━━━━━━━━━━━━━━━━━━━━━━━━
■ 每周固定可上课时间
  周一:□上午 □下午 □晚上
  周二:□上午 □下午 □晚上
  周三:□上午 □下午 □晚上
  周四:□上午 □下午 □晚上
  周五:□上午 □下午 □晚上
  周六:□上午 □下午 □晚上
  周日:□上午 □下午 □晚上

■ 单次课时长:[N] 分钟

■ 不可上课时间
  · 学校晚自习:[时间段]
  · 课外班冲突:[时间段]
  · 家庭固定活动:[时间段]

■ 备注
  · 寒暑假可加课
  · 考试前 1 周需确认
━━━━━━━━━━━━━━━━━━━━━━━━━━━

4.2 老师时间矩阵

━━━━━━━━━━━━━━━━━━━━━━━━━━━
📅 老师时间矩阵 · [本周]
━━━━━━━━━━━━━━━━━━━━━━━━━━━
■ 老师固定不可用时间
  · 工作:[时间段]
  · 通勤:[时间段]
  · 个人事务:[时间段]

■ 老师可用课时
  周一:[N] 个课时位
  周二:[N] 个课时位
  ...
  周日:[N] 个课时位
  本周总可用:[N] 个课时位

■ 老师偏好
  · 上午不排课
  · 晚上最后 1 节课不超过 21:00
  · 周末集中排课
━━━━━━━━━━━━━━━━━━━━━━━━━━━

五、周课表生成

5.1 课表模板

━━━━━━━━━━━━━━━━━━━━━━━━━━━
📅 周课表 · [本周日期范围]
━━━━━━━━━━━━━━━━━━━━━━━━━━━
        │ 周一   │ 周二   │ 周三   │ 周四   │ 周五   │ 周六   │ 周日
────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────
上午 9:00│ 化名A  │ 休息   │ 化名C  │ 化名A  │ 休息   │ 化名E  │ 化名B
上午 10:30│ 化名D │ 化名A  │ 化名F  │ 化名D  │ 化名C  │ 化名E  │ 化名G
────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────
下午 14:00│ 化名B  │ 化名D  │ 化名G  │ 休息   │ 化名F  │ 化名H  │ 化名A
下午 15:30│ 化名A  │ 化名E  │ 化名F  │ 化名C  │ 化名G  │ 化名H  │ 休息
────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────
晚上 19:00│ 化名E  │ 化名F  │ 化名A  │ 化名D  │ 化名H  │ 休息   │ 休息
晚上 20:30│ 化名G  │ 化名C  │ 化名B  │ 化名F  │ 化名H  │ 休息   │ 休息
━━━━━━━━━━━━━━━━━━━━━━━━━━━
■ 课时统计
  · 本周总课时:[N] 课时
  · 已排:[N] 课时
  · 空闲位:[N] 个
━━━━━━━━━━━━━━━━━━━━━━━━━━━

5.2 课表生成三步走

第 1 步:固定学员优先
  · 每周固定时间学员先排
  · 锁定本周的"硬骨架"

第 2 步:临时学员填空
  · 填空固定学员之间的空位
  · 优先安排学习节奏紧急的学员

第 3 步:留缓冲位
  · 留 1-2 个空位处理调课/补课
  · 不满课是健康的课表

六、冲突检测

6.1 冲突类型

■ 老师时间冲突
  · 同时段已排其他学员
  · 同时段是老师不可用时间

■ 学员时间冲突
  · 学员可用时间之外
  · 学员自己之前有别的安排

■ 课时包预警
  · 学员课时包不足
  · 学员课时包即将到期

6.2 冲突检测输出

━━━━━━━━━━━━━━━━━━━━━━━━━━━
⚠️ 冲突检测报告 · [排课请求]
━━━━━━━━━━━━━━━━━━━━━━━━━━━
■ 排课请求
  学员:化名 A
  时间:[日期] [时段]
  课时:[N] 分钟

■ 检测结果
  老师时间:□冲突 □可用
    · 冲突原因:[X]
  学员时间:□冲突 □可用
    · 冲突原因:[X]
  课时包:□正常 □预警
    · 剩余:[N] 课时
    · 到期:[日期]([N] 天后)

■ 建议
  · 若冲突:调整时间为 [X]
  · 若预警:提醒家长续费
━━━━━━━━━━━━━━━━━━━━━━━━━━━

七、补课/请假/调课三动作

7.1 请假

■ 学员请假
  操作:
    · 课时不扣(或按约定调整)
    · 记录请假原因和日期
    · 不自动补排(学员/家长后续约时间)

■ 登记模板
  ━━━━━━━━━━━━━━━━━━━━━━━━━━
  📝 请假登记
  学员:化名 A
  请假日期:[日期] [时段]
  请假原因:[X]
  课时处理:□不扣 □按半课时扣 □其他
  跟进:□家长主动约补课 □后续协调
  ━━━━━━━━━━━━━━━━━━━━━━━━━━

7.2 补课

■ 补课
  操作:
    · 排入老师可用时间
    · 课时按实际消耗扣
    · 标注"补课"便于复盘

■ 排课优先级
  · 同周补课 > 下周补课
  · 一次性排完 > 分散排
  · 学员节奏保持一致

■ 模板
  ━━━━━━━━━━━━━━━━━━━━━━━━━━
  📝 补课安排
  学员:化名 A(原 [日期] [时段] 请假)
  补课时间:[新日期] [新时段]
  标注:□补课 □加课
  ━━━━━━━━━━━━━━━━━━━━━━━━━━

7.3 调课

■ 调课(双方协商)
  操作:
    · 老师主动调:与学员/家长协商新时间
    · 学员/家长主动调:登记新时间
    · 双方都要确认

■ 调课登记
  ━━━━━━━━━━━━━━━━━━━━━━━━━━
  📝 调课登记
  学员:化名 A
  原时间:[日期] [时段]
  新时间:[日期] [时段]
  调课原因:[X]
  课时处理:□正常 □补课性质
  双方确认:□老师 □学员/家长
  ━━━━━━━━━━━━━━━━━━━━━━━━━━

⚠️ 调课原则:
  · 一周内完成调课,不留"待定"
  · 调课记录要可追溯
  · 频繁调课的学员需沟通原因

八、课时包台账

8.1 学员课时台账

━━━━━━━━━━━━━━━━━━━━━━━━━━━
💰 课时包台账 · [化名]
━━━━━━━━━━━━━━━━━━━━━━━━━━━
■ 课时包信息
  类型:[N 课时小包/中包/学期包]
  生效:[日期]
  到期:[日期]
  续费节点预警:[日期]([N] 天前)

■ 课时消耗
  初始:[N] 课时
  已消耗:[N] 课时
  剩余:[N] 课时([N]%)
  状态:□充足 □预警 □耗尽

■ 消耗历史
  · 课时 1([日期]):-1 → 剩余 [N]
  · 课时 2([日期]):-1 → 剩余 [N]
  · 课时 [N]([日期]):-1 → 剩余 [N]

■ 续费记录
  · 第 1 次续费:[日期] +[N] 课时
  · 第 2 次续费:[日期] +[N] 课时

■ 自动预警
  · 课时包剩 30%:提醒续费
  · 课时包剩 10%:紧急提醒
  · 课时包到期前 7 天:到期预警
━━━━━━━━━━━━━━━━━━━━━━━━━━━

8.2 课时包预警规则

■ 触发条件
  · 剩余 ≤ 30% 初始值(首次预警)
  · 剩余 ≤ 10% 初始值(紧急预警)
  · 到期前 7 天(到期预警)

■ 预警动作
  · 30% 预警:通知学员/家长(轻度)
  · 10% 预警:通知学员/家长(强提醒)
  · 到期预警:暂停排新课 + 通知

■ 写回 parent-communication
  · 触发续费沟通话术
  · 老师确认后发出

8.3 课时异常处理

■ 超课时上课
  · 自动透支允许:1 课时
  · 透支 > 1 课时:暂停排新课 + 沟通

■ 学员请假不补课
  · 课时不扣
  · 期末统一结算(如有约定)

■ 老师取消
  · 课时不扣
  · 自动补排或退款

九、特殊场景

9.1 寒暑假排课

■ 寒暑假特殊安排
  · 增加排课密度(每周 N+2 课时)
  · 提前 2 周确认学员时间
  · 寒暑假专属课时包

■ 节奏建议
  · 假期前 1 周:学期收尾 + 假期规划
  · 假期中:高频复习 + 预习
  · 假期后 1 周:节奏调整

9.2 考试期排课

■ 考前 2 周
  · 减少新课
  · 增加复习/测评
  · 学员优先完成学校作业

■ 考试期间
  · 暂停新课
  · 答疑 + 心理支持
  · 考后复盘

■ 考后 1 周
  · 复盘考试结果
  · 调整下阶段计划

9.3 学员请假多

■ 触发条件
  · 1 个月内请假 ≥ 3 次
  · 连续 2 周请假

■ 应对
  · 主动了解原因
  · 评估是否需要调整节奏
  · 考虑续费意愿

十、与上游/下游 SKILL 的协作

10.1 协作流图

              ┌────────────────────────┐
              │ xiaozhi-teach-         │
              │  student-intake        │
              │ (学员时间矩阵)       │
              └───────────┬────────────┘
                          │
                          ↓
              ┌────────────────────────┐
              │ xiaozhi-teach-         │
              │  schedule-manager      │
              │  (本 SKILL)           │
              └───────────┬────────────┘
                          │
        ┌─────────────────┼─────────────────┐
        ↓                 ↓                 ↓
  solo-dashboard     lesson-log         parent-communication
  (课表+台账)      (课时预扣)       (续费预警)
                          │
                          ↓
              ┌────────────────────────┐
              │ xiaozhi-teach-         │
              │  renewal-report        │
              │ (续费报告)           │
              └────────────────────────┘

10.2 接口

读:
  studentIntake.schedulePreference → 学员时间偏好
  soloDashboard.lessonHours         → 课时消耗
  lessonLog.consumedHours           → 实际消耗

写:
  scheduleManager.weeklyTable        → 周课表
  scheduleManager.conflictReport     → 冲突检测
  scheduleManager.lessonPackage      → 课时包台账
  scheduleManager.renewalWarning     → 续费预警
  → solo-dashboard 接收
  → parent-communication 接收

十一、字段级高敏信息防护

✅ 排课中可使用:化名、可上课时间、课时包信息
❌ 禁止:学员家庭住址、家长身份、精确学校班级
✅ 写回数据:周课表结构、课时包台账
❌ 不写回:学员真实姓名、家长联系方式

✅ 冲突检测:仅时间维度
❌ 不分析:学员家庭事务等高敏信息

十二、行为准则

✅ 应该做❌ 不能做
排课前先确认学员时间凭印象排课
冲突检测早发现冲突了再处理
课时台账实时更新课时不透明
补课请假有登记微信沟通完就忘
续费预警提前 7 天课时耗尽才提醒
写回数据脱敏公开课表暴露真实姓名

十三、与其他 SKILL 的协同清单

排课与课时管理
    <── xiaozhi-teach-student-intake(学员时间矩阵)
    <── xiaozhi-teach-solo-dashboard(学员基线)
    ──→ xiaozhi-teach-solo-dashboard(课表+台账)
    ──→ xiaozhi-teach-lesson-log(课时预扣)
    ──→ xiaozhi-teach-parent-communication(续费预警)
    ──→ xiaozhi-teach-renewal-report(续费报告)

禁止行为

  • 禁止 AI 替老师自动排课
  • 禁止擅自增加学员可上课时间
  • 禁止课时台账不透明
  • 禁止超课时上课不预警
  • 禁止公开课表暴露真实姓名

十四、参考资源

  • references/weekly-schedule-template.md — 周课表模板(待补)
  • references/lesson-package-ledger.md — 课时包台账模板(待补)
  • references/leave-makeup-rescheduling.md — 请假/补课/调课流程(待补)

🦞 小龙虾说: "独立教师最大的浪费不是没课可上, 是把时间花在'我不知道今天该上什么'。 排课不是排时间表, 是把你的人生从混乱中拯救出来。 当你的课表、课时、学员、续费都在一个地方清楚可见, 你才有时间去做真正重要的事——把课上好。"