dsh-codex-import:DeepSeek Harness 的 Codex 配置只讀兼容性掃描器

前言

如果你同時維護 Codex 和 DeepSeek Harness(DSH)兩套智能體環境,配置遷移時的問題通常不是缺工具,而是看不清:Codex 的 config.toml、hooks、Skills 和 AGENTS.md 散落在用戶級、項目級多個位置,哪些能被 DSH 直接對應使用、哪些屬於不支持項,只能逐個手工覈對。直接照搬又有風險——兩邊的權限語義不同,hooks 的支持範圍也不一致。

dsh-codex-import 把這一步單獨拆出來:先做只讀盤點,再給出分類結果,v0.1 不執行任何遷移。DSH 的理念是「一切皆插件」,這個插件對應的正是遷移前的核對環節。

這是什麼

dsh-codex-import 是 DeepSeek Harness 的 Codex 配置兼容性掃描器,由 QinXi-ai 維護,採用 MIT 許可證,當前版本 0.1.0。一句話定位:v0.1 只提供只讀盤點,不執行遷移。

安裝後,插件通過 dsh.bundle.patch 指向 cordis.patch.yml,向已有的 commands 服務註冊 /codex-import 命令,複用 DSH 現有的命令服務。

核心功能

插件提供兩個命令:

/codex-import scan
/codex-import plan

兩個命令都處於只讀範圍內,不寫文件、不執行遷移。

掃描範圍與分類

掃描器會發現四類 Codex 側配置:

  • 用戶級和項目級 config.toml
  • hooks.json
  • 獨立 Skills
  • AGENTS.md 指令層

結果分爲五類:READYDISCOVEREDNEEDS_REVIEWSKIPPED_UNSUPPORTEDUNSUPPORTED

掃描器同時識別當前 DSH hooks-codex 橋接可運行的五類同步 command hooks:PreToolUsePostToolUseSessionStartUserPromptSubmitStop。超出這個範圍的 hooks 條目不會被視爲可在當前橋接下運行。

輸出經結構化收縮

掃描器會讀取受大小限制的本地配置用於分類,但輸出經過結構化收縮:只包含類別、狀態、數量和通用原因,不返回配置值、命令正文、Skill 正文或絕對路徑。

明確邊界

v0.1 不提供 apply,具體包括:

  • 不寫任何文件,不修改 DSH profile。
  • 不執行 hook command,不啓動 MCP server。
  • 不復制或安裝 Skill。
  • 不讀取聊天曆史。
  • 不導入、輸出或保存 credential 值。
  • 不把 Codex 權限規則自動翻譯成 DSH 權限——兩者安全語義不同。

對兼容性也不做超出事實的聲稱:

  • 不聲稱完整兼容 Codex Hooks。當前 DSH 橋接只映射上面列出的五類,且只運行同步 command hooks。
  • 只識別標準的 AGENTS.override.md / AGENTS.md 文件名,不解析 project_doc_fallback_filenames 指定的自定義指令文件名。
  • 爲避免掃描逃逸,不跟隨符號鏈接和非普通文件,符號鏈接條目標爲 SKIPPED_UNSUPPORTED。這比 Codex 原生 Skill 發現更保守。

關於後續新增顯式 apply,README 給出了准入門檻:版本化新輸出目錄、逐項選擇、寫前 diff、憑據引用而非憑據值、每項遷移收據、語法驗證,以及任何不支持項 fail closed。v0.1 故意沒有預留靜默寫入入口。

安裝與啓用

package.jsonengines 要求 Node >= 22.19,peerDependencies 爲 @deepseek-ai/cordis >=4.0.1 <5@deepseek-ai/dsh-commands >=0.1.0-rc.2 <0.2.0

安裝方式是先把插件放到包管理器可達的位置——將目錄放入 GitHub 倉庫並添加 dsh-plugin topic,或發佈到 npm——再添加到目標 profile:

dsh plugin --profile web add dsh-codex-import

開發中的目錄也可以用包管理器支持的本地 package spec 安裝。

典型用法

裝好後,在 DSH 會話裏直接調用兩個命令,即可得到分類盤點結果:

/codex-import scan
/codex-import plan

本地開發或審計時,可用 README 給出的三條命令驗證:

npm test
npm run check
npm pack --dry-run

npm test 運行 node --testnpm run check 先依次對 src/scanner.jssrc/format.jssrc/index.js 做語法檢查,再跑一遍測試;npm pack --dry-run 檢查實際打包內容。測試只使用臨時人工夾具,不會掃描開發者真實的 Codex 配置。

適用場景與注意

適合兩類人:

  • 正在評估從 Codex 遷到 DSH,想知道現有配置裏多少能對應、多少需要人工處理,又不想在評估階段產生任何副作用的開發者。
  • 想先摸清 Codex 側配置分佈,再決定遷移策略的使用者。

使用前注意:

  • 插件以當前 dsh 進程的權限運行,安裝前應檢查源碼與許可證(本項目爲 MIT)。
  • v0.1 的定位是盤點,不是遷移工具。不要期待它翻譯權限規則,也不要把它當作完整兼容 Codex Hooks 的依據。
  • 符號鏈接條目會被標爲 SKIPPED_UNSUPPORTED,這是有意爲之的保守行爲,不是缺陷。

小結

dsh-codex-import 把「Codex 配置能不能遷到 DSH」從手工覈對變成一次可重複的只讀掃描:五類分類結果、五類可橋接 hooks 的明確範圍、收縮後的輸出,加上一條條寫清的「不做」清單。v0.1 不執行遷移,但後續 apply 的准入門檻已經寫在 README 裏,邊界是可覈對的。

  • GitHub:https://github.com/QinXi-ai/dsh-codex-import
  • 社區目錄頁:https://www.skillhub.cn/plugins/QinXi-ai/dsh-codex-import
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