本文件用來固定第五階段在 5C DB audit 完成後的剩餘工作。稽核目的不是縮小第五階段範圍,而是把 5D auth / Swagger、5E Windows Service 與 5F 整合驗收的 gate、證據與停止線整理成可追蹤清單,避免在尚未確認前誤把前置文件視為程式實作完成。
0. 基本資訊
| 稽核日期 | 2026-06-07 |
|---|---|
| 文件 repo commit | 38f767c |
| 程式 repo | hs-device-control-template |
| 程式 branch | poc/nmodbus-tcp |
| 程式基準 commit | c92342b |
| 稽核狀態 | 第五階段仍在進行中,尚不可標記完成 |
1. 目前完成證據
| 節點 | 目前狀態 | 可採用證據 |
|---|---|---|
| 5A PluginLoader | 已完成 metadata-only 最小實作 | 程式 commit 9e7302a、Application.Tests 50 passed、solution tests 502 passed、5A 實作與驗收紀錄 |
| 外部 DLL manual-only | 已完成 fake verifier | 程式 commit bc3f191、Application.Tests 57 passed、solution tests 509 passed、外部 DLL manual-only 實作與驗收紀錄 |
| 5B config schema | 已完成 metadata-only schema 與 validator | 程式 commit 1f635d6、Core.Tests 196 passed、solution tests 516 passed、5B 實作與驗收紀錄 |
| 5C DB audit | 已完成 Application 層 audit contract 與 in-memory writer | 程式 commit 354fecd、Application.Tests 67 passed、Infrastructure.MySql.Tests 89 passed、solution tests 526 passed、5C 實作與驗收紀錄 |
| 5D auth / Swagger | 已完成 WebApi 最小 API key gate、protected controller policy、development-only Swagger、推送與 Actions 驗收 | 程式 commit c92342b、Actions run 27094590136 success、WebApi.Tests 17 passed、Application.Tests 67 passed、solution tests 536 passed、5D 實作與驗收紀錄 |
| 5E Windows Service | 前置文件、測試矩陣、最後確認表與線上驗收已完成;程式尚未實作 | 5E 最後確認表、5E final 線上驗收紀錄、本輪 ServiceHost.Tests 7 passed |
| 5F 整合驗收 | 已建立驗收計畫與執行前確認表;尚未開始執行 | phase-five-f-integration-acceptance-plan.md、phase-five-f-integration-acceptance-preexecution-checklist.md |
2. 尚未完成項目
| 節點 | 缺口 | 進入條件 |
|---|---|---|
| 5E Windows Service 程式實作 | 尚未新增 Windows Service package、UseWindowsService、service hosting wrapper、manual-only install gate、service lifecycle tests | 使用者回覆 5E 最後七項確認 |
| 5E 實作驗收紀錄 | 尚未建立,因程式實作尚未開始 | 5E 程式實作與測試完成後建立 |
| 5F 整合驗收 | 尚未執行 5A 到 5E 串接檢查、停止線掃描、文件同步與線上驗收 | 5D 與 5E 程式實作皆完成並完成驗收紀錄,且使用者回覆 5F 執行前七項確認 |
| 第五階段完成稽核 | 尚未建立完成版,因 5D、5E、5F 仍未完成 | 5F 整合驗收通過後建立 |
3. 本輪 current-state 驗證
| 驗證項目 | 指令 | 結果 |
|---|---|---|
| 文件 repo 狀態 | git status --short --branch | main...origin/main,乾淨 |
| 程式 repo 狀態 | git status --short --branch | poc/nmodbus-tcp...origin/poc/nmodbus-tcp,乾淨 |
| 5D 程式 commit / push | git log -1 --oneline / git push origin poc/nmodbus-tcp | c92342b 新增 5D WebApi auth 與 Swagger gate,已推送 |
| 5D gate 前 WebApi 測試 | dotnet test tests\HS.DeviceControl.WebApi.Tests\HS.DeviceControl.WebApi.Tests.csproj --no-restore | 7 passed / 0 failed / 0 skipped |
| 5D 實作後 WebApi 測試 | dotnet test tests\HS.DeviceControl.WebApi.Tests\HS.DeviceControl.WebApi.Tests.csproj --no-restore -m:1 /p:BuildInParallel=false /p:UseSharedCompilation=false | 17 passed / 0 failed / 0 skipped |
| 5D 實作後 Application 測試 | dotnet test tests\HS.DeviceControl.Application.Tests\HS.DeviceControl.Application.Tests.csproj --no-restore -m:1 /p:BuildInParallel=false /p:UseSharedCompilation=false | 67 passed / 0 failed / 0 skipped |
| 5D 實作後 solution 測試 | dotnet test HS.DeviceControl.sln --no-restore -m:1 /p:BuildInParallel=false /p:UseSharedCompilation=false | 536 passed / 0 failed / 0 skipped |
| 5D GitHub Actions | gh run list --repo Hongsen-tw/hs-device-control-template --branch poc/nmodbus-tcp --limit 5 | 27094590136 completed success |
| 5E gate 前 ServiceHost 測試 | dotnet test tests\HS.DeviceControl.ServiceHost.Tests\HS.DeviceControl.ServiceHost.Tests.csproj --no-restore | 7 passed / 0 failed / 0 skipped |
備註:上述測試出現 .NET 5.0 EOL warning,屬既有目標框架風險,不代表本輪 gate 稽核失敗。
4. 不可越過的停止線
- 不再擴大 WebApi auth 範圍到 JWT、OAuth、OIDC、外部 IdP、角色系統或 production Swagger 設定。
- 不保存 API key、password、client secret、token、正式 IP、正式 port、正式 DB connection string。
- 不新增 Windows Service package、
UseWindowsService、service installer、安裝 / 解除安裝腳本、正式 service account 或正式 log / config path。 - 不執行 DB DDL、ALTER TABLE、DROP TABLE、formal Apply 或正式 DB 初始化。
- 不載入外部 DLL、不掃描 plugin folder、不使用 assembly loading API。
- 不修改 Adapter public contract、既有 API route、GitHub / Cloudflare secret 或外部服務設定。
5. 建議執行順序
- 先完成文件 repo stage / commit / push,讓 5D 驗收紀錄與索引部署到文件網站。
- 取得 5E Windows Service 最後七項確認。
- 實作 5E 最小 Windows Service hosting gate,執行 ServiceHost.Tests、Application.Tests、solution tests 與停止線掃描。
- 建立 5E 實作與驗收紀錄,更新文件 repo 並線上查核。
- 取得 5F 整合驗收執行前七項確認。
- 執行 5F 整合驗收,建立第五階段完成稽核與線上驗收紀錄。
6. 下一個需使用者確認的項目
若要繼續往下一個高風險邊界推進,建議下一步先做文件 repo stage / commit / push;完成後再回覆:
5E Windows Service 最小實作前最後確認:
1. 同意
2. 同意
3. 同意
4. 同意
5. 同意
6. 同意
7. 同意