Skip to content
Back to skills

2904 Tool Categories 6c5054ba

BSecurity

**Problem:** Your test expects `read_file`. Agent uses `bash cat`. Test fails. Both are correct. **Solution:** Test by *intent*, not exact tool name. ---

  • 9 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 11, 2026
toolspythongoshellbashsqlgitapidatabasedocumentation

Works with

  • claude code
  • terminal
  • cli
  • api

Security analysis

B75/100
  • criticalPipes output to a shell interpreter

Pro shows the line behind each finding and how to fix it

Scanned October 11, 2026

npx -y skills add tools-only/X-Skills --skill 2904-tool_categories_6c5054ba --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of 2904 Tool Categories 6c5054ba?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for 2904 Tool Categories 6c5054ba
[![Security: B — Skills Directory](https://www.skillsdirectory.com/api/skills/tools-only-2904-tool-categories-6c5054ba/badge)](https://www.skillsdirectory.com/skills/tools-only-2904-tool-categories-6c5054ba)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

SKILL.md
# Tool Categories (Flexible Matching)

**Problem:** Your test expects `read_file`. Agent uses `bash cat`. Test fails. Both are correct.

**Solution:** Test by *intent*, not exact tool name.

---

## Before (Brittle)

```yaml
expected:
  tools:
    - read_file      # Fails if agent uses bash, text_editor, etc.
```

## After (Flexible)

```yaml
expected:
  categories:
    - file_read      # Passes for read_file, bash cat, text_editor, etc.
```

---

## Built-in Categories

| Category | Matches |
|----------|---------|
| `file_read` | read_file, bash, text_editor, cat, view, str_replace_editor |
| `file_write` | write_file, bash, text_editor, edit_file, create_file |
| `file_list` | list_directory, bash, ls, find, directory_tree |
| `search` | grep, ripgrep, bash, search_files, code_search |
| `shell` | bash, shell, terminal, execute, run_command |
| `web` | web_search, browse, fetch_url, http_request, curl |
| `git` | git, bash, git_commit, git_push, github |
| `python` | python, bash, python_repl, execute_python, jupyter |

---

## Custom Categories

Add project-specific categories in `config.yaml`:

```yaml
# .evalview/config.yaml
tool_categories:
  database:
    - postgres_query
    - mysql_execute
    - sql_run
  my_custom_api:
    - internal_api_call
    - legacy_endpoint
```

---

## Why This Matters

Different agents use different tools for the same task. Categories let you test **behavior**, not **implementation**.

For example, all of these accomplish "read a file":
- Claude Code: `read_file`
- OpenAI: `bash` with `cat`
- Custom agent: `text_editor`

With categories, your test passes for all of them:

```yaml
expected:
  categories:
    - file_read  # All three approaches pass
```

---

## Combining Tools and Categories

You can mix exact tool names and categories:

```yaml
expected:
  tools:
    - my_specific_tool    # Must use this exact tool
  categories:
    - file_read           # Plus any file reading approach
```

---

## Related Documentation

- [Evaluation Metrics](EVALUATION_METRICS.md)
- [CLI Reference](CLI_REFERENCE.md)

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.