核心功能
Roster Planner 是一款专为外勤销售团队设计的智能排班助手,通过解析 Google Forms 导出的 CSV 可用性数据,自动生成符合德国劳动法规的周班表(KW-JSON 格式)并推送至 GitHub 触发后续工作流。
显著优点
1. 自动化程度高:完整覆盖从 CSV 解析、日历周自动识别、员工状态校验到 JSON 生成的全流程,无需手动计算
2. 合规性强:内置青少年保护规则(isMinor 检测,最多 8 小时/天)、培训配对强制约束(untrained 员工必须与 canTrain 配对)、工时上限监控(maxHoursPerWeek)
3. 智能调度逻辑:支持培训优先级严格遵循(trainerPriority[0] 优先)、动态计算最优班次开始时间、车辆容量自动校验(每车 5 人含司机)
4. 多输出通道:支持纯 JSON 上传、Telegram PDF 预览、邮件群发三种发布模式
5. 员工生命周期管理:自动检测 CSV 中的新员并引导录入,支持员工状态变更(untrained → trained)
潜在局限
- 格式依赖性强:CSV 列头必须包含德式日期格式(如 "[Mo., 16.02.]"),非标准化输入需预处理
- Telegram 生态锁定:消息格式针对 Telegram 优化(禁用 Markdown 表格,强制使用 emoji 排版),迁移成本较高
- 无冲突自动解决:时间窗口冲突(如员工 15:30 才可用但班次 15:00 开始)会直接排除该员工,不会尝试协商调整
- 单地区法规适配:青少年保护规则基于德国《青年劳动保护法》,其他司法管辖区需自行调整
适合人群
- 10-50 人的外勤销售团队管理者
- 需要每周固定排班且员工可用性变动频繁的场景
- 已有 GitHub Actions 基础设施用于 PDF 生成和邮件发送的技术团队
- 重视劳动合规、需完整审计轨迹(JSON + Git 历史)的组织
常规风险
- 数据新鲜度风险:若未严格执行 Step 0(加载 employees.json),可能基于过期的员工状态(如某员工已获培训资格但系统仍为 untrained)做出错误配对
- 车辆可用性误判:CSV 中的 🚗 emoji 与 employees.json 的 hasCar 字段可能出现不一致,系统以 CSV 当日数据为准但缺乏冲突警告
- 敏感信息泄露:employees.json 包含员工邮箱、未成年状态等 PII,GitHub 仓库需设置为私有,且需确认 scripts/push-to-github.sh 不会记录完整 JSON 到日志
- 脚本执行权限:该 skill 要求执行本地 shell 脚本(./scripts/),若部署环境未严格隔离,存在命令注入风险(尽管参数经过转义)
- 工时累计误差:maxHoursPerWeek 校验基于当前排班,若员工在其他系统另有工时记录,可能产生超限