
Custom Agent Usage
- 12 installs
- 7 repo stars
- Updated August 2, 2026
- practicalswan/agent-skills
custom-agent-usage is a Claude Code skill for ai & agent building. It helps solo builders move faster with AI-assisted development.
Key points
- custom-agent-usage
- AI & Agent Building
- AI-coding skill
Custom Agent Usage by the numbers
- 12 all-time installs (skills.sh)
- Ranked #11,592 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
- Data as of Aug 4, 2026 (Skillselion catalog sync)
npx skills add https://github.com/practicalswan/agent-skills --skill custom-agent-usageAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 12 |
|---|---|
| repo stars | ★ 7 |
| Last updated | August 2, 2026 |
| Repository | practicalswan/agent-skills ↗ |
How do I helps with ai & agent building tasks?
Helps with ai & agent building tasks.
Who is it for?
Best when you're working on ai & agent building and need structured help with custom-agent-usage.
Skip if: Teams with no ai & agent building needs, or anyone wanting a generic chat assistant without this specific workflow.
When should I use this skill?
When you need to helps with ai & agent building tasks, or when custom-agent-usage is a claude code skill for ai & agent building. it helps solo builders move faster with ai-assisted development.
What you get
Structured output aligned to custom-agent-usage: custom-agent-usage; AI & Agent Building; AI-coding skill.
Files
Custom Agent Usage
- Leverage native parallel subagent dispatch and 200k+ context windows where available.
Activation Conditions
Use symptom -> action triggers: when one matches, apply this skill and verify with the protocol below.
Activate this skill when:
- Discovering available custom agents from the local Claude or VS Code Insiders agent directories
- Understanding
.agent.mdfile structure and frontmatter - Checking if an agent can be invoked as a subagent
- Learning which
agentNameto use for delegation - Understanding agent tools and capabilities
Custom Agent Discovery
Custom agents for this environment are discovered from these directories:
- Claude agents:
C:\Users\LOQ\.claude\agents - VS Code Insiders prompts:
C:\Users\LOQ\AppData\Roaming\Code - Insiders\User\prompts
Notes:
- Filter to
*.agent.mdwhen discovering subagents. - The VS Code Insiders prompts directory can also contain
.prompt.mdand.instructions.mdfiles that are not subagents.
To discover agents: 1. Search for *.agent.md files in the configured Claude and VS Code Insiders directories. 2. Read frontmatter of each agent file to understand capabilities. 3. Ignore .prompt.md and .instructions.md files when the goal is subagent delegation.
Agent Frontmatter
Key frontmatter fields in .agent.md:
| Field | Purpose | Required? |
|---|---|---|
name | Display name used in agentName parameter | Recommended |
description | What the agent specializes in | Recommended |
tools | Tools available to the agent | Optional |
disable-model-invocation | If false, agent can be invoked as subagent | Required |
Invocability Check
CRITICAL: Only agents with disable-model-invocation: false in frontmatter can be invoked as subagents.
Check frontmatter:
---
name: "Code Explainer"
description: For analyzing and documenting existing code
disable-model-invocation: false # Must be false for subagent delegation
tools: [Read, Search]
---Using Custom Agents
Step 1: Discover Available Agents
Search the real agent directories and keep only *.agent.md files:
Get-ChildItem `
'C:\Users\LOQ\.claude\agents', `
'C:\Users\LOQ\AppData\Roaming\Code - Insiders\User\prompts' `
-Filter *.agent.md `
-FileOr use the helper script:
node .\scripts\agent-finder.jsStep 2: Check Invocability
Verify disable-model-invocation: false is set.
Step 3: Get Agent Name
Use the name field from frontmatter exactly as is.
- If frontmatter has
namefield value, use that value in quotes. - If name is not specified, use the filename without the
.agent.mdextension.
Step 4: Delegate Task
runSubagent({
agentName: "Playwright Tester Mode", // Must match 'name' from frontmatter exactly
description: "Test checkout flow",
prompt: "Perform exploratory testing on the checkout flow: product selection -> cart -> payment confirmation. Generate comprehensive Playwright tests covering success scenarios, validation errors, edge cases (empty cart, payment failures), and accessibility."
})Anti-Patterns
- Delegating or evaluating without a scoped success condition: The output becomes hard to review and easy to overbuild.
- Skipping the evidence step: A workflow that cannot be re-checked quickly is not ready for handoff.
- Bundling unrelated subtasks together: It creates noisy prompts, weaker ownership, and avoidable integration risk.
Verification Protocol
Before claiming "skill applied successfully":
1. Pass/fail: The Custom Agent Usage workflow names the agent boundary, delegated scope, and expected return artifact. 2. Pass/fail: Context passed to helpers is minimal, task-local, and free of hidden expected answers. 3. Pass/fail: Results are integrated only after evidence, diffs, or citations are checked by the controller. 4. Pressure-test scenario: Run the workflow on two similar tasks that must not share assumptions or leaked context. 5. Success metric: Zero context leakage; every delegated output is independently reviewable.
Workflow Example
// Step 1: Main agent analyzes task and identifies need for testing
// "I need comprehensive testing for the checkout flow"
// Step 2: Discover custom testing agent
// Found: C:\Users\LOQ\.claude\agents\playwright-tester.agent.md
// disable-model-invocation: false and name: "Playwright Tester Mode"
// Step 3: Delegate to custom agent
runSubagent({
agentName: "Playwright Tester Mode",
description: "Test checkout flow",
prompt: "Perform exploratory testing on the checkout flow: product selection -> cart -> payment confirmation. Generate comprehensive Playwright tests covering success scenarios, validation errors, edge cases (empty cart, payment failures), and accessibility."
})
// Step 4: Review test output and integrate into test suiteExamples & Scripts
- Agent Discovery Workflow - Examples of finding and using custom agents
- Agent Finder Script - Node.js script to discover and inspect custom agents
<!-- PORTABILITY:START -->
Cross-Client Portability
This skill is written to stay usable across GitHub Copilot, Claude Code, Codex, and Gemini CLI.
- GitHub Copilot: keep the folder in a Copilot-visible skill or plugin path, or wrap the workflow as project instructions if the host does not support portable skill folders directly.
- Claude Code: keep the folder in a local skills directory or a compatible plugin or marketplace source.
- Codex: install or sync the folder into
$CODEX_HOME/skills/<skill-name>and restart Codex after major changes. - Gemini CLI: this repository generates a project command named
/skills:custom-agent-usagefrom this skill. Rebuild commands withpython scripts/export-gemini-skill.py custom-agent-usageand then run/commands reloadinside Gemini CLI.
<!-- PORTABILITY:END -->
<!-- MCP:START -->
MCP Availability And Fallback
Preferred MCP Server: None required
- Fallback prompt: "Use the Custom Agent Usage skill without MCP. Rely on the local
SKILL.md, bundled references or scripts, and manual verification. Show the exact commands, evidence, and final checks you used before concluding." - If the current host does not expose a matching server, use the bundled references, scripts, native toolchain, and manual workflow already described in this skill.
- Treat direct local verification, rendered output, logs, tests, or screenshots as the fallback evidence path before completion.
<!-- MCP:END -->
Related Skills
- agent-task-mapping: Use it when the workflow also needs task-to-agent routing decisions.
- subagent-delegation: Use it when the workflow also needs safe, scoped delegation to helper agents.
- subagent-driven-development: Use it when the workflow also needs plan-driven implementation with reviewer loops.
- agentic-eval: Use it when the workflow also needs rubric-driven evaluation loops.
Changelog
[2026-04-25] - Version 1.2 Verification Protocol Refresh
Added
- Added a
Verification Protocolsection with skill-specific pass/fail checks, one pressure-test scenario, and a measurable success metric. - Added guidance to leverage native parallel subagent dispatch and 200k+ context windows where available.
Changed
- Updated
SKILL.mdfrontmatter toversion: "1.2"andlast_updated: 2026-04-25. - Reframed activation guidance toward symptom -> action triggers and standardized two-stage review wording where applicable.
[2026-04-24] - Version 1.1 Refresh
Changed
- Updated the SKILL frontmatter version to
1.1for the 2026-04-24 catalog refresh.
[2026-04-24] - Skill Refresh
Changed
- Standardized the SKILL frontmatter with version metadata, last-updated date, tags, and a concise catalog description.
- Reformatted the portability and MCP guidance with a preferred server line, a copy-paste fallback prompt, and consistent bullet lists.
- Added a catalog-standard Anti-Patterns section and refreshed the Related Skills links at the end of the skill.
[2026-04-24] - Catalog Audit Cleanup
Fixed
- Removed obsolete standalone Skill Paths guidance that duplicated the generated portability section.
All notable changes to this skill will be documented in this file.
[2026-04-04] - Cross-Client Portability Refresh
Changed
- Added a standard portability note covering GitHub Copilot, Claude Code, Codex, and Gemini CLI.
- Clarified that the core workflow does not require a dedicated MCP server and can run with local tools alone.
Tested
- Validated
SKILL.mdfrontmatter, portability sections, and Gemini export readiness withpython scripts/validate-skills.py.
[2026-03-09] - Custom Agent Discovery Correction
Changed
- Repointed custom-agent discovery guidance to the real local agent directories:
C:\Users\LOQ\.claude\agentsandC:\Users\LOQ\AppData\Roaming\Code - Insiders\User\prompts - Updated the examples to search those directories directly instead of treating repo-local Copilot paths as the primary discovery roots
Fixed
- Removed the stale
.copilot/agentsand.github/copilot/agentsdiscovery guidance - Clarified that the VS Code Insiders prompts directory also contains
.prompt.mdand.instructions.md, so discovery must filter to*.agent.md - Removed the external
globdependency from the helper script so it runs in the plain local Node environment used in this workspace
Tested
- Checked the real local directories on this machine and confirmed both exist
- Verified the correction against the files currently present in the Claude and VS Code Insiders agent directories
[2026-03-09] - Workspace Modernization
Changed
- Updated the workspace and global skill path guidance to match the current
C:/Users/LOQ/.agents/skills/fallback path - Removed duplicate related-skill content so the skill reads cleanly
[2026-02-28] - Description Rewrite & Cross-References
Changed
- Rewrote skill description to ~200 characters with clear, specific activation keywords
- Improved keyword specificity to reduce overlap with related skills
Added
## Related Skillscross-reference table with 2-4 related skills and "Use When" guidance
Custom Agent Usage Examples
Example 1: Finding and Using a Testing Agent
Step 1: Discover Available Agents
Search the real agent directories and keep only *.agent.md files:
Get-ChildItem `
'C:\Users\LOQ\.claude\agents', `
'C:\Users\LOQ\AppData\Roaming\Code - Insiders\User\prompts' `
-Filter *.agent.md `
-FileStep 2: Check Agent Frontmatter
Read the .agent.md file to verify it can be invoked:
---
name: "Playwright Tester Mode"
description: Comprehensive testing with exploratory testing, Playwright test generation
disable-model-invocation: false # Must be false for subagent delegation
tools: [Read, Write, Bash, WebSearch]
---Step 3: Use the Agent
// Delegate with exact name from frontmatter
runSubagent({
agentName: "Playwright Tester Mode",
description: "Test checkout flow",
prompt: "Perform exploratory testing on the checkout flow: product selection -> cart -> payment confirmation. Generate comprehensive Playwright tests covering success scenarios, validation errors, edge cases (empty cart, payment failures), and accessibility."
});Example 2: Finding and Using a Documentation Agent
Discovery Workflow
// 1. Find all .agent.md files in the configured directories
const agentDirs = [
'C:\\Users\\LOQ\\.claude\\agents',
'C:\\Users\\LOQ\\AppData\\Roaming\\Code - Insiders\\User\\prompts'
];
const agentFiles = agentDirs.flatMap(findAgentFilesInDirectory);
function findAgentFilesInDirectory(rootDir) {
return fs.readdirSync(rootDir)
.filter(name => name.endsWith('.agent.md'))
.map(name => path.join(rootDir, name));
}
// 2. Read each file's frontmatter
for (const file of agentFiles) {
const content = readFileSync(file, 'utf8');
const frontmatter = parseFrontmatter(content);
console.log({
name: frontmatter.name,
description: frontmatter.description,
invocable: frontmatter.disableModelInvocation === false
});
}
// 3. Select appropriate agent
// Found: Tech Writer with disable-model-invocation: false
// 4. Delegate task
runSubagent({
agentName: "Tech Writer",
description: "Create API documentation",
prompt: "Create comprehensive API documentation for the authentication endpoints. Include request/response schemas, authentication requirements, error codes, and usage examples."
});Example 3: Checking Invocability
/**
* Check if an agent can be invoked as a subagent
*/
function isAgentInvocable(agentFilePath) {
const content = fs.readFileSync(agentFilePath, 'utf8');
const match = content.match(/disable-model-invocation:\s*(true|false)/);
if (!match) {
return false; // Cannot determine if invocable
}
return match[1] === 'false';
}
// Usage
const playwrightTester = 'C:\\Users\\LOQ\\.claude\\agents\\playwright-tester.agent.md';
if (isAgentInvocable(playwrightTester)) {
console.log('This agent can be invoked as a subagent');
} else {
console.log('This agent cannot be invoked as a subagent');
}Example 4: Getting Agent Name
/**
* Extract agent name from .agent.md frontmatter
*/
function getAgentName(agentFilePath) {
const content = fs.readFileSync(agentFilePath, 'utf8');
// Try to extract name from frontmatter
const nameMatch = content.match(/name:\s*["']([^"']+)["']/);
if (nameMatch) {
return nameMatch[1]; // Use name from frontmatter
}
// Fallback to filename
return path.basename(agentFilePath)
.replace('.agent.md', '')
.replace('.md', '');
}
// Usage
const agentName = getAgentName('C:\\Users\\LOQ\\.claude\\agents\\Code-Explainer.agent.md');
// Returns: "Code Explainer" (from frontmatter)
// or: "Code-Explainer" (from filename if no frontmatter name)Example 5: Complete Workflow
/**
* Find and use appropriate agent for a task
*/
function delegateToAppropriateAgent(taskDescription) {
// 1. Find all agent files
const agentDirs = [
'C:\\Users\\LOQ\\.claude\\agents',
'C:\\Users\\LOQ\\AppData\\Roaming\\Code - Insiders\\User\\prompts'
];
const agentFiles = agentDirs.flatMap(findAgentFilesInDirectory);
// 2. Extract agent info
const agents = agentFiles.map(file => ({
file,
name: getAgentName(file),
description: extractDescription(file),
invocable: isAgentInvocable(file)
}));
// 3. Filter invocable agents
const invocableAgents = agents.filter(a => a.invocable);
// 4. Find matching agent (simplified matching logic)
const matchingAgent = invocableAgents.find(agent =>
taskDescription.toLowerCase().includes(agent.description.toLowerCase().split(' ')[0])
);
if (!matchingAgent) {
console.log('No matching agent found');
return;
}
// 5. Delegate to agent
runSubagent({
agentName: matchingAgent.name,
description: taskDescription,
prompt: `Handle this task: ${taskDescription}`
});
}
// Usage
delegateToAppropriateAgent("Test the shopping cart functionality");
// Would find and delegate to "Playwright Tester Mode"MIT License
Copyright (c) 2026 Sithu Win San
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Custom Agent Discovery Workflow
Frontmatter Structure
Proper .agent.md frontmatter:
---
name: "Display Name"
description: Brief description of what this agent does
disable-model-invocation: false # Required: must be false for subagent delegation
tools: [List of tools available]
---Key Fields Explained
name
- Purpose: Display name used when calling
runSubagent - Required: Not strictly required, but highly recommended for clear delegation
- Usage: Use this exact value in
agentNameparameter - Format: Can include spaces, should be descriptive
description
- Purpose: Explains what the agent specializes in
- Required: Recommended for agent discoverability
- Content: Should describe purpose and use cases
disable-model-invocation
- Purpose: Controls whether agent can be invoked via
runSubagent - Required: Yes, for subagent delegation
- Value: Must be
falsefor subagent invocation - When `true`: Agent cannot be delegated to directly
tools
- Purpose: Lists tools available to the agent
- Required: Optional
- Format: Array of tool names
- Usage: Helps understand agent capabilities
Discoverable Agents
Examples of properly configured agents:
---
name: "Code Explainer"
description: For analyzing and documenting existing code
disable-model-invocation: false
tools: [Read, Search, Symbol]
------
name: "Playwright Tester Mode"
description: For comprehensive web application testing
disable-model-invocation: false
tools: [Browser, Page, Locator]
---Search Patterns
Command Line
# Claude Code agent directory
Get-ChildItem 'C:\Users\LOQ\.claude\agents' -Filter *.agent.md -File
# VS Code Insiders prompts directory
# Keep only *.agent.md because this folder can also contain .prompt.md and .instructions.md
Get-ChildItem 'C:\Users\LOQ\AppData\Roaming\Code - Insiders\User\prompts' -Filter *.agent.md -FileVS Code Search
- Use file search with pattern:
*.agent.md - Search inside:
C:\Users\LOQ\.claude\agentsC:\Users\LOQ\AppData\Roaming\Code - Insiders\User\prompts- Exclude:
node_modules/**
Validation Checklist
Before using an agent as a subagent, verify:
- [ ] File follows
.agent.mdnaming convention - [ ] Has valid YAML frontmatter with
---delimiters - [ ]
disable-model-invocationis explicitly set tofalse - [ ]
namefield is present and meaningful - [ ]
descriptionexplains agent's purpose clearly - [ ] File is in a discoverable directory:
C:\Users\LOQ\.claude\agentsorC:\Users\LOQ\AppData\Roaming\Code - Insiders\User\prompts
/**
* Custom Agent Finder
*
* This script helps you discover, inspect, and use custom agents
* defined in the local Claude and VS Code Insiders agent directories.
*
* Usage: node scripts/agent-finder.js [extra-directory ...]
*/
const fs = require('fs');
const os = require('os');
const path = require('path');
const APPDATA = process.env.APPDATA || path.join(os.homedir(), 'AppData', 'Roaming');
const DEFAULT_SEARCH_ROOTS = [
{
label: 'Claude agents',
dir: path.join(os.homedir(), '.claude', 'agents')
},
{
label: 'VS Code Insiders prompts',
dir: path.join(APPDATA, 'Code - Insiders', 'User', 'prompts')
}
];
/**
* Extract frontmatter from a markdown file.
*/
function extractFrontmatter(filePath) {
const content = fs.readFileSync(filePath, 'utf8');
const frontmatterMatch = content.match(/^---\n(.*?)\n---/s);
if (!frontmatterMatch) {
return null;
}
const frontmatter = {};
const lines = frontmatterMatch[1].split('\n');
for (const line of lines) {
const match = line.match(/^(\w+(?:-\w+)*):\s*(.+)$/);
if (!match) {
continue;
}
const key = match[1];
let value = match[2].trim();
if ((value.startsWith('"') && value.endsWith('"')) ||
(value.startsWith("'") && value.endsWith("'"))) {
value = value.slice(1, -1);
}
if (value === 'true') {
value = true;
} else if (value === 'false') {
value = false;
}
frontmatter[key] = value;
}
return frontmatter;
}
/**
* Build the agent search roots.
*/
function getSearchRoots() {
const extraDirs = process.argv.slice(2).map((dir) => ({
label: `Extra: ${path.resolve(dir)}`,
dir: path.resolve(dir)
}));
return [...DEFAULT_SEARCH_ROOTS, ...extraDirs];
}
/**
* Find all .agent.md files in the configured directories.
*/
async function findAgentFiles(searchRoots) {
const results = [];
for (const root of searchRoots) {
if (!fs.existsSync(root.dir)) {
results.push({ ...root, exists: false, files: [] });
continue;
}
const files = findAgentFilesInDirectory(root.dir);
results.push({ ...root, exists: true, files: files.sort() });
}
return results;
}
/**
* Recursively find .agent.md files without external dependencies.
*/
function findAgentFilesInDirectory(rootDir) {
const files = [];
const skippedDirs = new Set(['node_modules', '.git', 'dist', 'build']);
function walk(currentDir) {
const entries = fs.readdirSync(currentDir, { withFileTypes: true });
for (const entry of entries) {
const fullPath = path.join(currentDir, entry.name);
if (entry.isDirectory()) {
if (!skippedDirs.has(entry.name)) {
walk(fullPath);
}
continue;
}
if (entry.isFile() && entry.name.endsWith('.agent.md')) {
files.push(fullPath);
}
}
}
walk(rootDir);
return files;
}
/**
* Get agent information from a .agent.md file.
*/
function getAgentInfo(filePath, source) {
const frontmatter = extractFrontmatter(filePath);
if (!frontmatter) {
return {
source,
path: filePath,
name: path.basename(filePath).replace('.agent.md', ''),
description: null,
invocable: false,
tools: []
};
}
return {
source,
path: filePath,
name: frontmatter.name || path.basename(filePath).replace('.agent.md', ''),
description: frontmatter.description || null,
invocable: frontmatter['disable-model-invocation'] === false,
tools: frontmatter.tools || []
};
}
/**
* Display agent information in a formatted table.
*/
function displayAgents(searchResults, agents) {
console.log('\nSEARCH ROOTS:\n');
for (const result of searchResults) {
const status = result.exists ? `FOUND (${result.files.length} agent file(s))` : 'MISSING';
console.log(`- ${result.label}: ${result.dir} -> ${status}`);
}
console.log();
if (agents.length === 0) {
console.log('No custom agents found in the configured directories.\n');
console.log('Create *.agent.md files in one of the discovery roots above.');
return;
}
console.log('='.repeat(110));
console.log('CUSTOM AGENTS');
console.log('='.repeat(110) + '\n');
const invocable = agents.filter((agent) => agent.invocable);
const nonInvocable = agents.filter((agent) => !agent.invocable);
if (invocable.length > 0) {
console.log('INVOCABLE AGENTS (can be used with runSubagent):\n');
console.log('Agent Name'.padEnd(35) + 'Source'.padEnd(30) + 'Description');
console.log('-'.repeat(110));
for (const agent of invocable) {
const desc = agent.description || '(no description)';
console.log(
agent.name.padEnd(35) +
agent.source.padEnd(30) +
desc.substring(0, 34)
);
}
console.log();
}
if (nonInvocable.length > 0) {
console.log('NON-INVOCABLE AGENTS (disable-model-invocation: true):\n');
console.log('Agent Name'.padEnd(35) + 'Source'.padEnd(30) + 'Description');
console.log('-'.repeat(110));
for (const agent of nonInvocable) {
const desc = agent.description || '(no description)';
console.log(
agent.name.padEnd(35) +
agent.source.padEnd(30) +
desc.substring(0, 34)
);
}
console.log();
}
if (invocable.length > 0) {
console.log('USAGE EXAMPLE:\n');
console.log('runSubagent({');
console.log(` agentName: "${invocable[0].name}",`);
console.log(' description: "Brief task description",');
console.log(' prompt: "Detailed instructions for the agent..."');
console.log('});\n');
}
}
/**
* Main function.
*/
async function main() {
console.log('Searching for custom agents...\n');
console.log('The VS Code Insiders prompts folder may also contain .prompt.md and .instructions.md files.');
console.log('This script only loads *.agent.md because those are the subagent definitions.\n');
const searchRoots = getSearchRoots();
const searchResults = await findAgentFiles(searchRoots);
const agents = searchResults
.flatMap((result) => result.files.map((filePath) => getAgentInfo(filePath, result.label)))
.sort((left, right) => left.name.localeCompare(right.name));
displayAgents(searchResults, agents);
}
main().catch(console.error);
Related skills
FAQ
What does custom-agent-usage do?
custom-agent-usage is a Claude Code skill for ai & agent building. It helps developers move faster with AI-assisted development.
When should I use custom-agent-usage?
When you need to helps with ai & agent building tasks, or when custom-agent-usage is a claude code skill for ai & agent building. it helps developers move faster with ai-assisted development.
What are the main capabilities?
custom-agent-usage; AI & Agent Building; AI-coding skill.