# 第二階段儀表板

本頁集中呈現第二階段目前邊界，讓使用者可以直接看到第二階段 A 與第二階段 B 已完成哪些內容，以及哪些項目已明確延後到第三階段或後續專題。

## 目前狀態

| 項目 | 內容 |
|---|---|
| 第二階段整體進度 | 100% |
| 第二階段 A | 100%，MySQL TaskStore / Schema DryRun PoC 已完成。 |
| 第二階段 B | 100%，DB LogWriter / TraceStore 第一版、manual-only xUnit 驗證入口、真實 DB 驗證前確認清單、TaskTraceStore 查詢邊界設計、Schema Apply 安全策略、測試 DB DDL 建表與 `task_log_traces` 寫入 / 查詢 / cleanup 驗證已完成。 |
| 長期總進度 | 70% |
| 最新程式版本 | `84ec9a1` |
| 測試數 | 407 |
| 目前主線 | 第二階段 A / B 已收斂完成；下一步進入第三階段前置規劃。 |
| 目前工作點 | 已完成 MySQL TaskStore `node_executions` 真實 DB manual-only 驗證、`command_executions` 實作前確認、DB LogWriter / TraceStore 第一版、TaskTraceStore 查詢邊界設計、Apply 安全策略、測試 DB DDL 與 `task_log_traces` 真實 DB 驗證。 |

## 第二階段分項進度

| 分項 | 進度 | 狀態 |
|---|---:|---|
| 第二階段規劃與主軸選型 | 100% | 已完成 |
| MySQL TaskStore PoC 前置確認 | 100% | 已完成 |
| MySQL 套件選型 | 100% | 已完成 |
| MySQL schema / 自動建表設計 | 100% | 已完成 |
| SQL Generator / Dry Run / Inspector | 100% | 已完成 |
| 真實 MySQL Inspector / metadata 讀取 | 100% | 已完成 |
| TaskStore 第一版 PoC 與真實 DB 驗證 | 100% | Save / 查詢還原 PoC、驗證設計、xUnit 入口、Runbook、真實 DB 驗證紀錄與完成稽核已完成 |
| TaskStore 多表擴充與 `node_executions` | 100% | 已完成邊界分析、實作前確認、schema class、SQL builder、fake gateway、manual-only 驗證設計、xUnit 入口、schema precheck、真實 DB 驗證與收斂稽核 |
| DB LogWriter / TraceStore 邊界 | 100% | 已完成診斷 trace 不塞入 `MySqlTaskStore.Save` 的邊界設計 |
| DB LogWriter / TraceStore 第一版與真實 DB 驗證 | 100% | 已完成 `task_log_traces` schema class、`LogEntry` mapper、payload sanitizer、`MySqlLogWriter`、fake gateway、fallback、manual-only xUnit、測試 DB DDL、真實 DB 寫入 / 查詢 / cleanup 與 TaskTraceStore 查詢邊界設計 |
| Schema Apply 安全策略與停止線 | 100% | 已完成 gate、權限、備份、rollback、plan hash、高風險操作分類與 MySQL 5.6.2 注意事項；真正 DDL executor 延後 |
| Host DB 初始化延後邊界 | 100% | 已確認 Host DB 初始化會影響啟動與部署流程，移到第三階段，不列為第二階段缺口 |

## 第二階段 A 已完成

第二階段 A 定義為「MySQL TaskStore / Schema DryRun PoC」。此範圍已完成，可作為後續 API / ServiceHost 的資料基礎。

## 已完成

