NAME

Skilletor::Entry - Install entries ([type:]name@source, patterns, bundles) and the names they hold

VERSION

version 0.001

SYNOPSIS

use Skilletor::Entry qw( parse_entry parse_bundle_entry name_key is_source_name );

my $item = parse_entry( 'skill:perl-moo@shared', 'skill', $file, 'install.skills[0]' );
# { type => 'skill', name => 'perl-moo', source => 'shared',
#   target => 'skills/perl-moo', raw => 'skill:perl-moo@shared' }

my $bundle = parse_bundle_entry( 'bundle:perl@shared', $file, 'install.bundles[0]' );
# { name => 'perl', source => 'shared', raw => 'bundle:perl@shared' }

DESCRIPTION

The pieces of the reference's config.ts that read one install entry and the names in it. The last @ splits name and source; a type: prefix must name the list's type (bundle: under install.bundles); a name holding * is a pattern. Every error is a Skilletor::Error::Config worded as the reference words it, starting with the file and the entry's place (install.skills[2]).

parse_entry

parse_entry( $entry, $type, $file, $where );

An entry of install.skills, install.agents or install.rules. A pattern comes back the same way; "is_pattern" on its name tells it apart.

parse_bundle_entry

parse_bundle_entry( $entry, $file, $where );

seen_key

The key under which two entries of one scope are the same declaration.

name_key

An item name as a key: names equal ignoring case are one name, on every platform (they install into one directory on macOS and Windows).

is_source_name

^[A-Za-z0-9][A-Za-z0-9._-]*$.

is_pattern

True when a name contains *.

ITEM_TYPES

skill, agent, rule.

HARNESSES

claude, codex, hermes.

INSTALL_KEYS

The config keys skills, agents, rules with their types, as a list of pairs in this order; "INSTALL_KEY_OF" maps a type back.

INSTALL_KEY_OF

{ skill => 'skills', agent => 'agents', rule => 'rules' }.

WILDCARD

*, the character that makes a name a pattern.

BUNDLES_KEY

bundles, the install key listing bundle entries.

SOURCE_NAME_RULE

The source name rule in words, as error messages give it.

SUPPORT

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; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.