3B ManualApplyPreview 決策確認表
本文件承接 ManualApplyPreview 實作前確認,把進入程式 repo 前需要使用者確認的 7 項決策整理成可逐項回覆的確認表。
本文件只做決策確認與後續回填,不代表已同意執行 DDL、修改 DB、改 ConsoleHost 預設啟動流程、導入 WebApi / ServiceHost 或保存任何敏感連線資訊。
0. 確認狀態
| 項目 | 內容 |
| 確認狀態 | 已確認 |
| 確認日期 | 2026-06-04 |
| 使用者回覆 | 7 項皆同意 |
| 後續狀態 | 程式 repo commit 13c14ca 已完成第一版 ManualApplyPreview 安全預覽 |
| 仍不得執行 | DDL、DB 修改、正式 Apply、ConsoleHost 預設啟動流程變更、WebApi / ServiceHost 導入、history table 建立 |
1. 建議確認方式
使用者可直接回覆以下格式:
3B 決策確認:
1. 同意
2. 同意
3. 同意
4. 同意
5. 同意
6. 同意
7. 同意
備註:若有需要調整的項目,請寫在這裡。
若任一項不同意,建議寫成:
第 N 項不同意,改為:...
2. 七項決策確認表
| 編號 | 決策項 | 建議定案 | 若同意的影響 | 若不同意需補充 |
| 1 | 第一版範圍 | 只做 ManualApplyPreview,不做 DDL executor | 可進入 preview model / risk classifier / formatter 實作;不具備 apply 能力 | 需說明是否要同時做 DDL executor,以及是否允許 DB 寫入 |
| 2 | CanApply 行為 | 第一版固定 false | 輸出可審核 plan,但明確不能執行 apply | 需定義何時可變成 true、gate、權限與確認 token |
| 3 | 風險等級 | 使用 Low、Medium、High、Critical | 測試與 ConsoleHost 顯示可依固定等級分類 | 需提供替代等級名稱與排序規則 |
| 4 | Critical 操作處理 | DROP、MODIFY、CHANGE、縮短欄位、NOT NULL 無 default 一律列為 blocked | 高風險操作可顯示但不得進一步 apply | 需指定哪些高風險操作可例外,以及例外條件 |
| 5 | PlanHash 規則 | 由 preview 內容產生,不包含密碼、host、port 或完整連線資訊 | 可追蹤 plan 內容,又不洩漏敏感資訊 | 需指定 hash 要額外納入或排除哪些欄位 |
| 6 | ConsoleHost 接入 | 第一版只顯示 preview,不改預設啟動流程 | 可做 formatter / demo request,不影響現有啟動 | 需說明是否要接入啟動流程,以及失敗時是否阻止 Workflow |
| 7 | History table | 第一版不建立、不寫入 schema_apply_history 或 schema_migrations | 不需要 DB DDL,也不增加儲存邊界 | 需確認 table 欄位、建表權限、寫入 gate 與 cleanup 策略 |
3. 本次確認結果
| 編號 | 決策項 | 確認結果 |
| 1 | 第一版範圍 | 同意,只做 ManualApplyPreview,不做 DDL executor。 |
| 2 | CanApply 行為 | 同意,第一版固定 false。 |
| 3 | 風險等級 | 同意,使用 Low、Medium、High、Critical。 |
| 4 | Critical 操作處理 | 同意,DROP、MODIFY、CHANGE、縮短欄位、NOT NULL 無 default 一律 blocked。 |
| 5 | PlanHash 規則 | 同意,由 preview 內容產生,不包含密碼、host、port 或完整連線資訊。 |
| 6 | ConsoleHost 接入 | 同意,第一版只顯示 preview,不改預設啟動流程。 |
| 7 | History table | 同意,第一版不建立、不寫入 schema_apply_history 或 schema_migrations。 |
4. 已確認結論
本次已採用以下結論:
- 同意第一版只做
ManualApplyPreview。 - 同意第一版
CanApply=false。 - 同意風險等級採
Low、Medium、High、Critical。 - 同意 Critical 操作一律 blocked。
- 同意
PlanHash不納入敏感連線資訊。 - 同意 ConsoleHost 第一版只顯示 preview,不改預設啟動流程。
- 同意第一版不建立 history table。
採用此結論後,已完成第一版 ManualApplyPreview 安全預覽;這仍不是正式 apply,也不代表允許 DDL。
5. 確認後可進入的工作
| 順序 | 工作 | 範圍 |
| 1 | 程式 repo 結構檢查 | 已完成。 |
| 2 | 3B 第一版實作範圍盤點 | 已完成,並收斂為 preview model、builder、formatter 與 manual-only gate。 |
| 3 | 小步實作 | 已完成,程式 commit 13c14ca。 |
| 4 | 3B 完成稽核 | 建議下一步整理,確認是否滿足驗收條件。 |
6. 仍需停止的項目
即使七項決策全部同意,仍不得自動執行以下項目:
- 不得執行
CREATE TABLE、ALTER TABLE、DROP。 - 不得連正式 DB 或測試 DB 做 DDL。
- 不得新增真正 DDL executor。
- 不得改 ConsoleHost 預設啟動流程。
- 不得新增 WebApi / ServiceHost / WinForms Debug Tool。
- 不得保存 DB 密碼、Token、完整 connection string 或正式環境資訊。
- 不得新增 history table 或 migrations table。
7. 建議下一步
七項決策已確認,且第一版 ManualApplyPreview 已完成。建議下一步整理「3B 完成稽核表」;若要驗證真實 DB,也需另行確認 read-only preview 驗證節點,仍不得執行 DDL。
8. 實作回填(2026-06-04)
| 項目 | 結果 |
| 程式 commit | 13c14ca |
| commit 訊息 | 新增 ManualApplyPreview 安全預覽 |
| 第一版範圍 | 只做 ManualApplyPreview,不做 DDL executor |
CanApply | 固定 false |
| 風險等級 | Low、Medium、High、Critical |
| blocked 規則 | Critical 或未知危險操作會被 blocked |
PlanHash | 由 preview 內容產生,不含敏感連線資訊 |
| ConsoleHost | 只顯示 preview,不改預設啟動流程 |
| History table | 未建立、未寫入 |
| 驗證結果 | Core 9 passed、ConsoleHost formatter 15 passed、MySQL manual-only gate 1 passed、dotnet run 成功 |
9. 後續仍需確認
- 是否整理 3B 完成稽核表。
- 是否執行真實 DB read-only preview 驗證。
- 是否需要進入 3C Service / API 邊界分析。