已於 v0.21.0 移除
$prometheus-strict 已在 OMX v0.21.0 正式移除,其職責由 $plan 接手。在 v0.21.0 之後的專案中執行 omx $prometheus-strict ...,將不再啟動過往的嚴格修正模式。
歷史行為(v0.20.x 之前):
$prometheus-strict曾是 OMX 的 強類型嚴格修正模式。它要求 AI 助手在修改程式碼後,以「編譯器級別的嚴格度」進行驗證:自動捕捉語言編譯器(如tsc、msbuild)輸出的每一條精確 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 --noEmit、dotnet 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 等價操作) |
歷史運作流程(僅供對照)
- 編譯日誌獲取:自動捕獲建置指令的 stderr 輸出。
- 錯誤定位與歸納:找出首個 Critical Error,定位其檔案與精確行列號。
- 語意類型匹配:分析類型衝突(如類型不相容、缺少 interface 實作)。
- 單行 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成功!編譯錯誤已安全修復。