2.7 KiB
2.7 KiB
计划时间与阶段日历工时
适用于【交付】/【分析】/【设计】统一口径。
用途
| 对象 | 计划开始→计划完成 |
|---|---|
| 【交付】 | 需求开工→上线全周期(本 Skill 不写交付计划完成;上线由后续段) |
| 【分析】 | 分析阶段时长 |
| 【设计】 | 设计阶段时长 |
计划开始(不可篡改)
| 对象 | 首次写入 | 之后 |
|---|---|---|
| 【交付】 | 首次进入分析中且字段为空 → 当日 | 禁止覆盖 |
| 【分析】 | 首次创建且为空 → 当日 | 禁止覆盖 |
| 【设计】 | 首次创建且为空 → 当日 | 禁止覆盖 |
日期写入形态:中国时区正午 epoch ms 字符串,见 ../assets/runtime-ids.json fields.plan_start。
计划完成
| 环节 | 写计划完成的对象 |
|---|---|
| 推进到设计中 | 【分析】= 状态更新日 |
| 推进到设计完成 | 【设计】= 状态更新日 |
| 无单快轨建设计 | 【设计】= 当日(同轮收口) |
| 编号直推收口 | 口令涉及的分析/设计若计划完成为空 → 当日 |
| 上线/关闭 | 【交付】计划完成(本 Skill 暂不写) |
预计工时 = 阶段日历工时(Lead Time)
有计划完成且已有计划开始时,写入该对象云效「预计工时」:
workdays = 0
从计划开始日到计划完成日(含首尾)逐日:
周六或周日 → 跳过(除非该日是调休补班)
法定放假日 → 跳过
调休补班日(含周末上班)→ 计入
其余周一~周五 → 计入
预计工时(小时) = workdays × 8
禁止用「(结束日 − 开始日 + 1)× 8」日历天数算法。
语义与脚注(强制)
- 正式名称:阶段日历工时,不是投入人天/排期负荷。
- 任务描述末尾固定脚注:
【系统】预计工时=阶段日历工时(工作日×8),非人力投入预估 - 回报写「阶段日历工时 Hh」,禁止写「需投入 Hh」。
- 本 Skill 不自动写「人力投入预估」。
日历数据源
- 使用 ../assets/cn-workday-calendar.json(按自然年;跨年须覆盖起止两侧年份)。
- 缺当年日历 → 停下提示补日历;禁止静默按「仅去周末」算完并报成功。
- 计算脚本:../scripts/workday_hours.py
python3 scripts/workday_hours.py 2026-03-06 2026-03-09
缺计划开始则只写结束、不推工时,回报提示。
示例
- 开始=周五、结束=下周一(无节假日)→ 五+一 → 16h
- 区间全在法定放假内 → 0h
- 某周日为调休补班且落在区间内 → 该日计入 8h