整理周报45 min · 中负荷
← 回到冰箱
Personal Systems · DEMO
工作时间规划器
把一组预设待办排进时间轴,展示历史估时、任务拆分、休息与缓冲如何共同影响日计划。
每个人都以为自己一天能干完 6 件事
把今天排满试试
09:00–18:00午休不可占用 · 预留意外
把任务排进今天。按钮是拖拽的等效键盘路径;排得越满,不代表越可能完成。
分析样本数据90 min · 高负荷
回复协作消息30 min · 低负荷
完善工具文档60 min · 中负荷
复盘上周投放75 min · 高负荷
处理报销20 min · 低负荷
12:00–13:00 午休 · 不可占用
把任务拖到这里,或使用“排入下一个空档”
已排 0 项 · 剩余容量 7h 0m · 机动缓冲 45m
打开透明层:查看判断依据与源码
完整处理顺序
01
day = load_json('examples/day.json')# 读取任务、容量和缓冲规则02
window = validate_work_window(day.start, day.capacity)# 确认工作窗口与可用分钟数03
capacity = day.capacity - day.buffer# 先预留机动时间,不把一天排满04
history = load_duration_history(day.tasks)# 读取已有任务耗时记录05
tasks = estimate_from_history(day.tasks)# 优先采用历史中位耗时06
tasks = fallback_missing_estimates(tasks, default=30)# 样本不足时使用明确默认值07
tasks = split_long_tasks(tasks, max_minutes=60)# 长任务拆成可完成的专注块08
tasks = attach_energy_cost(tasks)# 标记 high、medium 与 low 负荷09
tasks = sort_by_energy(tasks)# 高认知任务优先进入上午10
timeline = create_empty_timeline(window)# 建立尚未排满的时间轴11
for task in tasks:# 按剩余容量依次放入时间轴12
if task.minutes > capacity: backlog(task)# 装不下时明确延期,不挤占缓冲13
else: schedule(task, break_after=15)# 每个专注块后保留恢复时间14
insert_lunch_boundary(timeline)# 午休保持为不可占用边界15
compact_adjacent_breaks(timeline)# 整理连续空档但不吞掉缓冲16
assert reserved_buffer == 45# 确认机动时间仍然存在17
write_json('output/day-plan.json', timeline)# 输出时间块与 backlog