本文件承接外部 DLL manual-only 七項邊界確認,先做程式 repo 唯讀盤點與實作前範圍收斂。此文件不修改程式 repo,不載入 DLL,不掃描 plugin folder。
0. 文件狀態
| 項目 | 內容 |
|---|---|
| 文件狀態 | 已確認 |
| 建立日期 | 2026-06-07 |
| 確認日期 | 2026-06-07 |
| 使用者回覆 | 7 項皆同意 |
| 前置確認 | 外部 DLL manual-only 邊界確認 7 項皆同意 |
| 程式 repo | hs-device-control-template / poc/nmodbus-tcp |
| 程式 commit | 9e7302a |
| 工作樹 | 檢查時乾淨 |
1. 唯讀結構檢查結果
| 檔案或區域 | 目前狀態 | 判斷 |
|---|---|---|
IPluginLoader | 只有 metadata 驗證入口。 | 可作為前置 gate,不應直接改成真實 DLL 載入入口。 |
PluginLoadRequest | 已包含 plugin id、contract version、checksum、operator、request source。 | 不應把本類變成路徑或載入參數容器。 |
PluginLoadResult | 成功狀態固定為 Verified,失敗會標準化錯誤與安全訊息。 | DLL manual-only 需新增獨立 result 或 plan。 |
PluginLoadState | Loaded 僅保留給未來 lifecycle。 | 下一步仍不得在預設流程產生 Loaded。 |
PluginLoaderService | 只從 catalog 取得 metadata,做安全與 checksum 檢查。 | 可在新 service 前先呼叫此 gate,但不得把真實 DLL 載入塞入此 service。 |
Application.Tests | 已覆蓋 5A metadata loader 主要分支。 | 可新增 fake / plan / gate tests;CI 不執行真實 DLL 載入。 |
2. 停止線掃描結果
| 檢查項目 | 結果 |
|---|---|
| 正式程式外部載入 API | 未發現正式程式使用外部載入 API。 |
| plugin folder 掃描 | 未發現正式程式掃描 plugin folder。 |
.dll 字串 | 只出現在既有測試樣本與舊文件紀錄。 |
Loaded 狀態 | 目前為保留值與防呆測試,5A 成功結果不產生 Loaded。 |
3. 建議最小實作範圍
| 候選項目 | 建議 |
|---|---|
| request | 新增 ExternalDllManualVerificationRequest,只接受安全摘要、預期 checksum、預期 contract version、manual gate 與 operator 摘要。 |
| plan | 新增 ExternalDllManualVerificationPlan,描述是否允許進入 manual-only 驗證、需要哪些人工條件、禁止哪些行為。 |
| result | 新增 ExternalDllManualVerificationResult,回傳標準欄位且不得回傳完整路徑。 |
| service | 新增 IExternalDllManualVerifier 與 metadata-only / fake implementation。 |
| options | 新增 ExternalDllManualVerifierOptions,預設 gate 關閉。 |
| tests | 只新增 fake / unit tests 與 stop-line tests,不新增真實 DLL fixture。 |
4. 實作前七項確認
- 同意本批只做 request / result / plan / options / fake verifier,不載入真實 DLL。
- 同意預設 gate 關閉,未明確設定時一律回拒絕結果。
- 同意不新增 plugin folder schema、不修改 samples config、不改 5B config schema 範圍。
- 同意不修改 Adapter public contract、WebApi route、ServiceHost 啟動方式或 Windows Service。
- 同意新增
APP-0351起的錯誤碼與 Application.Tests fake 測試。 - 同意本批驗證只跑 Application.Tests、solution tests 與停止線掃描,不執行真實 DLL manual test。
- 同意若後續要真正載入 DLL、使用外部載入 API、建立 fixture 或讀取本機 DLL 路徑,必須再次停下確認。
外部 DLL manual-only 程式結構與實作前確認: 1. 同意 2. 同意 3. 同意 4. 同意 5. 同意 6. 同意 7. 同意
使用者已於 2026-06-07 回覆 7 項皆同意;本文件已授權進入 external DLL manual-only fake verifier 程式實作。實作後驗收紀錄見 phase-five-external-dll-manual-only-implementation-acceptance-record.md。