Provider System
Auto-Skill uses a pluggable provider system for skill discovery. Providers implement the SkillProvider protocol and are orchestrated by the ProviderManager.
Built-in Providers
LocalProvider
Searches ~/.claude/skills/ for existing SKILL.md files. Parses YAML frontmatter to extract metadata.
SkillsShProvider
Wraps the Skills.sh client to search 27,000+ community skills. Queries the skills.sh API for skill discovery, trending, and details.
WellKnownProvider
Implements RFC 8615 discovery by fetching /.well-known/agent-skills.json from configured domains. Includes 15-minute response caching.
auto-skill discover --wellknown # Include well-known discovery
Custom Providers
Implement the SkillProvider protocol:
import { SkillProvider, SkillSearchResult } from '../core/providers/base';
class MyProvider implements SkillProvider {
get name(): string {
return 'my-provider';
}
get sourceId(): string {
return 'custom';
}
isAvailable(): boolean {
return true;
}
search(query: string, limit = 10): SkillSearchResult[] {
// Return matching skills
return [];
}
getSkillDetails(skillId: string): Record<string, unknown> | null {
// Return full skill metadata
return null;
}
}
Register with the ProviderManager:
import { ProviderManager } from '../core/providers/manager';
const manager = new ProviderManager();
manager.register(new MyProvider());
const results = manager.searchAll('payment', 10);
Providers are queried in registration order (first = highest priority). Failed providers are skipped gracefully.