Theme / v0.21.4

Oh My Codex (OMX)

Codex CLI 工作流增強層

基礎觀念

Prometheus 引擎語意自愈原理

介紹 OMX 的編譯期語意自愈機制:原 Prometheus 引擎($prometheus-strict)已於 v0.21.0 移除,其編譯器反饋驅動的修復紀律由 $plan 接手

已於 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 並重新編譯
 └──────────────────────┘
  1. 編譯器錯誤代碼映射 (Error Code Mapping)
    $plan 依據針對各大語言編譯器的特徵碼字典(例如將 C# 的 CS0246 映射為 MISSING_NAMESPACE,將 TS 的 TS2307 映射為 MISSING_IMPORT)歸類錯誤類型。
  2. AST 節點精確定位
    依據編譯器輸出的檔名、行號與列號,結合本地 Codegraph 圖譜,直接鎖定出錯的 AST 語法節點,將其上下文(Context)提取出來。
  3. 最小且安全的 Patch 生成
    告訴 AI:「你現在必須修復 src/api.ts 第 12 行的類型錯誤。原代碼為 A,你必須將其改為 B。嚴禁修改其他行。」AI 在強邊界約束下,能產出 100% 精準的單行 Patch。
  4. 遞歸建置驗證
    應用 Patch 後,重新啟動編譯。若成功,推進至下一個 Error;若失敗,重新執行自愈。

透過這種「編譯器反饋驅動」的機制,$plan 能夠帶領 AI 助手在不引入任何新 bug 的情況下,自主將擁有上百個編譯報錯的混亂工作區,逐步修復至完全健康的編譯通過狀態。