Consistency Audit: rough-cut-scheduler / pseudo-code(共演化,含 OOA 回填)
- 修改文件:
- rough-cut-scheduler.pseudo.md(Stage 4,新建)
- rough-cut-scheduler.ooa.md(Stage 3 回填:步驟 3 SOLID 收尾 + 簽名改 C 案)
- domain-model.ooa.md(Stage 3 共用模型:VSM
lastNode/allNodes/導航語意)
- 修改日期:2026-06-08
- 編輯者:____(編輯者填)
- Diff 摘要:新建粗排引擎虛擬碼(§0–§6),並回填 OOA 10 項共演化決策(compute/assign 改回傳值、
CapacityOverlay二元可用/區間佔用/鍵控、DayRangeVO、VSM 導航語意),OOA 步驟 3 SOLID + 設計模式收尾。 - Audit 觸發時點:簽核前
- 範圍說明:本輪為緊耦合共演化,合併呈現但分標範圍——§3c(pseudo↔functional-spec)與 §3b(OOA↔functional-spec)。
上游一致性
| 項目 | 範圍 | 狀態 | 說明 |
|---|---|---|---|
| 流程對應 Use Case | §3c | ✅ | UC A1 由 pseudo §1–§6 完整覆蓋;UC A2(細排取用)屬輸出消費,由 §1.1.6 RoughScheduleResult 契約服務,無需專屬演算法流程 |
| 分支完整 B1~B15 | §3c | ✅ | 15 條全有對應或正確落在範圍外。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 |
| 引入未提概念 | §3b | ✅ | DayRange/isAvailable/lastNode/allNodes/導航語意 皆純技術抽象,無新增業務概念 |
| 共用模型變更 | §3b | ⚠️ | domain-model(跨 feature 共用)VSM 加 lastNode/allNodes+導航語意;目前僅粗排消費,未來其他 feature 消費 VSM 導航需注意語意 |
DayRange 表述對齊 | §3c | ✅ | (本輪已修)pseudo §2.1.3/§2.3 改回傳 DayRange、並列入 §0 名詞表,與 OOA DayRange VO 一致 |
WorkCenterDay 鍵定義 | §3b | ✅ | (本輪已修)OOA 子圖 C note 補「WorkCenterDay=工作站×日複合鍵」 |
需討論項目
⚠️ 集中於此,由人裁定。皆不擋簽核。
- §6.4
FixedDays的MissingFixedLeadTimeException是否回 functional-spec 補一條邊界,或留待 #9「固定天數如何給」釐清?(方案 3 本期未啟用) - §6.2
minutes=0 → 0 天(不保底)是否回 functional-spec 補 qty=0 邊界,或維持「qty>0」前提留實作? 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-modelVSM 導航升為 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 對應 | 狀態 |
|---|---|---|---|---|
| 1 | LeanPlayCalculator.compute 回傳 map | 子圖 A Map~OperationCoordinate, LocalDate~ | §2.1 | ✅ |
| 2 | LsdCalculator.compute 回傳 map | 子圖 A 同上 | §4.1 | ✅ |
| 3 | SequenceAssigner.assign 回傳 map | 子圖 A Map~…, int~ | §5.1 | ✅ |
| 4 | 不存在 | 不存在 | ✅ | |
| 5 | base(FREEZE) 邊界註記 | 子圖 C note | §1.1.2/§3.1 | ✅ |
| 6 | VSM.lastNode() | domain-model 子圖 A | §2.1.1 | ✅ |
| 7 | VSM 導航遞移+拓樸 / allNodes | domain-model 子圖 A + note | §2.2/2.4/2.5/4.1 | ✅ |
| 8 | occupy 連續日區間 | 子圖 C occupy(wc, startDay, endDay, occupier) | §3.3 | ✅ |
| 9 | inRun 鍵控 WorkCenterDay | 子圖 C Map~WorkCenterDay, List~Occupation~~ | §3.1/3.3/3.4 | ✅ |
| 10 | isAvailable + 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-modelVSM 導航升為 Published Language 共用契約(已套用) - 簽核
ooa/rough-cut-scheduler.md(步驟 1–3)、ooa/domain-model.md、pseudo-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 簽核,建議待 ⚠️ 裁定後一併進行。