功能

斜線命令

建立自訂斜線命令來自動化重複任務、執行內建命令,並透過簡單的 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/review
  • test-api.md/test-api
  • deploy-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 面板中的命令圖示開啟命令管理員。

建立新命令

  1. 在輸入欄位中輸入命令名稱(例如,「範例命令名稱」)
  2. 點選 + 按鈕建立命令
  3. 新檔案將自動建立並開啟(例如,sample-command-name.md

使用斜線命令

在聊天中輸入 / 查看包含兩種命令類型的統一選單。選單在同一介面中同時顯示自訂工作流程命令和模式切換命令。

  1. 統一選單:自訂命令和模式切換命令一起顯示
  2. 自動完成:開始輸入以篩選命令(例如,/sam 顯示 sample-command-name
  3. 模糊搜尋:即使部分匹配也能找到命令
  4. 描述預覽:在選單中查看命令描述
  5. 視覺指示器:模式命令透過特殊圖示與自訂命令區分

引數提示

引數提示為斜線命令提供即時幫助,當命令需要額外輸入時,顯示你需要提供什麼類型的資訊。

當你輸入 / 開啟命令選單時,需要引數的命令旁邊會顯示淺灰色提示。此提示告訴你命令期望什麼類型的引數。

例如:

  • /mode <mode_slug> – 提示 <mode_slug> 表示你應該提供像 codedebug 這樣的模式名稱
  • /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>)需要替換為實際值。保留提示文字很可能導致命令失敗或行為異常。

最佳實務

命令命名

  • 使用描述性、面向行動的名稱
  • 保持名稱簡潔但清晰
  • 多詞命令使用連字符
  • 避免使用 helptest 等通用名稱
  • 注意:名稱會自動 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-1new-command-2

關於模式命令

斜線選單包含模式切換命令(如 /code/ask),這些命令從根本上改變 AI 的操作模式——它們不只是注入文字,而是切換整個 AI 上下文。你建立的自訂模式也會作為斜線命令出現(例如,slug 為 reviewer 的模式變為 /reviewer)。這些模式命令不能被自訂工作流程命令覆蓋。

模式自訂模式中了解更多。

這個主題如何?