| 項目 | 代表文件 / 程式狀態 |
|---|---|
| 第二階段主軸選型 | `phase-two-first-track-selection` |
| MySQL TaskStore PoC 前置確認 | `mysql-taskstore-poc-checklist` |
| MySQL 套件選型分析 | 第一版建議為 `MySqlConnector`。 |
| MySQL Schema 自動建表設計 | 已決定由 C# Class 維護欄位型別、索引與描述。 |
| Schema Attribute / SQL Generator / Dry Run / Inspector | 已完成並通過測試。 |
| MySqlSchemaInspector 真實 DB provider | 已導入 MySqlConnector provider，完成真實 `information_schema` metadata 讀取。 |
| MySQL TaskStore 第一版 | 已完成 Save / FindById / ListRecent 與真實 DB manual-only 驗證。 |
| MySQL TaskStore `node_executions` | 已完成多表保存、schema precheck、真實 DB 寫入 / 查詢 / cleanup 驗證。 |
| `command_executions` 實作前確認 | 已釐清資料來源與延後邊界，不硬塞進 TaskStore。 |
| MySQL DB LogWriter / TraceStore 邊界設計 | 已確認詳細診斷資料走 `LogEntry -> MySqlLogWriter -> task_log_traces`。 |
| MySQL DB LogWriter / TraceStore 第一版 | 已完成 `task_log_traces` schema class、mapper、sanitizer、fake gateway、fallback。 |
| MySQL DB LogWriter manual-only 驗證入口 | 已完成 `HS_MYSQL_LOGWRITER_*` gate、schema precheck、查詢 helper 與 cleanup helper。 |
| MySQL DB LogWriter 真實 DB 驗證 | 已完成測試 DB DDL 建表與 manual-only 寫入 / 查詢 / cleanup 驗證；SchemaPrecheck 通過、TraceRowCount=2、cleanup affected=2；回填 commit `84ec9a1`。 |
| MySQL TaskTraceStore 查詢邊界設計 | 已固定 read-side 查詢條件、回傳資料邊界、SQL 安全、不納入第一版項目與後續 public contract 確認點。 |
| MySQL Schema Apply / DDL Executor 安全策略 | 已整理 Apply 模式分級、gate、權限、apply plan、風險分類、MySQL 5.6.2 注意事項、backup / rollback 與停止線。 |
| 第二階段 B 收斂稽核 | 已確認第二階段 B 可驗收完成，public contract、正式 DDL executor 與 Host DB 初始化改列後續階段。 |

## 後續階段保留項

| 項目 | 狀態 | 需要確認 |
|---|---|---|
| `TaskTraceStore` public 查詢介面 | 未開始 | 會新增 public contract、DTO 與未來 WebApi 對齊需求，需另行確認。 |
| 正式 DDL Executor | 未開始 | 會讓系統具備修改 DB schema 的能力，需備份、rollback、plan hash 與權限策略。 |
| Host DB 初始化 / Apply gate | 未開始 | 會影響啟動方式與部署流程，建議第三階段再規劃。 |
| ServiceHost / WebApi / WinForms Debug Tool | 未開始 | 屬第三階段或後續階段，不在第二階段 B 主線內。 |

## 暫不導入

| 項目 | 原因 |
|---|---|
| Web UI | 目前文件網站只作靜態呈現，不導入正式 Web UI。 |
| 背景服務 | 第二階段聚焦 MySQL Schema Automation 與資料持久化收斂。 |
| 真實硬體控制 | 目前主線是資料庫與任務持久化，不擴大到硬體控制。 |
| 自動執行正式 DDL | 必須先完成確認、備份與 rollback 策略。 |
| 密碼或連線字串寫入 repo | 真實敏感資訊不得進入文件 repo 或程式 repo。 |

## 下一個建議節點

| 建議節點 | 目的 |
|---|---|
| 第三階段前置規劃 | 決定 `TaskTraceStore` public 查詢介面、`ManualApplyPreview` 程式實作、Host DB 初始化、WebApi / ServiceHost 的先後順序。 |
| `TaskTraceStore` public contract 實作前確認 | 若要提供查詢 API 或 debug tool，先確認 request / result model、limit、分頁與敏感資訊遮罩規則。 |
| `ManualApplyPreview` 實作前確認 | 若要往 Schema Apply 前進，第一步只做 plan model 與高風險分類，不直接做 DDL executor。 |

## 建議下一步

建議下一步進行「第三階段前置規劃」，先決定要優先做 `TaskTraceStore` public 查詢介面、`ManualApplyPreview`，還是 Host DB 初始化。
