AI-Agent-Skills-SiteKit
view release on metacpan or search on metacpan
lib/AI/Agent/Skills/SiteKit.pm view on Meta::CPAN
package AI::Agent::Skills::SiteKit;
use strict;
use warnings;
use Exporter 'import';
use URI::Escape qw(uri_escape);
our $VERSION = '0.1.0';
our @EXPORT_OK = qw(home_url skills_url search_url submit_url blog_url category_url skill_url url_for metadata);
sub base_url { return 'https://aiagentskills.net' }
sub clean_slug { my $s = shift // ''; $s =~ s!^/+!!; $s =~ s!/+$!!; return $s; }
sub url_for { my $clean = clean_slug(shift // ''); return $clean eq '' ? base_url() : base_url() . '/' . $clean . '/'; }
sub home_url { return base_url() }
sub skills_url { return url_for('skills') }
sub submit_url { return url_for('submit') }
sub blog_url { return url_for('blog') }
sub category_url { return url_for('category/' . clean_slug(shift)) }
sub skill_url { return url_for('skill/' . clean_slug(shift)) }
sub search_url { my $q = shift // ''; $q =~ s/^\s+|\s+$//g; return $q eq '' ? skills_url() : base_url() . '/skills/?q=' . uri_escape($q); }
sub metadata {
return {
name => 'AI Agent Skills',
homepage => base_url(),
description => 'Curated directory for Claude skills, Codex skills, and AI agent workflows.',
tags => [qw(aiagentskills skills agents claude codex)],
};
}
1;
__END__
( run in 1.886 second using v1.01-cache-2.11-cpan-9581c071862 )