# 3C Application contract commit / push 前確認

本文件整理 3C Application contract 第一版完成後，程式 repo 與文件 repo 在 stage / commit / push 前需要確認的範圍、驗證證據、停止線與建議 commit 訊息。

## 0. 確認結論

| 項目 | 結論 |
|---|---|
| 確認日期 | 2026-06-04 |
| 3C 節點 | Application contract 第一版 |
| 程式 repo | `hs-device-control-template` |
| 程式分支 | `poc/nmodbus-tcp` |
| 文件 repo | `AI自動控制骨架` |
| 文件分支 | `main` |
| 程式測試 | Application tests 15 passed；solution tests 453 passed |
| 文件驗證 | JSON parse 通過；`public/` 與來源檔 hash 比對通過 |
| 停止線 | 未新增 `WebApi` / `ServiceHost`、未新增 route、未執行 DDL / Apply |
| 建議動作 | 可進入 stage / commit；push 需使用者明確指示 |

## 1. 程式 repo 變更範圍

建議程式 repo 本次提交只包含 3C Application contract 第一版相關檔案：

| 類型 | 路徑 / 範圍 | 說明 |
|---|---|---|
| 修改 | `HS.DeviceControl.sln` | 將 Application 與 Application.Tests 加入 solution。 |
| 新增 | `src/HS.DeviceControl.Application/` | Application contract、DTO、薄 service。 |
| 新增 | `tests/HS.DeviceControl.Application.Tests/` | Task / Device / Schema / Health contract 測試。 |

主要新增內容：

- `Common/ApplicationErrorCodes.cs`
- `Tasks/ITaskControlService.cs`
- `Tasks/TaskControlService.cs`
- `Tasks/TaskStartRequest.cs`
- `Tasks/TaskStartResult.cs`
- `Tasks/TaskStatusQuery.cs`
- `Tasks/TaskStatusResult.cs`
- `Tasks/TaskNodeStatusItem.cs`
- `Tasks/TaskCancelRequest.cs`
- `Tasks/TaskCancelResult.cs`
- `Devices/IDeviceStatusService.cs`
- `Devices/DeviceStatusService.cs`
- `Devices/DeviceStatusQuery.cs`
- `Devices/DeviceStatusResult.cs`
- `Schema/ISchemaPreviewService.cs`
- `Schema/SchemaPreviewService.cs`
- `Schema/SchemaPreviewRequest.cs`
- `Schema/SchemaPreviewResult.cs`
- `Health/IHealthService.cs`
- `Health/HealthService.cs`
- `Health/IHealthDependencyCheck.cs`
- `Health/HealthDependencyStatus.cs`
- `Health/HealthStatusResult.cs`
- `Health/HealthState.cs`

## 2. 文件 repo 變更範圍

建議文件 repo 本次提交包含 3B 收尾後續同步與 3C 全段文件：

| 類型 | 路徑 / 範圍 | 說明 |
|---|---|---|
| 新增 | `docs/service-api-boundary-analysis.*` | 3C Service / API 邊界分析。 |
| 新增 | `docs/service-api-decision-confirmation.*` | 3C Service / API 決策確認表。 |
| 新增 | `docs/service-api-code-structure-preimplementation-checklist.*` | 程式 repo 結構檢查與實作前確認。 |
| 新增 | `docs/service-api-application-contract-preimplementation-checklist.*` | Application contract 草案與實作前確認。 |
| 新增 | `docs/service-api-application-contract-decision-confirmation.*` | Application contract 七項決策確認。 |
| 新增 | `docs/service-api-application-contract-implementation-record.*` | Application contract 第一版實作紀錄。 |
| 新增 | `docs/service-api-application-contract-3c-completion-audit.*` | 3C 完成稽核表。 |
| 新增 | `docs/service-api-application-contract-commit-push-precheck.*` | 本次 commit / push 前確認。 |
| 修改 | `README.*`、`docs/README.*` | 補 3C 文件索引與閱讀順序。 |
| 修改 | `docs/phase-three-dashboard.*` | 3C 狀態更新為 Application contract 第一版完成。 |
| 修改 | `index.html`、`progress.json`、`status.json`、`開發進度總覽.*` | 首頁與進度狀態同步到 3C 完成。 |
| 修改 | `public/` 對應檔案 | 靜態網站發布包同步。 |

