NAME
App::karr::Role::SkillFile - The one way karr finds and writes the bundled skill directory
VERSION
version 0.601
DESCRIPTION
Three commands need the bundled skill: karr skill install and karr skill update write it, karr skill show prints its SKILL.md, and karr init --claude-skill writes the same .claude/skills/kanban-issues-karr-cli/ that karr skill install --agent claude-code does. This role is the single place that knows both where that skill comes from and how it has to be written, so neither rule can be fixed in one command and left wrong in the other, which is exactly what happened between tickets #142 and #145.
The skill is a directory, not one file: SKILL.md, the short part an agent loads on every trigger, plus references/*.md, the parts it reads on demand once SKILL.md has pointed it there (#285). It ships as share/kanban-issues-karr-cli/, and every *.md under that directory is what gets installed -- nothing is listed by name, so a new reference file ships without a code change.
The lookup: that directory via File::ShareDir when the dist is installed, and out of the source tree this file was loaded from when it is not.
The write: every target file is written in place, keeping its inode, so a SKILL.md that is one link of a hardlink chain shared across projects stays part of that chain.
SEE ALSO
App::karr::Cmd::Skill, App::karr::Cmd::Init
SUPPORT
Issues
Please report bugs and feature requests on GitHub at https://github.com/Getty/karr/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 <getty@cpan.org>
COPYRIGHT AND LICENSE
This software is Copyright (c) 2026 by Torsten Raudssus <torsten@raudssus.de> https://raudssus.de/.
This is free software, licensed under:
The Artistic License 2.0 (GPL Compatible)