ce-setup

ce-setup

熱門

檢查 Compound Engineering 健康狀況與專案儲存庫的本地設定。

2.4萬星標
1885分支
更新於 2026/7/31
SKILL.md
唯讀
名稱
ce-setup
描述

檢查 Compound Engineering 健康狀況與專案儲存庫的本地設定。

Compound Engineering 設定

互動方式

請使用目前平台的阻塞式提問工具(blocking question tool)詢問下方每個問題:在 Claude Code 中使用 AskUserQuestion(若其 schema 未載入,請先使用 select:AskUserQuestion 呼叫 ToolSearch)、在 Codex 中使用 request_user_input、在 Antigravity CLI (agy) 中使用 ask_question、在 Pi 中使用 ask_user(需要安裝 pi-ask-user 擴充功能)。僅在執行環境(harness)中不存在任何阻塞式工具或呼叫發生錯誤時,才退回到對話中的編號列表。切勿默默跳過或自動配置。

ce-setup 是一個輕量級的健康檢查與儲存庫本地設定輔助工具。它不會批量安裝所有可選的相依套件。缺失的工具會以「可選功能」形式呈報,讓使用者僅安裝自身工作流程所需的工具。

產出物根目錄解析(Artifact Root Resolution)

每個會寫入或讀取產出物目錄(solutionsplansideation 以及其他 CE 擁有的目錄樹)的 Compound Engineering Skill,都會透過以下規則解析其根目錄。ce-setup 包含此標準規範並回報解析後的根目錄,以便操作人員在執行其他 Skill 之前,能先確認產出物的存放位置。

<!-- ce-docs-root:start -->
在組合任何產出物路徑之前,請先解析 CE 產出物根目錄 <root>

  • 讀取:先從 <repo-root>/.compound-engineering/config.local.yaml 讀取 docs_root,若無則讀取 config.yaml;第一個非空值優先生效(<repo-root> = git rev-parse --show-toplevel)。若未設定 -> <root> 預設為 docs,與先前完全一致。
  • 驗證:若有設定值,必須為專案相對路徑,且經符號連結(symlink)解析後的真實路徑需位於儲存庫內部,既不能是儲存庫根目錄,也不能在 .git/ 目錄下。否則應中斷並印出包含 docs_root 及其設定值的錯誤訊息——切勿退回使用 docs
  • 使用:將 <root> 作為唯一的產出物存放位置:若不存在則建立它,並將所有路徑組合為 <root>/<subdir>(搭配該 Skill 自身的子目錄),切勿同時讀取 docs
    <!-- ce-docs-root:end -->

第一階段:診斷

步驟 1:判定外掛程式版本

當平台提供相關介面時,透過讀取外掛程式中繼資料(metadata)或清單(manifest)來偵測已安裝的 compound-engineering 外掛程式版本。如果無法判定版本,請跳過此步驟。

若有找到版本,請透過 --version 傳遞給檢查腳本;否則省略該標籤。

步驟 2:執行健康檢查

在執行腳本之前,請先顯示:

Compound Engineering -- checking your environment...

執行隨附的檢查腳本。將 SKILL_DIR 設定為載入此 ce-setup SKILL.md 的絕對路徑——因為 Bash 工具的 CWD(當前工作目錄)是使用者的專案目錄而非 Skill 目錄,直接使用 scripts/ 相對路徑將無法正常解析:

SKILL_DIR="<absolute path of the directory containing this SKILL.md>";
if [ -f "$SKILL_DIR/scripts/check-health" ]; then bash "$SKILL_DIR/scripts/check-health" --version VERSION; else echo "Bundled health script not found at $SKILL_DIR/scripts/check-health; run the inline checks from ce-setup instead."; fi

如果步驟 1 無法判定版本,請使用相同命令但去掉 --version VERSION

若無法使用該腳本,請執行等效的內聯(inline)檢查:

  1. 使用 command -v 檢查可選工具:agent-browserghjqast-grepffmpeg
  2. 若位於 git 儲存庫內,請透過 git rev-parse --show-toplevel 解析儲存庫根目錄。
  3. 檢查儲存庫根目錄下是否存在已廢棄的 compound-engineering.local.md
  4. 檢查 .compound-engineering/config.local.yaml 是否存在;若存在,檢查 git check-ignore -q .compound-engineering/config.local.yaml 是否成功。
  5. 在可讀取範本的前提下,比較 .compound-engineering/config.local.example.yamlreferences/config-template.yaml;否則提示需手動更新範例。

將診斷結果顯示給使用者。缺少可選工具並不代表設定失敗。健康檢查報告包含解析後的產出物根目錄及提供該設定的層級(詳見前述「產出物根目錄解析」);請呈現該行訊息,以便操作人員確認 CE 產出物的寫入路徑。

步驟 3:判定是否需要修復

使用者可執行的呼叫指令格式化:在設定摘要中,預設使用 /ce-setup;僅當目前宿主環境為 Codex,或明確記載使用前綴 $ 呼叫 Skill 時,才使用 $ce-setup。呼叫指令需渲染為內聯程式碼,且僅輸出其中一種格式。

