Spec-crew tools-expert
This skill should be used when selecting CrewAI built-in tools, composing agent toolchains, or creating production-ready custom tools with BaseTool or @tool, including schema validation, dependency management, caching, async support, and testing.
install
source · Clone the upstream repo
git clone https://github.com/victorgrein/spec-crew
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/victorgrein/spec-crew "$T" && mkdir -p ~/.claude/skills && cp -r "$T/templates/shared/skills/tools-expert" ~/.claude/skills/victorgrein-spec-crew-tools-expert && rm -rf "$T"
manifest:
templates/shared/skills/tools-expert/SKILL.mdsource content
CrewAI Tools Expert
Purpose
Enable expert-level tool decisions in CrewAI projects by prioritizing built-in tools first and creating custom tools only when a capability gap is explicit.
When To Use
- Select tools for a new or existing agent
- Convert requirements into a minimal and reliable tool stack
- Decide between built-in tools,
,@tool
, orBaseTool
patternsRagTool - Implement custom tools with robust validation, error handling, and async support
- Integrate external APIs, MCP servers, and enterprise systems
Operating Principles
- Prefer built-in tools before writing custom code
- Minimize tool count per agent to reduce tool-selection ambiguity
- Match tool outputs to task contracts and downstream consumers
- Validate credentials, dependencies, and failure modes early
- Keep tool outputs concise, deterministic, and directly usable by agents
Execution Workflow
1) Profile the Request
- Extract inputs, expected outputs, latency constraints, security constraints, and external systems
- Classify the dominant tool domain using
references/tools-landscape.md - Record hard constraints such as offline execution, strict schemas, or approved vendors
2) Attempt Built-In Coverage
- Identify candidate tools by category from
references/tools-landscape.md - Confirm setup requirements (API keys, package extras, authentication)
- Compose the smallest viable built-in stack to satisfy requirements
- Cap noisy tools with
when repeated calls add little valuemax_usage_count
3) Choose Build Path
- Use
to choose among:references/selection-and-architecture.md- Built-in only
- Hybrid (built-in + one custom tool)
- Fully custom (rare; use only when required)
- Choose custom style:
- Use
for lightweight, stateless transforms@tool - Use
for configurable/stateful tools with env vars or dependenciesBaseTool - Use
or adapter patterns for retrieval-oriented sourcesRagTool
- Use
4) Scaffold and Implement Custom Tool
- Generate starter files with
scripts/scaffold_custom_tool.py - Use templates in
for manual edits or fast bootstrapassets/templates/ - Apply standards in
references/custom-tool-playbook.md - Enforce:
- Explicit
with Pydanticargs_schema
descriptionsField - Clear
and action-orientednamedescription - Deterministic
output_run - Optional
for true async I/O_arun - Actionable errors without stack-trace leakage
- Explicit
5) Validate Quality
- Run the implementation checklist in
references/custom-tool-playbook.md - Verify tests cover:
- Missing/invalid environment variables
- Input validation boundaries
- Happy path output shape
- External failures (timeouts, HTTP errors, empty payloads)
- Confirm docs include usage, env vars, install extras, and examples
6) Integrate Into Agent Design
- Attach tools by role specialization, not by convenience
- Keep each agent toolset domain-coherent
- Document why each tool exists and when to call it
- Prefer orchestration with specialized worker tools for complex crews
YAML Agent Example
# agents.yaml research_tools_agent: role: Tooling Research Analyst goal: Select the smallest reliable built-in CrewAI tool stack for each request. backstory: Expert in built-in tools, API setup constraints, and capability-gap detection. verbose: true tools: - SerperDevTool - WebsiteSearchTool - FileReadTool tool_engineer_agent: role: CrewAI Tool Engineer goal: Define production-ready custom tool specs only when built-ins do not satisfy requirements. backstory: Specialist in BaseTool patterns, input schema design, and failure-safe integration rules. verbose: true tools: - DirectoryReadTool - FileReadTool
YAML Task Example
# tasks.yaml tool_gap_analysis_task: description: > Evaluate whether built-in CrewAI tools can satisfy the request. Produce a capability matrix and justify every selected built-in tool. expected_output: > Markdown table listing selected tools, required credentials, setup notes, and explicit capability gaps. agent: research_tools_agent custom_tool_spec_task: description: > If a capability gap exists, define a custom tool specification with args_schema fields, env vars, package dependencies, caching policy, async policy, and error-handling strategy. expected_output: > Structured spec and acceptance checklist for implementation and tests. agent: tool_engineer_agent context: - tool_gap_analysis_task
Custom Tool Scaffolding
- Use
when implementation boilerplate is needed.scripts/scaffold_custom_tool.py
Resource Map
: Built-in tool categories, quick picks, and coverage mapreferences/tools-landscape.md
: Built-in vs custom decision frameworkreferences/selection-and-architecture.md
: Production implementation standardsreferences/custom-tool-playbook.md
: zread findings from CrewAI tools repository and maintenance notesreferences/repo-notes.md
: Deterministic custom-tool starter generatorscripts/scaffold_custom_tool.py
: Agent template for built-in tool strategyassets/templates/agents-tools-expert.yaml
: Task template for built-in selection and gap analysisassets/templates/tasks-tools-selection.yaml
: Agent template for custom-tool specification workassets/templates/agents-custom-tooling.yaml
: Task template for custom-tool implementation planningassets/templates/tasks-custom-tooling.yaml
Source-of-Truth Notes
- Treat CrewAI docs as primary guidance, especially
https://docs.crewai.com/en/tools/overview - Use
for repository conventions validated via zread MCPreferences/repo-notes.md - Recheck upstream changes regularly because the historical
repository is marked deprecated and points to a maintained monorepo locationcrewAI-tools