Consistency Audit: rough-cut-scheduler / pseudo-code(共演化,含 OOA 回填)

  • 修改文件
  • 修改日期:2026-06-08
  • 編輯者:____(編輯者填)
  • Diff 摘要:新建粗排引擎虛擬碼(§0–§6),並回填 OOA 10 項共演化決策(compute/assign 改回傳值、CapacityOverlay 二元可用/區間佔用/鍵控、DayRange VO、VSM 導航語意),OOA 步驟 3 SOLID + 設計模式收尾。
  • Audit 觸發時點:簽核前
  • 範圍說明:本輪為緊耦合共演化,合併呈現但分標範圍——§3c(pseudo↔functional-spec)與 §3b(OOA↔functional-spec)。

上游一致性

項目範圍狀態說明
流程對應 Use Case§3cUC A1 由 pseudo §1–§6 完整覆蓋;UC A2(細排取用)屬輸出消費,由 §1.1.6 RoughScheduleResult 契約服務,無需專屬演算法流程
分支完整 B1~B15§3c15 條全有對應或正確落在範圍外。B1→§2.1.1、B2→§3.2、B3→§4.1、B6→§6、B7→§4.1 理由、B8→§1.1.1、B9→§1.1.2/§3.1、B11→§2.2、B12→§1.1.3+§5.1、B13→§4.1、B15→§2.4;B4/B5 初期不支援、B10 已廢棄、B14 不集批
新增分支 (a)§3c⚠️§6.4 FixedDays 新增 MissingFixedLeadTimeException,functional-spec 未明列;屬本期未啟用的方案 3、對應 FS #9「固定天數如何給未定」
新增分支 (b)§3c⚠️§6.2 minutes=0 → 0 天(不保底),functional-spec 未涵蓋 qty=0;pseudo 已標設計理由
Model 服務所有 UC§3b回填僅改簽名(C 案)/加導航/加產能方法,仍完整服務 UC A1/A2
引入未提概念§3bDayRange/isAvailable/lastNode/allNodes/導航語意 皆純技術抽象,無新增業務概念
共用模型變更§3b⚠️domain-model(跨 feature 共用)VSMlastNode/allNodes+導航語意;目前僅粗排消費,未來其他 feature 消費 VSM 導航需注意語意
DayRange 表述對齊§3c(本輪已修)pseudo §2.1.3/§2.3 改回傳 DayRange、並列入 §0 名詞表,與 OOA DayRange VO 一致
WorkCenterDay 鍵定義§3b(本輪已修)OOA 子圖 C note 補「WorkCenterDay=工作站×日複合鍵」

需討論項目

⚠️ 集中於此,由人裁定。皆不擋簽核。

  1. §6.4 FixedDaysMissingFixedLeadTimeException 是否回 functional-spec 補一條邊界,或留待 #9「固定天數如何給」釐清?(方案 3 本期未啟用)
  2. §6.2 minutes=0 → 0 天(不保底)是否回 functional-spec 補 qty=0 邊界,或維持「qty>0」前提留實作?
  3. domain-model(共用)VSM 導航語意(遞移+拓樸序)擴充,未來其他 feature 消費 VSM 導航時,是否需在共用模型統一契約?目前僅粗排消費。

裁定(2026-06-08)

  • ⚠️1 → 留待 #9(不改 functional-spec;pseudo §6.4 已標 #9 殘留)
  • ⚠️2 → 維持 qty>0 前提、留實作(不改 functional-spec;pseudo §6.2 設計理由已載)
  • ⚠️3 → 要共用domain-model VSM 導航升為 Published Language 共用契約(已套用:子圖 C note 改共用契約措辭、設計決策新增 2026-06-08 已拍板項)

矛盾項目

❌ 必須處理才能簽核。

(無)


下游影響

下游文件受影響章節行動
(Stage 5 Code)尚未開始,無 .java 在 Javadoc 引用 §X.Y.Z → 無引用失效
rough-cut-scheduler.pseudo.md全 §(對應實作引用 OOA class/method)需重看(已完成):與回填後 OOA 一致,見下方「回填 drift 覆驗」

下游 Stage 5 尚未開始;OOA↔pseudo 為同輪共演化、已對齊,無額外受影響更新點。

回填 drift 覆驗(10 項)

#回填項OOA 現況pseudo 對應狀態
1LeanPlayCalculator.compute 回傳 map子圖 A Map~OperationCoordinate, LocalDate~§2.1
2LsdCalculator.compute 回傳 map子圖 A 同上§4.1
3SequenceAssigner.assign 回傳 map子圖 A Map~…, int~§5.1
4WorkingNode 取消不存在不存在
5base(FREEZE) 邊界註記子圖 C note§1.1.2/§3.1
6VSM.lastNode()domain-model 子圖 A§2.1.1
7VSM 導航遞移+拓樸 / allNodesdomain-model 子圖 A + note§2.2/2.4/2.5/4.1
8occupy 連續日區間子圖 C occupy(wc, startDay, endDay, occupier)§3.3
9inRun 鍵控 WorkCenterDay子圖 C Map~WorkCenterDay, List~Occupation~~§3.1/3.3/3.4
10isAvailable + effectiveRemaining子圖 C 方法+note§3.1/3.4

10 項 drift 全數消解 ✅。


建議行動清單

  • DayRange 表述對齊(pseudo §2.1.3/§2.3 + §0;本輪完成)
  • WorkCenterDay 複合鍵註記(OOA 子圖 C;本輪完成)
  • 裁定 ⚠️1:留待 #9(不改 functional-spec)
  • 裁定 ⚠️2:維持 qty>0 前提、留實作(不改 functional-spec)
  • 裁定 ⚠️3:要共用 → domain-model VSM 導航升為 Published Language 共用契約(已套用)
  • 簽核 ooa/rough-cut-scheduler.md(步驟 1–3)、ooa/domain-model.mdpseudo-code/rough-cut-scheduler.md 三份(⚠️ 全裁定、❌ = 0,可進行)

統計

  • ✅ 6 | ⚠️ 3 | ❌ 0
  • 下游受影響點:0(Stage 5 尚未開始;OOA↔pseudo 同輪已對齊)
  • 回填 drift:10 / 10 消解
  • 簽核擋判定:不擋(❌ = 0)

簽核

  • 編輯者已跑過 audit:____ / 日期 ____
  • AI 產出 Impact Report:consistency-audit skill / 2026-06-08
  • Reviewer 確認:____ / 日期 ____

❌ 項目未處理前,本 audit 不應簽核通過(本次 ❌ = 0)。 上游階段文件(被改的三份)的 Exit Gate 簽核,建議待 ⚠️ 裁定後一併進行。