tool-creator
npx skills add https://github.com/oimiragieo/agent-studio --skill tool-creator
Agent 安装分布
Skill 文档
Tool Creator
Create executable tool files in .claude/tools/<category>/. Tools are organized into categories like cli, analysis, validation, integrations, etc.
Step 0: Check for Existing Tool
Before creating, check if tool already exists:
find .claude/tools/ -name "<tool-name>.*" -type f
If EXISTS â use Read to inspect the current tool file, then Edit to apply changes directly. Run the post-creation integration steps (Step 4) after updating.
If NEW â continue with Step 0.5.
Step 0.5: Companion Check
Before proceeding with creation, run the ecosystem companion check:
- Use
companion-check.cjsfrom.claude/lib/creators/companion-check.cjs - Call
checkCompanions("tool", "{tool-name}")to identify companion artifacts - Review the companion checklist â note which required/recommended companions are missing
- Plan to create or verify missing companions after this artifact is complete
- Include companion findings in post-creation integration notes
This step is informational (does not block creation) but ensures the full artifact ecosystem is considered.
When to Use
- Creating reusable command-line utilities
- Building analysis or validation scripts
- Implementing framework automation tools
- Adding workflow integration utilities
Tool File Format
Tools are CommonJS or ESM modules with:
#!/usr/bin/env node
/**
* Tool Name - Brief description
*
* Usage:
* node .claude/tools/<category>/<tool-name>.cjs [options]
*
* Options:
* --help Show help
* --option Description
*/
const main = async () => {
// Tool implementation
};
if (require.main === module) {
main().catch(console.error);
}
module.exports = { main };
Tool Categories
| Category | Purpose | Examples |
|---|---|---|
cli |
Command-line utilities | validators, formatters |
analysis |
Code analysis tools | complexity, dependencies |
validation |
Validation scripts | schema, lint |
integrations |
External integration tools | API clients, webhooks |
maintenance |
Framework maintenance | cleanup, migration |
optimization |
Performance optimization | indexing, caching |
runtime |
Runtime utilities | config readers, loaders |
visualization |
Diagram and graph generation | mermaid, graphviz |
workflow |
Workflow automation | task runners, orchestrators |
gates |
Quality gates and checks | coverage, security |
context |
Context management | compression, handoff |
Creation Workflow
Step 1: Validate Inputs
// Validate tool name (lowercase, hyphens, no spaces)
const toolName = args.name.toLowerCase().replace(/[^a-z0-9-]/g, '-');
// Validate category exists
const validCategories = [
'cli',
'analysis',
'validation',
'integrations',
'maintenance',
'optimization',
'runtime',
'visualization',
'workflow',
'gates',
'context',
];
if (!validCategories.includes(args.category)) {
throw new Error(`Invalid category. Must be one of: ${validCategories.join(', ')}`);
}
Step 2: Create Tool File
const toolPath = `.claude/tools/${args.category}/${toolName}.cjs`;
// Create tool directory if it doesn't exist
await mkdir(`.claude/tools/${args.category}`, { recursive: true });
// Generate tool content
const content = `#!/usr/bin/env node
/**
* ${toolName.replace(/-/g, ' ').replace(/\b\w/g, l => l.toUpperCase())} - ${args.description || 'Tool description'}
*
* Usage:
* node .claude/tools/${args.category}/${toolName}.cjs [options]
*
* Options:
* --help Show this help message
*/
${args.implementation}
if (require.main === module) {
main().catch(console.error);
}
module.exports = { main };
`;
await writeFile(toolPath, content);
// Make executable (Unix-like systems)
if (process.platform !== 'win32') {
await chmod(toolPath, '755');
}
Step 3: Update Tool Catalog
const catalogPath = '.claude/context/artifacts/catalogs/tool-catalog.md';
// Add entry to catalog under appropriate category
const newEntry = `| ${toolName} | ${args.description} | .claude/tools/${args.category}/${toolName}.cjs | active |`;
// Insert into catalog preserving category structure
Step 4: Run Post-Creation Integration
const {
runIntegrationChecklist,
queueCrossCreatorReview,
} = require('.claude/lib/creator-commons.cjs');
await runIntegrationChecklist('tool', toolPath);
await queueCrossCreatorReview('tool', toolPath, {
artifactName: toolName,
createdBy: 'tool-creator',
category: args.category,
});
Post-Creation Integration
After tool creation, run integration checklist:
const {
runIntegrationChecklist,
queueCrossCreatorReview,
} = require('.claude/lib/creator-commons.cjs');
// 1. Run integration checklist
const result = await runIntegrationChecklist('tool', '.claude/tools/<category>/<tool-name>.cjs');
// 2. Queue cross-creator review
await queueCrossCreatorReview('tool', '.claude/tools/<category>/<tool-name>.cjs', {
artifactName: '<tool-name>',
createdBy: 'tool-creator',
category: '<category>',
});
// 3. Review impact report
// Check result.mustHave for failures - address before marking complete
Integration verification:
- Tool added to tool-catalog.md under correct category
- Tool file is executable (Unix) or runnable (Windows)
- Tool has help text and usage examples
- Tool passes basic smoke test
Usage Examples
Create Validation Tool
Skill({
skill: 'tool-creator',
args: `--name schema-validator --category validation --implementation "
const validateSchema = async () => {
console.log('Validating schema...');
};
const main = async () => {
await validateSchema();
};
"`,
});
Create Analysis Tool
Skill({
skill: 'tool-creator',
args: `--name complexity-analyzer --category analysis --implementation "
const analyzeComplexity = async (filePath) => {
console.log('Analyzing complexity for:', filePath);
};
const main = async () => {
const [,, filePath] = process.argv;
await analyzeComplexity(filePath);
};
"`,
});
Related Skills
skill-creator– Create skills that invoke toolshook-creator– Create pre/post hooks that wrap tool execution
Memory Protocol (MANDATORY)
Before starting:
Read .claude/context/memory/learnings.md
After completing:
- New tool pattern â
.claude/context/memory/learnings.md - Tool creation issue â
.claude/context/memory/issues.md - Category decision â
.claude/context/memory/decisions.md
ASSUME INTERRUPTION: If it’s not in memory, it didn’t happen.
Cross-Reference: Creator Ecosystem
This skill is part of the Creator Ecosystem. When research uncovers gaps, trigger the appropriate companion creator:
| Gap Discovered | Required Artifact | Creator to Invoke | When |
|---|---|---|---|
| Domain knowledge needs a reusable skill | skill | Skill({ skill: 'skill-creator' }) |
Gap is a full skill domain |
| Existing skill has incomplete coverage | skill update | Skill({ skill: 'skill-updater' }) |
Close skill exists but incomplete |
| Capability needs a dedicated agent | agent | Skill({ skill: 'agent-creator' }) |
Agent to own the capability |
| Existing agent needs capability update | agent update | Skill({ skill: 'agent-updater' }) |
Close agent exists but incomplete |
| Domain needs code/project scaffolding | template | Skill({ skill: 'template-creator' }) |
Reusable code patterns needed |
| Behavior needs pre/post execution guards | hook | Skill({ skill: 'hook-creator' }) |
Enforcement behavior required |
| Process needs multi-phase orchestration | workflow | Skill({ skill: 'workflow-creator' }) |
Multi-step coordination needed |
| Artifact needs structured I/O validation | schema | Skill({ skill: 'schema-creator' }) |
JSON schema for artifact I/O |
| User interaction needs a slash command | command | Skill({ skill: 'command-creator' }) |
User-facing shortcut needed |
| Repeated logic needs a reusable CLI tool | tool | Skill({ skill: 'tool-creator' }) |
CLI utility needed |
| Narrow/single-artifact capability only | inline | Document within this artifact only | Too specific to generalize |
Ecosystem Alignment Contract (MANDATORY)
This creator skill is part of a coordinated creator ecosystem. Any artifact created here must align with and validate against related creators:
agent-creatorfor ownership and execution pathsskill-creatorfor capability packaging and assignmenttool-creatorfor executable automation surfaceshook-creatorfor enforcement and guardrailsrule-creatorandsemgrep-rule-creatorfor policy and static checkstemplate-creatorfor standardized scaffoldsworkflow-creatorfor orchestration and phase gatingcommand-creatorfor user/operator command UX
Cross-Creator Handshake (Required)
Before completion, verify all relevant handshakes:
- Artifact route exists in
.claude/CLAUDE.mdand related routing docs. - Discovery/registry entries are updated (catalog/index/registry as applicable).
- Companion artifacts are created or explicitly waived with reason.
validate-integration.cjspasses for the created artifact.- Skill index is regenerated when skill metadata changes.
Research Gate (Exa + arXiv â BOTH MANDATORY)
For new patterns, templates, or workflows, research is mandatory:
- Use Exa for implementation and ecosystem patterns:
mcp__Exa__web_search_exa({ query: '<topic> 2025 best practices' })mcp__Exa__get_code_context_exa({ query: '<topic> implementation examples' })
- Search arXiv for academic research (mandatory for AI/ML, agents, evaluation, orchestration, memory/RAG, security):
- Via Exa:
mcp__Exa__web_search_exa({ query: 'site:arxiv.org <topic> 2024 2025' }) - Direct API:
WebFetch({ url: 'https://arxiv.org/search/?query=<topic>&searchtype=all&start=0' })
- Via Exa:
- Record decisions, constraints, and non-goals in artifact references/docs.
- Keep updates minimal and avoid overengineering.
arXiv is mandatory (not fallback) when topic involves: AI agents, LLM evaluation, orchestration, memory/RAG, security, static analysis, or any emerging methodology.
Regression-Safe Delivery
- Follow strict RED -> GREEN -> REFACTOR for behavior changes.
- Run targeted tests for changed modules.
- Run lint/format on changed files.
- Keep commits scoped by concern (logic/docs/generated artifacts).