AI-Agent-Skills-SiteKit

 view release on metacpan or  search on metacpan

LICENSE  view on Meta::CPAN

MIT License

Copyright (c) 2026 AI Agent Skills

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

README.md  view on Meta::CPAN

# AI Agent Skills Site Kit

Small metadata and URL helpers for [AI Agent Skills](https://aiagentskills.net), a curated directory for discovering Claude skills, Codex skills, and AI agent workflows.

## Useful links

- Website: <https://aiagentskills.net>
- [AI agent skills directory](https://aiagentskills.net/skills/): browse curated agent skills.
- [Claude and Codex skill search](https://aiagentskills.net/skills/?q=seo): build stable search URLs for skill discovery.
- [Submit an AI agent skill](https://aiagentskills.net/submit/): submit a useful public skill for review.
- [AI agent skills blog](https://aiagentskills.net/blog/): read guides and updates.
- [Agent workflow skills](https://aiagentskills.net/category/agent-workflows/): browse workflow and automation skills.
- [Code generation skills](https://aiagentskills.net/category/code-generation/): browse development-focused skills.

## What this package does

Each ecosystem package exposes tiny helpers for site metadata and stable URL construction. It is intentionally boring: no network calls, no hidden behavior, and no claim that this is an official SDK.

## Common API

- `homeUrl` / `home_url`: homepage URL.
- `skillsUrl` / `skills_url`: skills directory URL.
- `searchUrl(query)` / `search_url(query)`: skills search URL.
- `submitUrl` / `submit_url`: skill submission URL.
- `blogUrl` / `blog_url`: blog URL.
- `categoryUrl(slug)` / `category_url(slug)`: category URL.
- `skillUrl(slug)` / `skill_url(slug)`: individual skill URL.
- `metadata`: brand, homepage, description, canonical pages, and tags.

## License

MIT.

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__

t/sitekit.t  view on Meta::CPAN

use strict;
use warnings;
use Test::More tests => 8;
use lib 'lib';
use AI::Agent::Skills::SiteKit qw(home_url skills_url search_url submit_url blog_url category_url skill_url metadata);

is(home_url(), 'https://aiagentskills.net', 'homepage');
is(skills_url(), 'https://aiagentskills.net/skills/', 'skills');
is(submit_url(), 'https://aiagentskills.net/submit/', 'submit');
is(blog_url(), 'https://aiagentskills.net/blog/', 'blog');
is(category_url('agent-workflows'), 'https://aiagentskills.net/category/agent-workflows/', 'category');
is(skill_url('seo-article-writer'), 'https://aiagentskills.net/skill/seo-article-writer/', 'skill');
is(search_url('codex skills'), 'https://aiagentskills.net/skills/?q=codex%20skills', 'search');
is(metadata()->{homepage}, 'https://aiagentskills.net', 'metadata homepage');



( run in 1.009 second using v1.01-cache-2.11-cpan-600a1bdf6e4 )