## 3. 已完成驗證

| 驗證項目 | 結果 |
|---|---|
| `dotnet test tests\HS.DeviceControl.Application.Tests\HS.DeviceControl.Application.Tests.csproj` | 15 passed、0 failed |
| `dotnet test HS.DeviceControl.sln` | 453 passed、0 failed |
| JSON UTF-8 parse | `progress.json`、`status.json` 與 `public/` 對應檔案通過 |
| `public/` hash 比對 | 來源檔與 `public/` 對應檔案一致 |
| 3C 舊狀態掃描 | 目前收尾檔未命中舊狀態 |
| 污染字串掃描 | 本輪收尾文件與新程式碼未命中 |
| 邊界停線掃描 | 未發現 ASP.NET route、controller、background service、DDL / Apply 實作 |

已知提醒：

- `dotnet test HS.DeviceControl.sln` 仍會出現既有 `.NET 5.0` EOL warning `NETSDK1138`，不影響本次測試通過判定。
- 文件 repo `git diff --check` 僅回報 Windows 換行提示，未發現 whitespace error。

## 4. 停止線確認

| 停止線 | 是否符合 |
|---|---|
| 不新增 `ServiceHost` 專案 | 符合 |
| 不新增 `WebApi` 專案 | 符合 |
| 不新增 API route / controller / endpoint / middleware | 符合 |
| 不導入認證授權、queue、background service 或 web framework 套件 | 符合 |
| 不執行 DB DDL、`ALTER TABLE`、正式 Apply | 符合 |
| 不修改 Core / Adapter / Infrastructure 既有 public method 簽章 | 符合 |
| 不修改啟動方式 | 符合 |
| 不 push、force push、reset、rebase 或刪除分支 | 符合，尚未執行 |

## 5. 建議 commit 訊息

程式 repo 建議 commit：

```text
新增 3C Application contract 第一版

- 新增 Application 專案與 Task / Device / Schema / Health contract
- 新增 Application contract 測試
- 將 Application 與 Application.Tests 加入 solution
```

文件 repo 建議 commit：

```text
整理 3C Application contract 文件與提交前確認

- 新增 3C Service / API 分析、決策、實作與完成稽核文件
- 新增 3C commit / push 前確認
- 同步 README、第三階段儀表板、首頁、進度 JSON 與 public 發布包
```

## 6. 建議執行順序

1. 先 stage / commit 程式 repo，讓 3C Application contract 程式變更成為可追蹤節點。
2. 再 stage / commit 文件 repo，讓文件狀態對應程式 repo 的 3C 完成節點。
3. push 程式 repo 後，確認 remote branch `poc/nmodbus-tcp` 已更新。
4. push 文件 repo 後，查部署狀態並整理線上驗收紀錄。

## 7. 後續執行狀態

- 程式 repo 已於 2026-06-05 stage / commit / push。
- 程式 repo commit：`aee6ab6`。
- 程式 repo branch：`poc/nmodbus-tcp`。
- 文件 repo 已於 2026-06-05 stage / commit / push。
- 文件 repo commit：`71ec8fb`。
- 文件網站已完成 Cloudflare Pages 線上內容比對。
- 已整理 [3C Application contract 線上驗收紀錄](service-api-application-contract-3c-online-acceptance-record.md)。

## 8. 結論

3C Application contract 第一版已完成程式 repo push、文件 repo push 與線上驗收。建議下一步進入 3D Plugin / 多設備單元邊界分析，或另行確認真實 DB read-only ManualApplyPreview 驗證。
