This commit is contained in:
@@ -5,6 +5,30 @@
|
||||
|
||||
---
|
||||
|
||||
## 0. ツールのカテゴリ区分(workspace tool policy)
|
||||
|
||||
新しいツールを追加した場合、または既存ツールのカテゴリを変更した場合は、**`src/engine/tools/tool-categories.ts`** の `MODULE_SPECS` に登録し、安全(標準)かセンシティブかの区分を決める。workspace tool policy はこの定義を参照して、ワークスペースごとにツールの利用可否を解決する。
|
||||
|
||||
- `SENSITIVE_CATEGORIES`(現在: `ssh` / `browser`)に含まれるカテゴリのツールはデフォルト無効
|
||||
- `SENSITIVE_TOOLS`(現在: `Bash`)に列挙されたツールは、カテゴリが `core` であっても個別にセンシティブ扱い
|
||||
- 新カテゴリは安全側(デフォルト有効)が既定。意図的にセンシティブにする場合のみ `SENSITIVE_CATEGORIES` に追加する
|
||||
|
||||
**対象ファイル:**
|
||||
- `src/engine/tools/tool-categories.ts` — `MODULE_SPECS` / `SENSITIVE_CATEGORIES` / `SENSITIVE_TOOLS`
|
||||
- `src/engine/tools/index.ts` — `tryLoadModule` でのカテゴリ指定
|
||||
- `src/bridge/tools-api.ts` — カテゴリ情報を返す `/api/tools` エンドポイント
|
||||
- `ui/src/content/help/16-tools.md` — カテゴリ別の概要テーブルに行を追加
|
||||
|
||||
**確認方法:**
|
||||
```bash
|
||||
# tool-categories.ts のカテゴリ定義とツール一覧が揃っているか
|
||||
npx vitest run src/engine/tools/tool-categories.test.ts
|
||||
# センシティブ区分が resolver に正しく伝わるか(regression guard)
|
||||
npx vitest run src/engine/tools/resolver.test.ts
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 1. ツールモジュールを新規追加した場合
|
||||
|
||||
**対象ファイル:**
|
||||
@@ -44,6 +68,9 @@ CLAUDE.md のテーブルが古いと、Claude Code 自身が既存ツールを
|
||||
新ツールが使われるべき piece を特定し、`allowed_tools` に含まれているか確認する。
|
||||
CLAUDE.md のモジュールテーブルに新ツール名が含まれているか確認する。
|
||||
|
||||
**実例: TestWorkspaceApp(2026-06-24):**
|
||||
`src/engine/tools/app-test.ts` に追加 → `tools/index.ts` で `tryLoadModule` 追加 → `src/bridge/tools-api.ts` のモジュール一覧に追加 → `pieces/workspace-app.yaml` の verify movement `allowed_tools` に追加 → `src/engine/tools/docs.ts` の `TOOL_DOC_ALIASES` に `testworkspaceapp: 'testworkspaceapp'` を追加 → `docs/tools/testworkspaceapp.md` を新規作成。
|
||||
|
||||
---
|
||||
|
||||
## 3. ツールをリネーム・削除した場合
|
||||
|
||||
Reference in New Issue
Block a user