僅在存在一個或多個專案本地問題時,才進入第二階段:

  • 存在已廢棄的 compound-engineering.local.md
  • .compound-engineering/config.local.yaml 存在,但未被安全地加入 gitignore
  • .compound-engineering/config.local.example.yaml 缺失或已過期
  • 健康檢查報告標示 ce-work 的 Skill 實作引擎不可用或無效、偵測到已停用的單一純量(scalar)路由金鑰,或呈報格式錯誤的休眠 work_engine_preferences
  • 健康檢查報告標示 docs_root 無效(Invalid docs_root ...)——修復前將無法寫入 CE 產出物

若不存在任何專案問題,請回報:

✅ Compound Engineering setup complete

Project config: ✅
Optional capabilities: see diagnostic report above

Run `<rendered invocation>` anytime to re-check.

如果缺少可選工具,請勿提供批量安裝選項。診斷報告已印出對應的安裝命令或專案 URL。請提示:「請僅針對您使用的工作流程安裝可選工具。」

第二階段:修復專案本地問題

解析儲存庫根目錄(git rev-parse --show-toplevel)。以下所有路徑皆相對於儲存庫根目錄,而非當前工作目錄。

步驟 4:移除已廢棄的本地設定

如果儲存庫根目錄下存在 compound-engineering.local.md,請向使用者說明該檔案已廢棄,因為審查 Agent(review-agent)的選擇現已自動化,且留存的本機設定目前均存放於 .compound-engineering/config.local.yaml

詢問是否立即刪除。僅在使用者同意後方可刪除。

步驟 5:更新範例設定

references/config-template.yaml 複製至 <repo-root>/.compound-engineering/config.local.example.yaml(若目錄不存在請予以建立)。該檔案會提交至儲存庫中,應始終反映最新可用的設定選項。

若目前平台無法找到隨附的範本,請印出失敗的來源範本路徑,並告知使用者無法自動更新範例設定。

步驟 6:根據需要建立本地設定

如果 .compound-engineering/config.local.yaml 不存在,請詢問:

Set up a local config file for this project?
This saves optional Compound Engineering preferences such as output formats and product pulse settings.
Everything starts commented out -- you only enable what you need.

1. Yes, create it
2. No thanks

若使用者同意,將 references/config-template.yaml 複製至 <repo-root>/.compound-engineering/config.local.yaml

步驟 6a:修復無效的 CE Work 偏好設定

當健康檢查報告標示 CE Work 的實作引擎不可用或無效、偵測到已停用的單一純量路由金鑰,或呈報格式錯誤的休眠 work_engine_preferences 時,切勿通靈猜測預期的接收者。請向使用者說明報告所指出的確切問題,根據使用者說明的執行環境/模型順序推導出合法的有序 work_engine_preferences 區塊(或者當使用者希望預設採用原生模式時,移除格式錯誤的休眠偏好設定並改用 work_engine_mode: off),移除任何已停用的單一純量路由金鑰,並展示完整的替換區塊。僅在使用者批准預覽後方可編輯這些 CE Work 相關金鑰,且必須保留所有無關的本地設定。重新執行健康檢查,並要求其在設定完成前回報原生模式或預期的正規化有序列表。

步驟 6b:修復無效的 docs_root

當健康檢查報告標示 docs_root 無效時,請向使用者說明報告給出的確切原因(絕對路徑、超出儲存庫範圍、.. 穿越路徑、儲存庫根目錄、.git/ 或非目錄組件)以及產生的後果:在修復之前將無法寫入 CE 產出物,因為 docs_root 在出錯時會採安全關閉(fail closed)機制,而非默默退回使用 docsdocs_root 可能存在於已被版本控制的 .compound-engineering/config.yaml 或本地的 config.local.yaml 中,並優先採用本地設定。請提供選項供使用者選擇:將該值修正為使用者指定之合法的儲存庫相對目錄,或是直接移除有問題的 docs_root 金鑰。請精準提示退回機制:移除該金鑰會退回至下一個有設定 docs_root 的層級(例如刪除 config.local.yaml 中有問題的值,會讓位給已被版本控制的 config.yaml 中所設定的 docs_root),只有當所有層級皆未設定時才會退回預設的 docs——因此當兩個層級皆包含設定值時,需在每一個提供不良設定的層級中修復或移除該值。僅在使用者批准後編輯這些金鑰,並保留所有無關的設定。重新執行健康檢查,要求其在設定完成前回報已成功解析的產出物根目錄。

步驟 7:確保本地設定已被加入 Gitignore

.compound-engineering/config.local.yaml 存在且未被 .gitignore 涵蓋,請提供加入以下規則的選項:

.compound-engineering/*.local.yaml

僅在使用者同意後,將該條目附加至儲存庫根目錄的 .gitignore 尾端。切勿覆蓋無關的 .gitignore 內容。

第三階段:摘要

顯示簡短摘要:

✅ Compound Engineering setup complete

Fixed:     <repo-local fixes applied, or none>
Skipped:   <repo-local fixes declined, or none>
Optional:  <missing optional tools, or all available>

Run `<rendered invocation>` anytime to re-check.