# 4E 後續功能節點決策確認表

本文件承接 [第四階段後續功能節點切分表](phase-four-post-minimal-capability-split-plan.md)，用來讓使用者確認 Loader、外部 DLL、config schema、DB audit、WebApi auth / Swagger、Windows Service 與 5F 整合驗收的後續推進順序。

本表不是程式實作授權。完成本表確認後，下一步只會進入 5A PluginLoader 實作前確認；仍不得直接修改 Loader、DLL、DB、auth、Windows Service 或正式部署設定。

## 0. 文件狀態

| 項目 | 內容 |
|---|---|
| 文件狀態 | 已確認 |
| 建立日期 | 2026-06-07 |
| 確認日期 | 2026-06-07 |
| 承接基準 | 第四階段最小範圍已完成線上驗收，後續功能節點切分表已建立 |
| 程式 repo 基準 | `a8b522b` main 已合併 `poc/nmodbus-tcp`；4D 功能基準為 `6f34bb9` |
| 本文件目的 | 固定 4E 到 5F 的分段順序、停止線與下一步入口 |
| 使用者確認 | 七項皆同意 |
| 確認後進入 | [5A PluginLoader 實作前確認表](phase-five-a-pluginloader-preimplementation-checklist.md) |
| 是否啟用程式修改 | 否 |

## 1. 決策確認表

| 編號 | 決策項目 | 建議 | 同意後後續動作 | 不同意時需補充 |
|---|---|---|---|---|
| 1 | 是否先做 4E 後續節點決策確認 | 已同意 | 先固定 4E 到 5F 順序，不直接寫程式 | 需指定要先處理哪一個功能與原因 |
| 2 | 第一個程式節點是否從 5A PluginLoader 開始 | 已同意 | 建立 5A PluginLoader 實作前確認表 | 需說明是否要改從 config、DB、WebApi 或 Windows Service 開始 |
| 3 | 外部 DLL 是否獨立 manual-only 驗證 | 已同意 | 5A 後段或 5F 才規劃測試 DLL、隔離資料夾與 trust policy 驗證 | 需說明是否允許 CI 載入 DLL、允許來源與安全限制 |
| 4 | config schema 是否等 Loader contract 穩定後再改 | 已同意 | 5B 再整理 plugin path、enable flag、trust policy、service install 與 auth 非敏感欄位 | 需先定義哪些 config 欄位可立即成為正式契約 |
| 5 | DB audit 是否獨立成 DB 安全節點 | 已同意 | 5C 才整理 audit 欄位、DDL gate、write/read/cleanup 與 rollback | 需補充是否要提早建立 audit table 或正式 DDL |
| 6 | auth / Swagger 是否獨立成 WebApi 安全節點 | 已同意 | 5D 才確認角色、token、Swagger 可見性與部署環境 | 需補充 auth 方式、角色模型、secret 管理與 Swagger 開放範圍 |
| 7 | Windows Service 是否獨立成正式部署節點 | 已同意 | 5E 才確認 service account、install / uninstall、start / stop、recovery 與 log path | 需補充是否已有正式機器、服務帳號與部署權限 |

## 2. 同意後的執行順序

1. 完成 4E 七項決策確認。
2. 建立 5A PluginLoader 實作前確認表。
3. 在 5A 確認後，才評估是否修改程式 repo。
4. 5A 先做最小 Loader / metadata validation / 錯誤隔離，不直接載入未知外部 DLL。
5. 5A contract 穩定後，再進入 5B config schema。
6. audit event 與欄位穩定後，再進入 5C DB audit table。
7. WebApi 正式安全模型與 ServiceHost 正式部署，分別留在 5D 與 5E。
8. 5A 到 5E 各自通過後，才進入 5F 整合驗收。

## 3. 停止線

| 類別 | 停止線 |
|---|---|
| Loader | 未確認前不得新增或修改 `IPluginLoader` public contract，不得掃描正式 plugin folder |
| 外部 DLL | 未確認 trust model、checksum / signature、來源白名單與隔離策略前，不得載入未知 DLL |
| config | 未確認欄位語意前，不得把 plugin、auth、service install 欄位寫成正式 schema |
| DB | 未確認 DDL、ALTER TABLE、rollback、測試 DB gate 前，不得執行正式 Apply |
| auth / Swagger | 未確認角色、token、secret 管理與部署環境前，不得導入套件或公開 Swagger |
| Windows Service | 未確認服務帳號、log path、recovery 與部署權限前，不得改正式啟動方式 |
| 整合驗收 | 5A 到 5E 未各自完成前，不做 5F 全整合驗收 |

## 4. 建議使用者回覆格式

```text
4E 決策確認：
1. 同意
2. 同意
3. 同意
4. 同意
5. 同意
6. 同意
7. 同意
```

若任一項不同意，請在該項後面補充想調整的順序、範圍或限制。

## 5. 結論

建議七項皆同意。這樣可以把後續功能推進順序固定為 4E 決策確認、5A PluginLoader、5B config schema、5C DB audit、5D WebApi auth / Swagger、5E Windows Service、5F 整合驗收，並避免一次跨越多個高風險邊界。

## 6. 建議下一步

4E 七項決策已確認。下一步請使用者確認 [5A PluginLoader 實作前確認表](phase-five-a-pluginloader-preimplementation-checklist.md) 的七項決策；確認後，才進入程式 repo 唯讀結構檢查與 5A 最小 PluginLoader 實作評估。
