Theme / v0.21.4

Oh My Codex (OMX)

Codex CLI 工作流增強層

指令詳解

已移除:$prometheus-strict → $plan 遷移指南

$prometheus-strict 已在 OMX v0.21.0 移除並由 $plan 接手,本頁說明其歷史行為與完整的遷移對照。

已於 v0.21.0 移除

$prometheus-strict 已在 OMX v0.21.0 正式移除,其職責由 $plan 接手。在 v0.21.0 之後的專案中執行 omx $prometheus-strict ...,將不再啟動過往的嚴格修正模式。

歷史行為(v0.20.x 之前)$prometheus-strict 曾是 OMX 的 強類型嚴格修正模式。它要求 AI 助手在修改程式碼後,以「編譯器級別的嚴格度」進行驗證:自動捕捉語言編譯器(如 tscmsbuild)輸出的每一條精確 Error Code(如 CS0266:無法將類型 A 隱式轉換為 B),並嚴格限制 AI 每次只能修改受影響的單一程式碼行,嚴禁大範圍猜測,直到該特定型別錯誤被完全消滅。這項指令在修復大規模 API breaking changes 時,曾是保證系統能重新編譯成功的核心防護傘。


為什麼被移除?

v0.21.0 對 OMX 的 workflow skills 做了一輪大規模整併:職責重疊的指令被合併為更少的 canonical 入口。$prometheus-strict 的「編譯日誌驅動、最小 Patch、防退化驗證」紀律,整併進了 $plan 的規劃與執行流程,搭配 Autopilot 的編譯/測試閉環,你不再需要一個獨立的嚴格修正指令。


遷移對照表

v0.20.x 用法(已移除) v0.21.0 之後的等價做法
omx $prometheus-strict "修復 src/api.ts 中的類型不匹配" omx $plan "修復 src/api.ts 中的類型不匹配,以編譯器輸出驅動,每次只修改出錯行"
依賴 $prometheus-strict 的單行 Patch 紀律 在提示中明確要求「僅修改出錯的程式碼行、修改後立即重新編譯」,並讓 Autopilot 以編譯/測試結果做閉環驗證
依賴 $prometheus-strict 的防退化增量建置 tsc --noEmitdotnet build 等建置指令搭配 $plan 逐步驗證,確認全域錯誤總數單調遞減

v0.21.0 其他主要指令遷移(同期變更)

已移除指令 v0.21.0 替代
$ralph $ultragoal(CLI omx ralph 的持久化 runtime 仍保留)
$ultrawork / $ecomode / $swarm $team
$prometheus-strict $plan
$review / $security-review $code-review
$ask-claude / $ask-gemini $ask
$deepsearch $analyze
$frontend-ui-ux $design
$visual-verdict / $web-clone $visual-ralph
$help $omx-setup
$tdd / $note / $trace / $build-fix 無直接替代(改用一般 Codex prompting 或 omx CLI 等價操作)

歷史運作流程(僅供對照)

  1. 編譯日誌獲取:自動捕獲建置指令的 stderr 輸出。
  2. 錯誤定位與歸納:找出首個 Critical Error,定位其檔案與精確行列號。
  3. 語意類型匹配:分析類型衝突(如類型不相容、缺少 interface 實作)。
  4. 單行 Patch 應用:應用最小代碼變更,重新編譯,直至編譯成功。

歷史對話範例(僅供對照)

範例:修復 TypeScript 的類型不匹配錯誤

  • You:
    omx $prometheus-strict "修復 src/api.ts 中的類型不匹配"
  • AI:

    [OMX] Prometheus Engaged: Strict Compiler Error Healing

    正在分析編譯錯誤: src/api.ts(45,12): error TS2322: Type 'string' is not assignable to type 'number'.

    分析:第 45 行嘗試將字串賦值給數字欄位 userId

    安全修改 (Loop 1):在賦值前呼叫 parseInt()

    // src/api.ts
    - const userId: number = dto.userId;
    + const userId: number = parseInt(dto.userId, 10);

    正在重新編譯… tsc --noEmit 成功!編譯錯誤已安全修復。


v0.21.0 之後的等價對話

  • You:
    omx $plan "修復 src/api.ts 中的類型不匹配,以編譯器輸出驅動,每次只修改出錯行,改完立即重新編譯驗證"
  • AI:

    已讀取編譯錯誤: src/api.ts(45,12): error TS2322: Type 'string' is not assignable to type 'number'.

    分析:第 45 行嘗試將字串賦值給數字欄位 userId

    最小修改 (Loop 1):在賦值前呼叫 parseInt()

    // src/api.ts
    - const userId: number = dto.userId;
    + const userId: number = parseInt(dto.userId, 10);

    正在重新編譯… tsc --noEmit 成功!編譯錯誤已安全修復。