斜線命令
建立自訂斜線命令來自動化重複任務、執行內建命令,並透過簡單的 markdown 檔案擴充 Bob 的功能。
概述
首先,在聊天中輸入 / 查看所有可用命令,或透過向 .bob/commands/ 或 ~/.bob/commands/ 新增 markdown 檔案來建立自己的命令。
主要優勢:
- 工作流程自動化:將複雜的多步驟流程轉化為單一命令
- 團隊標準化:與團隊共享命令以保持一致的做法
- 上下文保留:在每個命令中包含專案特定的上下文
- 快速存取:透過模糊搜尋和自動完成實現即時命令發現
內建命令
Bob 包含幾個提供核心功能的內建命令:
/init
使用 Bob 初始化新專案或 workspace。此命令協助設定在專案中使用 Bob 所需的配置和結構。
/review
透過全面分析審查程式碼變更。此命令可以多種方式使用:
/review– 審查工作目錄中本地未提交的變更/review <branch>– 將分支與目前分支(HEAD)進行比較/review #<issue-number> --issue-coverage– 根據 GitHub issue 驗證本地變更/review <issue-url> --issue-coverage– 根據 GitHub issue URL 驗證本地變更
review 命令執行徹底的程式碼分析,包括 bug 偵測、安全性檢查、效能問題和樣式一致性。
/create-pr
建立帶有 AI 生成描述的 pull request。此命令分析你的變更並根據分支之間的 diff 生成全面的 PR 描述。
建立自訂命令
自訂命令透過向特定目錄新增 markdown 檔案來擴充 Bob 的功能:
- 專案特定:workspace 根目錄中的
.bob/commands/ - 全域:主目錄中的
~/.bob/commands/
檔案名稱成為命令名稱。例如:
review.md→/reviewtest-api.md→/test-apideploy-check.md→/deploy-check
命令名稱處理
透過 UI 建立命令時,命令名稱會自動處理:
- 轉換為小寫
- 空格替換為連字符
- 移除特殊字元
- 移除前導/尾隨連字符
範例:"我的酷命令!"變為 my-cool-command(拉丁字元的情況下)
基本命令格式
透過新增 markdown 檔案建立簡單命令:
Help me review this code for security issues and suggest improvements.帶 frontmatter 的進階命令
使用 frontmatter 新增中繼資料以增強功能:
---
description: Create a new API endpoint
argument-hint: <endpoint-name> <http-method>
---
Create a new API endpoint called $1 that handles $2 requests.
Include proper error handling and documentation.frontmatter 欄位
description:顯示在命令選單中,幫助使用者了解命令的目的argument-hint:在使用命令時提供關於預期參數的提示
命令管理介面
Bob 提供專用介面來管理自訂命令。
點選 Bob 面板中的命令圖示開啟命令管理員。
建立新命令
- 在輸入欄位中輸入命令名稱(例如,「範例命令名稱」)
- 點選 + 按鈕建立命令
- 新檔案將自動建立並開啟(例如,
sample-command-name.md)
使用斜線命令
在聊天中輸入 / 查看包含兩種命令類型的統一選單。選單在同一介面中同時顯示自訂工作流程命令和模式切換命令。
- 統一選單:自訂命令和模式切換命令一起顯示
- 自動完成:開始輸入以篩選命令(例如,
/sam顯示sample-command-name) - 模糊搜尋:即使部分匹配也能找到命令
- 描述預覽:在選單中查看命令描述
- 視覺指示器:模式命令透過特殊圖示與自訂命令區分
引數提示
引數提示為斜線命令提供即時幫助,當命令需要額外輸入時,顯示你需要提供什麼類型的資訊。
當你輸入 / 開啟命令選單時,需要引數的命令旁邊會顯示淺灰色提示。此提示告訴你命令期望什麼類型的引數。
例如:
/mode <mode_slug>– 提示<mode_slug>表示你應該提供像code或debug這樣的模式名稱/api-endpoint <endpoint-name> <http-method>– 顯示你需要提供端點名稱和 HTTP 方法
選擇命令後,它將插入到聊天輸入中,後跟一個空格。提示不會被插入;它只是一個視覺指南,幫助你知道接下來要輸入什麼。你必須在命令後手動輸入引數。
向自訂命令新增引數提示
你可以使用 frontmatter 中的 argument-hint 欄位向自訂命令新增引數提示:
---
description: Create a new API endpoint
argument-hint: <endpoint-name> <http-method>
---
Create a new API endpoint called $1 that handles $2 requests.這將在命令選單中顯示為 /api-endpoint <endpoint-name> <http-method>。
引數提示的最佳實務
- 具體明確:使用描述性佔位符如
<file-path>而不是通用的<arg> - 顯示多個引數:如果命令需要多個輸入,全部顯示:
<source><destination> - 使用一致格式:始終用角括號包裹佔位符:
<佔位符> - 保持簡潔:提示應該簡短清晰
常見問題
- 「如果不提供引數會怎樣?」命令可能無法正常運作,或者可能會提示你提供更多資訊。提示的目的是幫助你第一次就做對。
- 「所有命令都有提示嗎?」不,只有設計為接受引數的命令才會有提示。不需要額外輸入的命令不會顯示提示。
- 「我可以不替換提示直接使用命令嗎?」提示文字(如
<mode_slug>)需要替換為實際值。保留提示文字很可能導致命令失敗或行為異常。
最佳實務
命令命名
- 使用描述性、面向行動的名稱
- 保持名稱簡潔但清晰
- 多詞命令使用連字符
- 避免使用
help或test等通用名稱 - 注意:名稱會自動 slug 化(小寫,移除特殊字元)
.md副檔名根據需要自動新增/移除
命令內容
- 以明確的指令開始
- 使用結構化格式(清單、章節)
- 包含具體要求
- 引用專案慣例
- 保持命令專注於單一任務
組織
- 在子目錄中對相關命令分組
- 使用一致的命名模式
- 記錄複雜命令
- 對命令進行版本控制
- 在專案存放庫中共享團隊命令
故障排除
命令未顯示
- 檢查檔案位置:確保自訂命令檔案在
.bob/commands/或~/.bob/commands/中 - 驗證檔案副檔名:自訂命令必須是
.md檔案
命令未找到
當找不到斜線命令時,LLM 將看到:
The slash command '/unknown-command' was not found. Please check the command name and try again.命令衝突
- 自訂專案命令會覆蓋同名的全域自訂命令
- 使用唯一名稱以避免衝突
- 透過 UI 建立重複名稱時,會附加數字(例如,
new-command-1、new-command-2)
關於模式命令
斜線選單包含模式切換命令(如 /code、/ask),這些命令從根本上改變 AI 的操作模式——它們不只是注入文字,而是切換整個 AI 上下文。你建立的自訂模式也會作為斜線命令出現(例如,slug 為 reviewer 的模式變為 /reviewer)。這些模式命令不能被自訂工作流程命令覆蓋。