3D contract 決策確認表
本文件承接 3D contract 草案 / 實作前確認表,將進入「3D 程式 repo 結構檢查與實作前確認」前需要使用者確認的七項決策整理成獨立確認表。
本文件只做決策確認,不代表已同意修改程式、新增專案、載入外部 DLL、新增 Plugin Loader、修改 IDeviceAdapter public contract、導入 plugin / queue 套件、修改 config schema、新增 ServiceHost / WebApi、執行 DB DDL 或接真實硬體。
1. 確認狀態
| 項目 | 內容 |
| 文件狀態 | 已確認 |
| 整理日期 | 2026-06-05 |
| 確認日期 | 2026-06-05 |
| 對應階段 | 第三階段 3D Plugin / 多設備單元 |
| 前置文件 | 3D contract 草案 / 實作前確認表 |
| 本次目標 | 取得 3D contract 進入程式 repo 結構檢查前的七項決策確認 |
| 本次不做 | 不改程式、不新增專案、不載入 DLL、不新增 Plugin Loader、不改 Adapter contract、不改 config schema、不新增 ServiceHost / WebApi |
| 確認結果 | 使用者已回覆 1 至 7 全部同意 |
| 確認後可進入 | 3D 完成稽核、文件 repo stage / commit / push 與部署查驗;後續若進入程式 repo 仍限於另行確認後的唯讀盤點 |
2. 七項決策確認表
| 編號 | 決策項 | 建議定案 | 同意後可進入 | 停止線 | 確認結果 |
| 1 | 多設備單元 contract | 以 ControlUnitId / StationId / DeviceId / ResourceKey 作為第一版 DTO 命名基礎。 | 可唯讀盤點 Application 專案是否適合承接 Control Unit DTO。 | 不立即修改 config schema。 | 同意 |
| 2 | Resource Lock contract | 第一版候選放在 Application 層,先做 request / result / fake 邊界。 | 可唯讀盤點 lock service / DTO 的程式候選位置。 | 不新增 DB table、不導入分散式鎖。 | 同意 |
| 3 | Command Queue contract | 第一版候選放在 Application 層,先做 in-memory / fake contract。 | 可唯讀盤點 enqueue / status / cancel contract 與測試策略。 | 不導入 queue 套件、不改啟動方式。 | 同意 |
| 4 | Plugin metadata contract | 第一版只做 metadata / manifest DTO 候選。 | 可唯讀盤點 plugin id、version、capability、checksum 與相容性欄位位置。 | 不建立 Loader、不掃描 DLL、不載入 DLL。 | 同意 |
| 5 | Adapter contract 穩定性 | 維持 IDeviceAdapter public contract 不變,後續若需要 plugin adapter 先用 wrapper / factory 映射。 | 可降低對既有 Mock / Modbus Adapter 的破壞風險。 | 未確認前不新增或改動 Adapter public method。 | 同意 |
| 6 | 測試策略 | 第一版只做 Application.Tests 的 DTO / fake / in-memory 測試。 | 可整理不連 DB、不載入 DLL、不接硬體的測試範圍。 | 不跑真實硬體、不連正式 DB、不執行 DDL。 | 同意 |
| 7 | 3D 停止線 | 未再次確認前不改 config schema、不新增 ServiceHost / WebApi、不改 route、不保存敏感資訊。 | 可保留 3D contract 為安全、可回退的前置節點。 | 不保存密碼、Token、IP、Port、完整 connection string。 | 同意 |
3. 使用者回覆紀錄
3D contract 確認:
1. 同意
2. 同意
3. 同意
4. 同意
5. 同意
6. 同意
7. 同意
4. 確認後的可執行下一步
七項已同意後,本節點可先進入 3D 完成稽核、必要文件同步、文件 repo stage / commit / push 與部署查驗。若後續要進入「3D 程式 repo 結構檢查與實作前確認」,範圍仍需限於唯讀盤點,不直接修改程式。
5. 仍需停止的項目
- 不新增程式檔案。
- 不新增或修改 solution / project。
- 不載入外部 DLL。
- 不掃描 plugin 目錄。
- 不新增 Plugin Loader 程式。
- 不新增或更換 plugin framework、queue framework、DI / Host framework。
- 不修改
IDeviceAdapter、Core、Adapters、Infrastructure public method 簽章。 - 不修改既有 config schema 或啟動方式。
- 不新增 ServiceHost / WebApi 專案。
- 不新增 API route、controller、endpoint 或 middleware。
- 不執行 DB 寫入、DDL、ALTER TABLE 或正式 Apply。
- 不保存密碼、Token、IP、Port、完整 connection string、正式 DLL 路徑或正式環境資訊。
6. 建議下一步
七項決策已確認。建議先完成本次文件 repo stage / commit / push 與部署查驗;後續如需進入 3D 程式 repo 結構檢查,仍需遵守本文件第 5 節停止線。