EduClaw 高级排课:掌握学术课表 - Openclaw Skills
作者:互联网
2026-04-17
什么是 EduClaw 高级排课系统?
EduClaw 高级排课是 EduClaw SIS 环境中一个精密且专业的子垂直领域,旨在处理现代学术排课所需的多元化逻辑。作为 Openclaw Skills 生态系统的核心组件,它允许管理员定义复杂的排课模式,包括传统式、走班制和轮转周期。该技能为管理整个排课生命周期提供了强大的框架,确保教师约束、教室容量和学生课程需求在统一系统中达到完美平衡。
通过利用此工具,开发人员可以自动检测 11 种不同的冲突类型,从关键的教师重复排课到软性偏好冲突。这确保了在发布主课表之前具备高水平的操作完整性。无论是管理小型私立学校还是大型大学部门,此技能都能为无误差的学术规划提供所需的精确度。
下载入口:https://github.com/openclaw/skills/tree/main/skills/mailnike/educlaw-scheduling
安装与下载
1. ClawHub CLI
从源直接安装技能的最快方式。
npx clawhub@latest install educlaw-scheduling
2. 手动安装
将技能文件夹复制到以下位置之一
全局模式~/.openclaw/skills/
工作区
/skills/
优先级:工作区 > 本地 > 内置
3. 提示词安装
将此提示词复制到 OpenClaw 即可自动安装。
请帮我使用 Clawhub 安装 educlaw-scheduling。如果尚未安装 Clawhub,请先安装(npm i -g clawhub)。
EduClaw 高级排课系统 应用场景
- 为中学设计复杂的 4x4 走班制或轮转 A/B 课表模式。
- 根据学生选课请求进行需求分析,以确定开班数量。
- 自动分配教室,同时考虑实验室设备或无障碍设施等特定功能。
- 在构建过程中识别并解决关键的教师冲突和合同违规行为。
- 在活跃学期期间管理应急教室调换和可用性。
- 通过创建排课模式、唯一的日期类型和特定的课钟时段来定义结构基础。
- 收集并批准课程请求,生成数据驱动的需求报告和单班分析。
- 通过将课程班级放置在特定的日期和时段槽位来构建主课表。
- 执行冲突引擎以识别 11 类排课问题,包括关键的重复排课和容量限制。
- 解决识别出的冲突并发布最终主课表,这将自动锁定注册期的数据。
EduClaw 高级排课系统 配置指南
要将此功能集成到您的环境中,请遵循以下 Openclaw Skills 安装步骤。确保您的系统路径中有 python3 可用。
# 1. 初始化本地数据库并验证技能状态
python3 init_db.py && python3 scripts/db_query.py --action status
# 2. 定义您的第一个排课模式(例如:传统 7 节课制)
python3 db_query.py --action add-schedule-pattern r
--name "Traditional 7-Period" --pattern-type traditional --cycle-days 1 --company-id
# 3. 为模式添加时段
python3 db_query.py --action add-bell-period r
--schedule-pattern-id --period-number 1 --period-name "Period 1" r
--start-time "08:00" --end-time "08:50" --duration-minutes 50
EduClaw 高级排课系统 数据架构与分类体系
该技能在结构化的 SQLite 数据库中组织数据,保持学术记录的高度关联完整性。
| 表名 | 用途 |
|---|---|
| educlaw_schedule_pattern | 存储学校教学日/周期的总体结构。 |
| educlaw_master_schedule | 特定学期课表的主要容器。 |
| educlaw_section_meeting | 将特定班级与时间和教室关联。 |
| educlaw_schedule_conflict | 跟踪检测到的问题、严重程度和解决记录。 |
| educlaw_instructor_constraint | 存储教职工可用性和偏好的硬性和软性规则。 |
name: educlaw-scheduling
display_name: EduClaw Advanced Scheduling
version: 1.0.0
description: >
Master scheduling, schedule patterns, conflict resolution, and room assignment
for K-12 and higher-education institutions. Sub-vertical of EduClaw SIS.
author: ERPForge
parent: educlaw
requires: [erpclaw, educlaw]
database: ~/.openclaw/erpclaw/data.sqlite
user-invocable: true
scripts:
- scripts/db_query.py
domains:
- schedule_patterns
- master_schedule
- conflict_resolution
- room_assignment
total_actions: 56
tables:
- educlaw_schedule_pattern
- educlaw_day_type
- educlaw_bell_period
- educlaw_master_schedule
- educlaw_section_meeting
- educlaw_course_request
- educlaw_schedule_conflict
- educlaw_room_booking
- educlaw_instructor_constraint
metadata: {"openclaw":{"type":"executable","install":{"post":"python3 init_db.py && python3 scripts/db_query.py --action status"},"requires":{"bins":["python3"],"env":[],"optionalEnv":[]},"os":["darwin","linux"]}}
EduClaw Advanced Scheduling
Advanced scheduling for K-12 and higher-education. Named schedule patterns, master schedule lifecycle, course request demand analysis, 11 conflict types, smart room assignment, and instructor constraints.
Quick Start
# 1. Define a schedule pattern
python3 db_query.py --action add-schedule-pattern r
--name "Traditional 7-Period" --pattern-type traditional --cycle-days 1 --company-id
python3 db_query.py --action add-day-type r
--schedule-pattern-id --code "MON-FRI" --name "Regular Day"
python3 db_query.py --action add-bell-period r
--schedule-pattern-id --period-number 1 --period-name "Period 1" r
--start-time "08:00" --end-time "08:50" --duration-minutes 50
python3 db_query.py --action activate-schedule-pattern --pattern-id
# 2. Build and publish master schedule
python3 db_query.py --action create-master-schedule r
--academic-term-id --schedule-pattern-id --name "Fall 2026" --company-id
python3 db_query.py --action add-section-meeting r
--master-schedule-id --section-id --day-type-id --bell-period-id
python3 db_query.py --action generate-conflict-check --master-schedule-id
python3 db_query.py --action submit-master-schedule --master-schedule-id
Tier 1 — Core Scheduling Workflow
add-schedule-pattern
Create a named, reusable schedule structure.
| Parameter | Required | Description |
|---|---|---|
--name |
? | Pattern name (e.g., "Traditional 7-Period") |
--pattern-type |
? | traditional, block_4x4, block_ab, trimester, rotating_drop, semester, custom |
--cycle-days |
? | Number of unique days in one cycle |
--company-id |
? | Company ID |
--description |
Human-readable description | |
--notes |
Internal notes | |
--total-periods-per-cycle |
Pre-computed total periods (informational) |
add-day-type
Add a named day type to a pattern (e.g., "Day A", "Day B").
| Parameter | Required | Description |
|---|---|---|
--schedule-pattern-id |
? | Parent pattern ID |
--code |
? | Short code (e.g., "A", "B", "MON") |
--name |
? | Display name |
--sort-order |
Display order (default: 0) |
add-bell-period
Add a named time slot to a pattern.
| Parameter | Required | Description |
|---|---|---|
--schedule-pattern-id |
? | Parent pattern ID |
--period-number |
? | Period identifier (e.g., "1", "Block A") |
--period-name |
? | Display name |
--start-time |
? | HH:MM |
--end-time |
? | HH:MM |
--duration-minutes |
? | Duration in minutes (> 0) |
--period-type |
class (default), break, lunch, homeroom, advisory, flex, passing | |
--sort-order |
Display order | |
--applies-to-day-types |
JSON array of day_type IDs; empty = all |
activate-schedule-pattern
Activate a pattern after defining its day types and bell periods. Required: --pattern-id
create-master-schedule
Create a master schedule container for an academic term.
| Parameter | Required | Description |
|---|---|---|
--academic-term-id |
? | Term (unique per term) |
--schedule-pattern-id |
? | Pattern defining days and periods |
--name |
? | Schedule name |
--company-id |
? | Company ID |
--build-notes |
Internal building notes |
add-section-meeting
Place a section into a specific day-type + period slot.
| Parameter | Required | Description |
|---|---|---|
--master-schedule-id |
? | Parent master schedule |
--section-id |
? | Section from educlaw_section |
--day-type-id |
? | Which day type |
--bell-period-id |
? | Which period |
--room-id |
Room assignment | |
--instructor-id |
Override section default | |
--meeting-type |
regular (default), lab, exam, field_trip, make_up | |
--meeting-mode |
in_person (default), hybrid, online |
generate-conflict-check
Run all 11 conflict categories for a master schedule. Required: --master-schedule-id
Types: instructor_double_booking (CRITICAL), room_double_booking (CRITICAL), student_conflict (HIGH), instructor_overload (HIGH), instructor_contract_violation (HIGH), capacity_exceeded (HIGH), singleton_overlap (HIGH), room_shortage (HIGH), room_type_mismatch (MEDIUM), credential_mismatch (MEDIUM), contact_hours_deficit (MEDIUM)
submit-master-schedule
Publish the master schedule (blocks if open CRITICAL conflicts exist). Required: --master-schedule-id. Opt: --published-by
Tier 2 — Schedule Patterns & Master Schedule
update-schedule-pattern Req: --pattern-id. Opt: --name, --description, --notes get-schedule-pattern Req: --pattern-id list-schedule-patterns Opt: --company-id, --pattern-type, --is-active, --search, --limit get-day-type-calendar Req: --pattern-id, --date-range-start, --date-range-end get-pattern-calendar Req: --pattern-id get-contact-hours Req: --pattern-id. Opt: --section-id, --master-schedule-id update-master-schedule Req: --master-schedule-id. Opt: --name, --build-notes, --schedule-status get-master-schedule Opt: --master-schedule-id, --naming-series list-master-schedules Opt: --company-id, --schedule-status, --academic-term-id add-section-to-schedule Req: --master-schedule-id, --section-id delete-section-meeting Req: --section-meeting-id list-section-meetings Req: --master-schedule-id. Opt: --section-id, --day-type-id, --instructor-id, --room-id get-schedule-matrix Req: --master-schedule-id update-schedule-lock Req: --master-schedule-id. Opt: --locked-by create-schedule-clone Req: --master-schedule-id, --target-academic-term-id. Opt: --name, --company-id
Tier 2 — Course Requests
activate-course-requests Req: --academic-term-id submit-course-request Req: --student-id, --academic-term-id, --course-id. Opt: --request-priority, --is-alternate, --alternate-for-course-id, --has-iep-flag, --prerequisite-override, --prerequisite-override-by, --prerequisite-override-note, --submitted-by, --company-id approve-course-requests Req: --academic-term-id, --approved-by. Opt: --course-id get-demand-report Req: --academic-term-id get-singleton-analysis Req: --academic-term-id. Opt: --min-requests get-course-demand-analysis Req: --academic-term-id get-fulfillment-report Opt: --master-schedule-id, --academic-term-id get-load-balance-report Req: --master-schedule-id update-course-request Req: --course-request-id. Opt: --request-priority, --is-alternate, --has-iep-flag get-course-request Req: --course-request-id list-course-requests Opt: --student-id, --academic-term-id, --course-id, --request-status complete-course-requests Req: --academic-term-id
Tier 2 — Conflict Resolution
list-conflicts Req: --master-schedule-id. Opt: --conflict-type, --severity, --conflict-status get-conflict Req: --conflict-id complete-conflict Req: --conflict-id, --resolution-notes. Opt: --resolved-by accept-conflict Req: --conflict-id (not CRITICAL). Opt: --resolution-notes, --resolved-by get-conflict-summary Req: --master-schedule-id get-singleton-conflict-map Req: --master-schedule-id get-student-conflict-report Req: --master-schedule-id
Tier 2 — Room Assignment
assign-room Req: --section-meeting-id, --room-id. Opt: --booking-type, --accessibility-required, --booked-by propose-room Req: --section-meeting-id. Opt: --room-type, --accessibility-required assign-rooms Req: --master-schedule-id. Opt: --room-type delete-room-assignment Opt: --section-meeting-id, --booking-id add-room-block Req: --room-id, --day-type-id, --bell-period-id, --booking-title. Opt: --booked-by, --booking-type update-room-swap Req: --section-meeting-id (A), --section-meeting-id-b (B) get-room-availability Req: --room-id, --master-schedule-id get-room-utilization-report Req: --master-schedule-id list-rooms-by-features Opt: --company-id, --room-type, --capacity, --building, --features (JSON) assign-room-emergency Req: --room-id, --target-room-id, --master-schedule-id
Tier 3 — Instructor Constraints
add-instructor-constraint Req: --instructor-id, --academic-term-id, --constraint-type (unavailable, preferred, max_periods_per_day, max_consecutive_periods, requires_prep_period, preferred_building). Opt: --day-type-id, --bell-period-id, --constraint-value, --constraint-notes, --priority (hard, soft, preference) update-instructor-constraint Req: --constraint-id. Opt: --constraint-value, --constraint-notes, --priority, --is-active list-instructor-constraints Opt: --instructor-id, --academic-term-id, --constraint-type, --is-active delete-instructor-constraint Req: --constraint-id
Lifecycle Rules
Master Schedule: draft → building → review → published → locked → archived. Cannot publish with open CRITICAL conflicts. All sections → scheduled and term → enrollment_open on publish. Course Request: draft → submitted → approved → scheduled / alternate_used / unfulfilled. Any → withdrawn. Conflict: open → resolving → resolved / accepted / superseded.
Workflows
- Pattern:
add-schedule-pattern → add-day-type (×N) → add-bell-period (×N) → activate-schedule-pattern - Demand:
activate-course-requests → submit-course-request (×N) → approve-course-requests → get-demand-report → complete-course-requests - Build:
create-master-schedule → add-section-to-schedule (×N) → add-section-meeting (×N) → assign-room OR assign-rooms → update-master-schedule (status=review) - Publish:
generate-conflict-check → get-conflict-summary → [complete-conflict|accept-conflict] (×N) → submit-master-schedule → update-schedule-lock - Emergency:
get-room-availability → assign-room-emergency → generate-conflict-check
相关推荐
专题
+ 收藏
+ 收藏
+ 收藏
+ 收藏
+ 收藏
+ 收藏
最新数据
相关文章
EdgeHDF5 Memory:持久化 HDF5 认知存储 - Openclaw Skills
Agentic Compass: 客观的 AI 自我反思工具 - Openclaw Skills
WED:AI 供应链安全研究演示 - Openclaw Skills
问候技能:个性化 AI 智能体欢迎词 - Openclaw Skills
Obsidian 知识库技能:AI 驱动的库管理 - Openclaw Skills
Playwright CLI:面向编程智能体的浏览器自动化 - Openclaw Skills
记忆技能:为 Openclaw Skills 提供持久化上下文
Didit 年龄估算:AI 人脸年龄验证 - Openclaw Skills
OpenClaw 浏览器自动化:CDP 与截图 - Openclaw Skills
Agora:多智能体并行推理委员会 - Openclaw Skills
AI精选
