已於 v0.21.0 移除,紀律由 $plan 接手
v0.21.0 變更:
$prometheus-strict(內部即原 Prometheus 引擎)已在 OMX v0.21.0 正式移除,其「編譯期語意自愈」紀律整併進$plan的規劃與執行流程。本頁保留這套機制的原理說明,並以$plan作為目前的入口名稱。
在強型別語言(如 C#、TypeScript、Go)的重構過程中,一個簡單的方法重命名往往會觸發數十個調用點的編譯失敗。當 AI 助手在背景嘗試自動修復這些錯誤時,如果只是「憑空猜測」,很容易引入新的語法衝突,導致專案永久無法通過編譯。
$plan 承接了原 Prometheus 引擎的 編譯期語意自愈核心 (Compiler-driven Healing Engine) 角色。它不是在做簡單的文字替換,而是將「編譯器的強型別約束」轉化為 AI 的「代碼修改指引」,實現極高精度的錯誤修正。
語意自愈工作流
當專案編譯失敗時,$plan 會啟動以下精密的工作流:
┌──────────────────────┐
│ 1. 捕獲編譯器輸出 │ <-- 讀取 stderr 中的錯誤代碼 (如 CS0246)
└──────────┬───────────┘
│
▼
┌──────────────────────┐
│ 2. 查詢知識規則庫 │ <-- 映射錯誤類型 (如: 缺少命名空間)
└──────────┬───────────┘
│
▼
┌──────────────────────┐
│ 3. AST 精確定位 │ <-- 定位出錯的 AST 節點與行號
└──────────┬───────────┘
│
▼
┌──────────────────────┐
│ 4. 單行 Patch 應用 │ <-- 執行 minimal change 並重新編譯
└──────────────────────┘
- 編譯器錯誤代碼映射 (Error Code Mapping):
$plan依據針對各大語言編譯器的特徵碼字典(例如將 C# 的CS0246映射為MISSING_NAMESPACE,將 TS 的TS2307映射為MISSING_IMPORT)歸類錯誤類型。 - AST 節點精確定位:
依據編譯器輸出的檔名、行號與列號,結合本地 Codegraph 圖譜,直接鎖定出錯的 AST 語法節點,將其上下文(Context)提取出來。 - 最小且安全的 Patch 生成:
告訴 AI:「你現在必須修復src/api.ts第 12 行的類型錯誤。原代碼為 A,你必須將其改為 B。嚴禁修改其他行。」AI 在強邊界約束下,能產出 100% 精準的單行 Patch。 - 遞歸建置驗證:
應用 Patch 後,重新啟動編譯。若成功,推進至下一個 Error;若失敗,重新執行自愈。
透過這種「編譯器反饋驅動」的機制,$plan 能夠帶領 AI 助手在不引入任何新 bug 的情況下,自主將擁有上百個編譯報錯的混亂工作區,逐步修復至完全健康的編譯通過狀態。