Consistency Audit: rough-cut-scheduler / functional-spec

  • 修改文件rough-cut-scheduler.fp.md
  • 修改日期:2026-06-09
  • 編輯者:Alan
  • Diff 摘要:因 requirement 新增 #17(節拍點機台 eligibility),FS 引入「節拍點多機台(棋盤)+ eligibility」模型——UC A1(前置條件產能下沉機台×日、行為步驟加 eligible 機台佔用、預期結果輸出不含機台、例外路徑加 §RCS-FS-16§RCS-FS-19)、流程圖圖 1 加 eligibility 分支、新增 eligibility I/O 場景、新增 §RCS-FS-16§RCS-FS-19、覆蓋對照加 #17、待裁定加 Q6/Q7;§RCS-FS-18 於本輪 audit 中再介面化為 ResourceAllocationStrategy(default IdAscendingStrategy)。狀態改「待重新簽核」。
  • Audit 觸發時點:簽核前(FS 原已簽核、本次為 mid-stage edit,重新簽核前比對)

註:本次為 Path A(Stage 1 揭露 #17)觸發的 Stage 2 更新;因 FS 原已簽核,依專案慣例在重新簽核前跑本 audit。上游驅動文件 requirement/rough-cut-scheduler/index.md(含新 raw/2026-06-08-內部PO-節拍點資源適用性.md)走 A 路徑、本身不在此 audit。同次工作目錄另有兩處與本 feature 無關的改動,不納入本 audit:ooa/rough-cut-scheduler.md(僅一個 Map<...> 渲染 typo)、product-module-development-workflow.md(Stage 4 性質定義措辭釐清)。


上游一致性

項目狀態說明
Problem Statement 範圍Problem statement=「快速拉動的粗排引擎、評估交期、細排 input、避免單體」。eligibility 讓「交期評估」對受限零件更準(不被總產能高估),落在「評估交期」範圍內,未擴張 problem。
需求收斂結論範圍index.md 收斂結論(本次同步新增)「已定向」明列:eligibility 採 C 方案、產能下沉至資源(機台)×日、純機台硬綁延後、粗排不指派實際機台/時段。FS 的棋盤模型、機台×日內部記帳、不輸出機台、§RCS-FS-18 策略 default、硬綁延後(待裁定 Q7)逐項對齊,未自行拍板結論列為「仍待 Stage 2」的點。
Requirement 素材覆蓋主體被 #17/素材 #5 覆蓋。§RCS-FS-18 原為「固定機台序(id 小先)」這個 requirement 未明寫的具體 tie-break;經裁定(見下「需討論項目」)抽象為 ResourceAllocationStrategy 介面、本期 default=IdAscendingStrategy(=現行 id 小先行為、悲觀下界),MostConstrainedFirstStrategy 登記為 Stage 3 才實作。本期 scope 維持 #17「最佳化延後 Stage 3」,故收 ✅。
既有素材矛盾與 raw #5 原話(PartB 只能上 LA02、找符合製程-工作站的資源)一致。FS 把舊「節拍點一次只做一張單」重述為棋盤模型 N=1 的退化——此推翻由 #17 明文授權(多機台為新領域事實),非與既有素材矛盾。

需討論項目

⚠️ 集中於此,由人裁定。本輪已於 audit 過程裁定收口,留紀錄。

  1. §RCS-FS-18「固定機台序(id 小先)」是 requirement 未明寫的具體 tie-break,且此 tie-break 會左右受限零件的 LeanPlay/交期(非純內部記帳)——本期此 default 是否可接受?是否需回問 stakeholder?已裁定(2026-06-09,Alan):抽象為 ResourceAllocationStrategy 介面(與既有 LeadTimeStrategy 同模式、OCP),把「機制可插拔」與「本期出貨哪個策略」拆開。本期 default=IdAscendingStrategy(悲觀下界),MostConstrainedFirstStrategy(受限資源優先)介面已就位、實作延後 Stage 3。因 default=現行 id 小先行為,現有 I/O 範例與 validate 結果不變。本期 scope 與 #17 一致,收 ✅、不需回問 stakeholder。FS §RCS-FS-18 + 待裁定 Q6 已於本輪同步落地此語意。

矛盾項目

(無)


下游影響

下游文件受影響章節行動
domain-model.ooa.mdAvailableCapacityCapacitySlot(鍵=工作站×日)需更新
rough-cut-scheduler.ooa.mdCapacityOverlayWorkCenterDay 鍵、isAvailable=二元一次一單 D5需更新
rough-cut-scheduler.ooa.mdVSMNode/DataBox(需帶 eligible 機台集合)需更新
rough-cut-scheduler.ooa.md(新增)ResourceAllocationStrategy 介面 + IdAscendingStrategy default需更新
rough-cut-scheduler.ooa.md(新增)NoEligibleResourceError 例外(§RCS-FS-19需更新
rough-cut-scheduler.pseudo.md定錨/有限產能堆疊流程(對應圖 1)、產能鍵工作站×日需更新(§編號 append-only,新分支加新 §、不重編)
rough-cut-scheduler.pseudo.md§RCS-FS-18 策略 hook/§RCS-FS-19 例外分支覆蓋需重看
Code(.java無(Stage 5 尚未產生)

行動標籤定義見 workflow.md §步驟 5。下游更新由該階段的 partner skill 執行,本 audit 不開處方。

特別提示

  1. ooa/rough-cut-scheduler.md 本次 diff 僅含一個 Map<...> 渲染 typo;eligibility 的實質更新尚未進行,OOA 現為落後於 FS 的 stale 狀態(仍是工作站×日/一次一單)。此非 ❌(FS 對上游 requirement 一致;OOA 落後屬正常 cascade 待辦),但 reviewer 勿誤讀「OOA 被碰過」為「已對齊新 FS」。
  2. 產能鍵下沉觸及共用領域物件 ooa/domain-model.md,blast radius 溢出本 feature;更新時需一併檢視其他消費方與既有 audit/domain-model-2026-06-05-fs.md。requirement #17 已明標此下沉屬 Stage 3。

建議行動清單

  • 裁定 §RCS-FS-18 tie-break:介面化 ResourceAllocationStrategy、default IdAscendingStrategyMostConstrainedFirst 延後 Stage 3(⚠️1,已收 ✅)
  • §RCS-FS-18 介面化語意落地 FS(§RCS-FS-18 邊界條件列 + 待裁定 Q6)
  • Reviewer 重新簽核 rough-cut-scheduler.fp.md,並把頂部「狀態」改回「已簽核」
  • 開 object-oriented-analysis-partner 更新 domain-model.ooa.md:產能鍵工作站×日 → 資源(機台)×日
  • 開 object-oriented-analysis-partner 更新 rough-cut-scheduler.ooa.mdCapacityOverlay 支援 N 台並行 + eligible 子集、VSMNode 帶 eligible 機台集合、新增 ResourceAllocationStrategyIdAscendingStrategy、新增 NoEligibleResourceError
  • 開 pseudo-code-partner 更新 rough-cut-scheduler.pseudo.md:append 新 § 涵蓋 §RCS-FS-16~§RCS-FS-19 分支、產能扣減下沉機台×日(勿重編既有 §)

統計

  • ✅ 4 | ⚠️ 1(已裁定收 ✅) | ❌ 0
  • 下游受影響點:6 需更新 + 1 需重看(橫跨 ooa/domain-model.mdooa/rough-cut-scheduler.mdpseudo-code/rough-cut-scheduler.md);Code 無
  • 簽核擋判定:不擋(❌ = 0)

簽核

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

❌ 項目未處理前,本 audit 不應該簽核通過(本輪 ❌ = 0)。 上游階段文件(functional-spec/rough-cut-scheduler.md)的 Exit Gate 重新簽核應在本 audit 確認後進行;下游 cascade(OOA/pseudo-code)於 FS 重新簽核後再開對應 partner skill。