コマンド
カスタムコマンドを使用すると、TUI でコマンドを実行するときに実行するプロンプトを指定できます。
/my-command
カスタムコマンドは、/init、/undo、/redo、/share、/help
などの組み込みコマンドに追加されます。 詳細はこちら。
コマンドファイルの作成
カスタムコマンドを定義するには、commands/ ディレクトリに Markdown
ファイルを作成します。
.slopcode/commands/test.md を作成します。
---description: Run tests with coverageagent: buildmodel: anthropic/claude-3-5-sonnet-20241022---
Run the full test suite with coverage report and show any failures.Focus on the failing tests and suggest fixes.
フロントマターはコマンドのプロパティを定義します。内容がテンプレートとなります。
/ に続けてコマンド名を入力して、コマンドを使用します。
"/test"
設定
カスタムコマンドは、SlopCode 設定を通じて、または commands/ ディレクトリに
Markdown ファイルを作成することによって追加できます。
JSON
SlopCode 設定で command オプションを使用します:
{ "$schema": "https://slopcode.dev/config.json", "command": { // This becomes the name of the command "test": { // This is the prompt that will be sent to the LLM "template": "Run the full test suite with coverage report and show any failures.\nFocus on the failing tests and suggest fixes.", // This is shown as the description in the TUI "description": "Run tests with coverage", "agent": "build", "model": "anthropic/claude-3-5-sonnet-20241022" } }}
これで、TUI で次のコマンドを実行できるようになります。
/test
Markdown
Markdown ファイルを使用してコマンドを定義することもできます。それらを次の場所に置きます。
- グローバル:
~/.config/slopcode/commands/ - プロジェクトごと:
.slopcode/commands/
---description: Run tests with coverageagent: buildmodel: anthropic/claude-3-5-sonnet-20241022---
Run the full test suite with coverage report and show any failures.Focus on the failing tests and suggest fixes.
Markdown ファイル名がコマンド名になります。たとえば、test.md
を使用すると、 あなたは実行します:
/test
プロンプト構成
カスタムコマンドのプロンプトは、いくつかの特別なプレースホルダーと構文をサポートしています。
引数
$ARGUMENTS プレースホルダーを使用してコマンドに引数を渡します。
---description: Create a new component---
Create a new React component named $ARGUMENTS with TypeScript support.Include proper typing and basic structure.
引数を指定してコマンドを実行します。
/component Button
そして、$ARGUMENTS は Button に置き換えられます。
位置パラメータを使用して個々の引数にアクセスすることもできます。
$1- 最初の引数$2- 2 番目の引数$3- 3 番目の引数- 等々…
例えば:
---description: Create a new file with content---
Create a file named $1 in the directory $2with the following content: $3
次のコマンドを実行します。
/create-file config.json src "{ \"key\": \"value\" }"
これは以下を置き換えます。
$1とconfig.json$2とsrc$3と{ "key": "value" }
シェル出力
!command を使用して、bash コマンド
の出力をプロンプトに挿入します。
たとえば、テストカバレッジを分析するカスタムコマンドを作成するには、次のようにします。
---description: Analyze test coverage---
Here are the current test results:!`npm test`
Based on these results, suggest improvements to increase coverage.
または、最近の変更を確認するには:
---description: Review recent changes---
Recent git commits:!`git log --oneline -10`
Review these changes and suggest any improvements.
コマンドはプロジェクトのルートディレクトリで実行され、その出力はプロンプトの一部になります。
ファイル参照
@ の後にファイル名を指定して、コマンドにファイルを含めます。
---description: Review component---
Review the component in @src/components/Button.tsx.Check for performance issues and suggest improvements.
ファイルの内容はプロンプトに自動的に含まれます。
オプション
設定オプションを詳しく見てみましょう。
テンプレート
template オプションは、コマンドの実行時に LLM
に送信されるプロンプトを定義します。
{ "command": { "test": { "template": "Run the full test suite with coverage report and show any failures.\nFocus on the failing tests and suggest fixes." } }}
これは必須の設定オプションです。
説明
description オプションを使用して、コマンドの動作の簡単な説明を入力します。
{ "command": { "test": { "description": "Run tests with coverage" } }}
これは、コマンドを入力すると TUI に説明として表示されます。
エージェント
オプションで、agent 設定を使用して、このコマンドを実行する
agent を指定します。 これが
subagent
の場合、コマンドはデフォルトでサブエージェントの呼び出しをトリガーします。
この動作を無効にするには、subtask を
false に設定します。
{ "command": { "review": { "agent": "plan" } }}
これはオプションの設定オプションです。指定しない場合、デフォルトで現在のエージェントが使用されます。
サブタスク
subtask ブール値を使用して、コマンドが
subagent 呼び出しを強制的にトリガーします。
これは、コマンドがプライマリコンテキストを汚染せず、エージェントがサブエージェントとして動作するように強制する場合に便利です。
agent 設定で mode が
primary に設定されている場合でも。
{ "command": { "analyze": { "subtask": true } }}
これはオプションの設定オプションです。
モデル
model
設定を使用して、このコマンドのデフォルトモデルをオーバーライドします。
{ "command": { "analyze": { "model": "anthropic/claude-3-5-sonnet-20241022" } }}
これはオプションの設定オプションです。
組み込み
SlopCode には、/init、/undo、/redo、/share、/help
などのいくつかの組み込みコマンドが含まれています。 詳細はこちら。
同じ名前のカスタムコマンドを定義すると、組み込みコマンドがオーバーライドされます。