本文件稽核第三階段 3B ManualApplyPreview 第一版是否已符合已確認的 3B 目標、決策與停止線。
本稽核只判定「人工 Apply 前安全預覽」是否可收斂,不代表正式 DDL Executor、正式 DB Apply、rollback、自動 Apply、WebApi 或 ServiceHost 已完成。
| 項目 | 判定 | 說明 |
|---|---|---|
| 3B 第一版 ManualApplyPreview | 可標記完成 | 已完成實作前確認、七項決策確認、第一版程式實作、目標測試與文件同步。 |
| 正式 Apply 能力 | 未納入 | 第一版固定 CanApply=False,不提供 DDL executor,也不執行 DB 修改。 |
| 真實 DB read-only preview | 尚未執行 | 已有 manual-only read-only 驗證入口;是否執行需另行確認連線資訊、密碼環境變數與 AllowRead。 |
| 下一階段承接 | 可二選一 | 可先做真實 DB read-only preview 驗證,也可進入 3C Service / API 邊界分析。 |
稽核結論:3B 第一版可驗收完成;後續若要碰真實 DB、正式 Apply 或平台入口,必須另行確認。
| 要求 | 完成證據 | 判斷 |
|---|---|---|
| 實作前確認 | ManualApplyPreview 實作前確認 | 已完成 |
| 七項決策確認 | 3B ManualApplyPreview 決策確認表,使用者 7 項皆同意 | 已完成 |
| 第一版只做 preview | 程式 commit 13c14ca,未新增正式 DDL executor | 已完成 |
CanApply 固定 false | SchemaManualApplyPreviewBuilder 產生 preview 時固定不可 apply | 已完成 |
| 風險分級 | 已支援 Low、Medium、High、Critical | 已完成 |
| Critical / 危險操作 blocked | 危險或未知 SQL 會升級風險並標示 blocked | 已完成 |
PlanHash | 由 preview 內容產生,不含密碼或完整連線資訊 | 已完成 |
| ConsoleHost 顯示 | schema-dry-run 已顯示 preview 摘要、風險、blocked、plan hash 與 SQL preview | 已完成 |
| History table | 第一版未建立、未寫入 schema_apply_history 或 schema_migrations | 已完成 |
| manual-only read-only 入口 | 已新增 gated script / test,預設不連 DB、不執行 DDL | 已完成 |
| 文件網站同步 | README、第三階段儀表板、進度總覽、public 發布副本已同步 3B 第一版狀態 | 已完成 |
| 類別 | 交付物 |
|---|---|
| 實作前確認 | docs/manual-apply-preview-preimplementation-checklist.md |
| 決策確認 | docs/manual-apply-preview-decision-confirmation.md |
| 實作紀錄 | docs/manual-apply-preview-implementation-record.md |
| 完成稽核 | docs/manual-apply-preview-3b-completion-audit.md |
| Core model | SchemaManualApplyPreviewRequest、SchemaManualApplyPreviewResult、SchemaManualApplyPreviewItem、SchemaManualApplyPreviewRiskLevel |
| Core builder | SchemaManualApplyPreviewBuilder |
| ConsoleHost | schema-dry-run ManualApplyPreview 顯示 |
| manual runner | scripts/run-mysql-manual-apply-preview-validation.ps1 |
| 驗證 | 結果 |
|---|---|
Core SchemaManualApplyPreviewBuilderTests | 9 passed |
ConsoleHost ConsoleHostSchemaDryRunDisplayTests | 15 passed |
| MySQL manual-only gate 測試 | 1 passed |
| ConsoleHost 實際輸出 | dotnet run 成功輸出 PlanHash、CanApply=False、Risk=Low、Blocked=False 與 SQL preview |
| 污染字串掃描 | repo 內未找到污染字串 |
| 舊命名掃描 | 未找到 SafeCreate、SafeAddColumn、MediumAddIndex、ManualReviewRequired、CanExecuteAutomatically、AutoExecute |
| 項目 | 狀態 | 後續條件 |
|---|---|---|
| 真實 DB read-only preview 驗證 | 尚未執行 | 需使用者另行確認 DB 連線資訊、密碼環境變數與 AllowRead。 |
| 程式 repo push | 尚未確認 | 若要讓 GitHub commit URL 可公開檢視,需另行 push 程式 repo。 |
| 正式 DDL Executor | 未納入 | 需新的決策、備份、rollback、權限與維運窗口規劃。 |
CanApply=true | 未納入 | 需另行定義 gate、確認 token、權限與審核流程。 |
| WebApi / ServiceHost | 未納入 | 需進入 3C 邊界分析,不得由 3B 自動擴大。 |
即使 3B 第一版可標記完成,以下項目仍不得自動執行:
CREATE TABLE、ALTER TABLE、DROP 或任何正式 DDL。CanApply 改為 true。schema_apply_history / schema_migrations。建議下一步先由使用者選擇方向:
AllowRead。