当重庆新东方校区管理者要把小学素养班级明细整理为教师时段占档表,或回传人工修改课表要求按规则优先/模板优先重跑时使用。输出容量差额、冲突和待确认清单,支持主带课老师与可回退的本地规则覆盖;不用于自动排课或绕过硬约束。
教师排课占档规整是一项面向实际任务的技能,主要用于把教务系统的班级明细转换为校区主管可读、可筛选、可复核的课表;所有人数、容量、冲突选择和汇总均由脚本确定性计算;
它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
把教务系统的班级明细转换为校区主管可读、可筛选、可复核的课表。所有人数、容量、冲突选择和汇总均由脚本确定性计算。
满足以下任一入口时触发本 Skill:
.xlsx,要求查看教师各时段已排班、可排空段、班型供给或剩余容量。teacher-schedule-result.xlsx 人工修改后重新上传,要求比较关班、新开班、换教师、移动时段或计划新班。ready、needs_confirmation、blocked,或检查冲突、容量和模板差异。首次生成或重跑前必须确认三个条件:数据日期、校区/管理单元、原始班级明细。仅解释已有结果时可以只读取结果工作簿和 schedule-review.json,但不得据此重新计算。首次运行没有人工模板时固定采用 rule_first。如果任务是未来 12 个月教师/教室产能规划,应改用 xdf-plan-campus-capacity;如果任务是自动排课、直接修改教务系统、非小学课程或本 Skill 范围外的临时班型,不得调用本 Skill 伪造结果。
脚本按以下固定顺序处理,后一步不能绕过前一步:
blocked,只输出校验信息。授课教师只有一人时直接使用;有多人时必须采用唯一且属于授课教师列表的 主带课老师,否则进入待确认。rule_first 或 template_first 决定是否应用模板位置。两种模式使用同一份数据源、数据日期和校区范围重跑;切换的是“正式班与回传模板冲突时相信谁”,不是切换安全规则。
| 使用情形 | 选择 | 处理结果 |
|---|---|---|
| 首次运行,没有回传模板 | rule_first |
以教务快照和版本化规则生成基准课表 |
| 已回传模板,但只想核对人工改动 | rule_first |
正式班删班、换教师、换时段只进入模板对比/待确认;合规计划新班仍以 0 人纳入 |
| 已确认人工模板代表当前真实排课 | template_first |
对已回传季节应用合规正式班的保留、教师和时段;模板未出现的源班不入表 |
| 模板不完整、改动含义不确定或多人尚未确认 | rule_first |
保留教务结果,先补全确认再决定是否切换 |
调用方式:
--manual-template <人工修改后的课表.xlsx> --template-policy rule_first
--manual-template <人工修改后的课表.xlsx> --template-policy template_first
template_first 不能覆盖输入安全、支持年级/科目、标准课次、班号分类、容量、季节和计划新班语法。模式选择只对本次运行生效,不会自动写成永久业务规则。
计划新班不属于“教务正式班位置冲突”,因此合规的 新班ST3A 等在两种模式下都会以当前人数 0 纳入容量和冲突重算。若只是演练、不希望纳入计划新班,应从回传模板中移除该记录后再运行。
使用者可以下载第一版结果,在暑假/秋季课表中移动或删除正式班,并按约定写入计划新班,然后把文件重新上传给 AI。AI 必须按以下闭环处理:
新班... 记录,不把底色、批注或自由文本自动当成规则。新班ST3A 等才是计划新班;正式班移动表示教师或时段变更。rule_first,不得替使用者选择高风险的模板覆盖。template_first 被强制采用。模板对比、待确认 和 schedule-review.json,列明采用了哪些模板变更、移除了哪些源班以及哪些改动未应用。模板记录与业务规则必须分开:一次人工移动、删班或新班只影响相应回传季节和本次模板重跑,不会被 AI 暗中“学习”为通用规则。
规则分为三层,优先级和持久化方式不同:
| 层级 | 来源 | 变化形式 | 是否长期保留 |
|---|---|---|---|
| 初始规则 | config/teacher-schedule.json |
随开源版本更新并经过测试 | 是,作为恢复基准 |
| 模板记录 | 人工回传课表 | 合规计划新班在两种模式下纳入;template_first 另可覆盖对应季节正式班的保留、教师和时段 |
否;仅在后续继续传入该模板时生效 |
| 本地规则覆盖 | 使用者自然语言要求 | AI 先展示“旧值 → 新值”,再生成受限 JSON 补丁写入 Git 忽略目录 | 是;显式传入覆盖文件的后续运行持续生效,可一键恢复 |
AI 不直接修改初始配置,也不根据一次模板改动自行扩大规则。若使用者明确提出“以后思维一二年级最大班容都改为 17”,这属于本地规则覆盖;若只把某班从周六移到周日,这属于模板记录。说“恢复初始规则”时只清空本地覆盖并重跑,人工模板不会被改写。
.xlsx,不得提交到 Git。config/teacher-schedule.json,不得让模型猜列,也不得把自然语言覆盖直接写回该文件。python3 .agents/skills/xdf-normalize-teacher-schedule/scripts/normalize_schedule.py
--input <班级明细.xlsx>
--config config/teacher-schedule.json
--campus <完整校区名称>
--data-as-of YYYY-MM-DD
--output-dir <输出目录>
同一管理口径包含多个系统校区时,优先使用配置中的管理单元:
--campus-group 礼嘉管理单元
临时组合也可以重复提供 --campus <完整校区名称>。输出摘要必须同时展示管理口径和实际纳入的源校区名称。
若使用者在上次生成的课表中按约定写入计划新班,增加 --manual-template;暑假和秋季模板分开保存时可重复提供:
--manual-template <人工修改后的课表.xlsx>
人工模板必须执行三向对比:数据源新增、模板遗留、同班号教师/时间变更。只比较当前支持的 ST/BX/NL/SW,小学范围外编码不得制造陈旧班误报。
回传模板后必须显式选择开关并重新运行:
--template-policy rule_first
--template-policy template_first
rule_first(默认):教务数据与确定性规则优先,模板中的删班、换教师、换时段只提示差异。template_first:对已回传季节,模板中正式班的保留、教师和时段优先;未出现的源班不入表。安全、支持范围、课次、班号、容量和季节是硬约束,模板不能覆盖。schedule-review.json:ready:无异常,仍需使用者确认是否存在系统导出后的人工变化。needs_confirmation:已生成安全子集,但冲突、非标准课次或人工候选必须确认。blocked:输入安全、数据合同或唯一性失败;只解释校验问题,不输出正式课表和容量结论。AI 先把使用者的自然语言要求转换为最小 JSON 补丁,展示“旧值→新值”,然后只能通过受限管理脚本写入 Git 已忽略的本地覆盖:
python3 .agents/skills/xdf-normalize-teacher-schedule/scripts/manage_schedule_rules.py
--base config/teacher-schedule.json
--overlay data/local/teacher-schedule-rules/active-overrides.json
apply --patch <AI生成并校验的补丁.json> --request "<使用者原话>"
重跑课表时增加:
--rules-overlay data/local/teacher-schedule-rules/active-overrides.json
只允许覆盖校区组、标准课次、容量、时段/轮次、排除值和配色。源字段映射、安全、班号分类、冲突策略和计划新班语法不得由自然语言覆盖。
使用者说“恢复初始规则”、“回到初始规则”时,调用:
python3 .agents/skills/xdf-normalize-teacher-schedule/scripts/manage_schedule_rules.py
--base config/teacher-schedule.json
--overlay data/local/teacher-schedule-rules/active-overrides.json
restore --request "<使用者原话>"
初始规则始终保留在版本化配置中;恢复操作只清空本地覆盖,随后必须重跑并报告差异。基础配置哈希变化时阻断旧覆盖,不得静默迁移。
只识别带 新班 前缀的单元格:
新班ST3A新班SW3B新班NL3A新班BX3A新班NL1、新班NL2:低年级思维基础班型。新班NL1A、新班NL2A:低年级思维拔高班型。计划新班当前数量为 0,容量按科目和年级规则取得。其他 NL1/NL2 后缀进入待确认。
授课教师只有一人时直接入表;有多人时必须从 主带课老师取唯一且存在于授课教师列表的人选,否则进入待确认。template_first 开关应用;默认 rule_first 只做差异提示。teacher-schedule-result.xlsxschedule-review.json工作簿包含运行摘要、校验问题、排除记录、各季课表、容量总览、容量汇总、容量明细、排课冲突、待确认、模板对比和假设与版本。容量指标仅展示总容量、当前数量和差额。