NAME
DBIO::Skills - Runtime access to the AI agent skills bundled with DBIO
VERSION
version 0.900000
SYNOPSIS
# whatever drivers are loaded expose their skills automatically
use DBIO::PostgreSQL;
my $md = DBIO->skill('postgresql-database'); # markdown text
my @names = DBIO::Skills->skills; # everything available now
# from a connected schema (adds the schema's own driver + overrides)
my $md = $schema->skill('mysql-database');
DESCRIPTION
DBIO is developed with the help of AI coding agents. To keep that work consistent, each DBIO repository carries a set of agent skills — short, focused briefing documents an agent loads when working inside the repository.
The skill sources live under .claude/skills/ in each source repository (a dot-directory, deliberately excluded from the CPAN tarball). What is shipped is, for each distribution, the skills it owns: they are packaged into the distribution's sharedir under skills/ (see Dist::Zilla::Plugin::DBIO::GatherSkills). This module exposes those bundled skills at runtime.
Discovery is fully dynamic: when a DBIO driver is loaded, its distribution is registered (from the core driver-load path), and all skills found in that distribution's sharedir become available — no skill is ever named in code.
Skill categories
Shared family skills — owned by, and shipped from, the
DBIOcore distribution (dbio-coordination,dbio-core,dbio-driver-development,dbio-perl-syntax,dbio-perl-class-patterns,dbio-moo-moose,karr).The
[@DBIO]release skill (dbio-perl-release) — owned by theDist-Zilla-PluginBundle-DBIOdistribution.Per-driver skills — owned by each
DBIO-<driver>distribution:dbio-<driver>(using the driver) anddbio-<driver>-database(the underlying database).
For contributors
You do not need any special tooling. Clone a repository and you get normal files. Edit a skill's SKILL.md where it lives in the repo you are working in and commit it. Shared family skills are canonical in the dbio core repo; make the change there (or note it) so it propagates. Maintainers reconcile the hardlinks at release time with the manage-skills tool.
METHODS
register_dist
DBIO::Skills->register_dist('DBIO-PostgreSQL');
Mark a distribution as loaded so its bundled skills become available. Called automatically from the core driver-load path; rarely needed by hand.
register_class
DBIO::Skills->register_class('DBIO::PostgreSQL::Storage');
Derive the distribution that owns a DBIO class (DBIO::DB2::Storage → DBIO-DB2, DBIO::MySQL::Storage::MariaDB → DBIO-MySQL) and register it. Called from the core driver-load path and from "skill" in DBIO::Schema.
canonical_name
my $key = DBIO::Skills->canonical_name('db2-database'); # 'dbio-db2-database'
Normalise a skill name to its canonical dbio- form. Used by callers (e.g. "skill" in DBIO::Schema) that key their own overrides the same way.
skill
my $markdown = DBIO::Skills->skill('postgresql-database');
Return the markdown text of the named skill, or undef if no loaded distribution provides it. The leading dbio- is optional, so both 'db2-database' and 'dbio-db2-database' resolve.
skills
my @names = DBIO::Skills->skills;
Return the sorted list of skill names available from all currently loaded distributions (full dbio-... names).
AUTHOR
DBIO & DBIx::Class Authors
COPYRIGHT AND LICENSE
Copyright (C) 2026 DBIO Authors Portions Copyright (C) 2005-2025 DBIx::Class Authors Based on DBIx::Class, heavily modified.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.