# 5B config schema 實作前確認表

本文件承接 [5B config schema 邊界分析](phase-five-b-config-schema-boundary-analysis.md)。5B 會新增或擴充設定契約，因此本確認表必須在任何程式 repo 修改前完成。

## 0. 文件狀態

| 項目 | 內容 |
|---|---|
| 文件狀態 | 待確認 |
| 建立日期 | 2026-06-07 |
| 對應節點 | 第五階段 5B config schema |
| 程式 repo | `hs-device-control-template` |
| 程式 branch | `poc/nmodbus-tcp` |
| 程式基準 | `bc3f191` |
| 本文件是否授權程式修改 | 尚未；需等待使用者回覆七項皆同意 |

## 1. 實作前七項確認

| 編號 | 確認項 | 建議決策 |
|---|---|---|
| 1 | 實作範圍 | 同意 5B 只新增 `appsettings.json` 內 plugin / loader metadata 設定模型、驗證與 sample config，不改啟動方式。 |
| 2 | safe default | 同意 `PluginLoader.Enabled`、`AllowManualExternalDllVerification` 與 `AllowDisabledPluginReview` 預設皆採保守值，不會自動載入或執行 plugin。 |
| 3 | metadata-only | 同意 `Plugins` 第一版只保存 plugin id、顯示名稱、contract version、checksum、source summary、enabled、disabled reason 與 capabilities metadata。 |
| 4 | 敏感資訊停止線 | 同意 config 不得保存 secret、token、connection string、正式 IP、正式 port、正式帳號或真實 DLL 完整路徑。 |
| 5 | 相容性 | 同意既有不含 plugin 設定的 `appsettings.json` 必須維持可載入，避免破壞既有測試與 ConsoleHost。 |
| 6 | 測試與驗收 | 同意實作後至少執行 Core config tests、必要 Application tests、solution tests、停止線掃描、JSON / 文件污染字串掃描與 commit 前檢查。 |
| 7 | 排除項目 | 同意 5B 不做 DB audit、DB DDL、WebApi auth / Swagger、Windows Service、外部 DLL 載入、plugin folder 掃描或 Adapter public contract 變更。 |

## 2. 候選變更檔案

| 類型 | 候選檔案 |
|---|---|
| Config model | `src/HS.DeviceControl.Core/Configuration/AppSettingsConfig.cs` |
| Config validation | `src/HS.DeviceControl.Core/Configuration/ConfigValidator.cs` |
| Sample config | `samples/config/appsettings.json` |
| Config docs | `docs/config-schema.md` |
| Core tests | `tests/HS.DeviceControl.Core.Tests/ConfigValidatorTests.cs`、`tests/HS.DeviceControl.Core.Tests/ConfigLoaderTests.cs` |

`ConfigLoader.cs` 原則上不改讀檔清單，仍只載入 `devices.json`、`workflows.json` 與 `appsettings.json`。若實作時發現必須改讀檔方式，需停下重新確認。

## 3. 驗收條件

| 項目 | 驗收方式 |
|---|---|
| config schema | 新增欄位可反序列化，缺欄位與非法值有明確錯誤。 |
| 舊設定相容 | 不含 plugin 設定的 appsettings 仍可通過既有流程。 |
| 安全摘要 | source summary、checksum、version 欄位不得接受疑似敏感資訊。 |
| 停止線 | 不得新增外部載入 API、真實 DLL path、plugin folder scan、DB DDL、auth secret 或 Windows Service 安裝。 |
| 測試 | Core config tests 與 solution tests 通過。 |
| 文件 | README、config schema、status / progress 與 public 鏡像同步。 |

## 4. 建議回覆格式

若同意進入 5B 最小 config schema 程式實作，建議回覆：

```text
5B config schema 實作前確認：
1. 同意
2. 同意
3. 同意
4. 同意
5. 同意
6. 同意
7. 同意
```

## 5. 未確認前停止線

在使用者完成七項確認前，不得修改程式 repo，不得新增 config model，不得修改 sample config，不得建立 DB / auth / Windows Service 相關程式。
