NAME
Langertha::Raider::SkillResolver - Internal chain of skill resolvers: a skill name to its directory and SKILL.md
VERSION
version 0.504
SYNOPSIS
# Internal to Langertha-Raider -- no API promise.
my $resolver = Langertha::Raider::SkillResolver->new(
resolvers => [
Langertha::Raider::SkillResolver::Catalog->new( catalog => $context->skill_catalog ),
],
);
my $skill = $resolver->resolve('getty-perl-core');
# { name => 'getty-perl-core', dir => '/abs/.claude/skills/getty-perl-core',
# file => '/abs/.claude/skills/getty-perl-core/SKILL.md' } or undef
DESCRIPTION
Internal module. Its interface may change without notice.
The one interface through which a skill an agent declares is found when it is briefed (ADR 0020 §6): an ordered chain of resolvers, each an object with a resolve($name) method that returns { name, dir, file } or nothing. The first resolver that knows the name wins.
The chain of an application is "skill_resolver" in Langertha::Raider::Context, built from "skill_resolvers" in Langertha::Raider::Context: the skill catalogue of the context (Langertha::Raider::SkillResolver::Catalog), then -- in the Claude layout -- the skills of the sources in skilletor.json, read straight from the source without installing them (Langertha::Raider::SkillResolver::Skilletor).
A resolver may also answer why_unresolved($name) with a reason for a name it knows of but cannot serve (a template, a source that cannot be fetched); "why_unresolved" asks them.
resolvers
The resolvers, first asked first. Defaults to none (nothing resolves).
resolve
my $skill = $resolver->resolve('superpowers:brainstorming');
The { name, dir, file } of the first resolver that knows $name, or undef.
why_unresolved
my $reason = $resolver->why_unresolved('tpl'); # 'skilletor: ...' or undef
The first reason a resolver of the chain gives for $name not resolving (a resolver without a why_unresolved method has none), or undef.
SEE ALSO
SUPPORT
Issues
Please report bugs and feature requests at https://github.com/Getty/langertha-raider/issues.
IRC
Join #langertha on irc.perl.org or message Getty directly.
CONTRIBUTING
Contributions are welcome! Please fork the repository and submit a pull request.
AUTHOR
Torsten Raudssus <torsten@raudssus.de> https://raudssus.de/
COPYRIGHT AND LICENSE
This software is copyright (c) 2026 by Torsten Raudssus.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.