The skills that don't belong to any one project.
Skills installed with skilletor live in whichever repo owns them — a Perl module keeps its Perl skill, a Kubernetes cluster repo keeps its cluster skill. This repo holds the rest: knowledge that applies across many projects and has no single home of its own.
The rule: a skill lives here only as long as nothing else claims it. The moment a skill belongs to one specific project, it moves there and this repo drops the link.
| Group | Skills | What it holds |
|---|---|---|
| authoring | 5 | Skills about skills — writing them, mining them out of existing code, compressing them, the library's own rules, and the agent team that consumes them |
| claude | 4 | Working with Claude itself — headless spawning, talking across running sessions, routing work across model tiers, building plugins for Claude Code |
| codex | 3 | Working with Codex — non-interactive runs, reaching threads that already exist, building plugins |
| databases | 1 | Data stores themselves — PostgreSQL with pgvector and Apache AGE: schema, indexes, retrieval, consistency, recovery |
| development | 2 | Engineering practice independent of language — debugging discipline, project scaffolding |
| git | 2 | How repositories are used, and how commit messages are written |
| hermes-agent | 1 | NousResearch Hermes Agent — extending the agent, its messaging gateway, and the Desktop and Dashboard surfaces |
| perl | 12 | House style, object systems including Mojo::Base, typing, DSL sugar, async, MCP, XS and Alien, release tooling |
| social-media | 2 | LinkedIn and Twitch — platform mechanics, content practice, and the DACH legal duties that have no US equivalent |
| storytold-craft | 16 | Operating the Storytold Craft editors as an agent — one skill per application, its CLI and MCP server, plus an overview that routes between them |
| system-and-network-administration | 11 | Machines, networks, hosting, containers, Kubernetes, TLS and PKI, admin automation |
Each group README describes every skill in it: what it covers, and when to load it.
| Skill | What it is |
|---|---|
| getty-agent-team | A whole multi-agent setup for a project: subagents, briefing-preloaded skills, karr wiring |
| getty-skill-library | Where a skill lives, what it is named, and how an edit reaches its consumers |
| skill-authoring | Writing a SKILL.md that fires from its description and then gets followed |
| skill-compressor | Shrinking or merging skills without losing the rules that drive behaviour |
| skill-mining | Deriving skill content from a codebase instead of inventing conventions |
| Skill | What it is |
|---|---|
| claude-code-plugin-engineering | Building a Claude Code plugin: picking the mechanism, hooks and mods, loading, distribution |
| claude-cross-session | One Claude session starting, watching and messaging another |
| claude-headless | Driving Claude Code as a subprocess: -p, JSON, permissions, the multi-turn channel |
| model-routing | Choosing a model tier by the hardest dimension the work routinely hits |
| Skill | What it is |
|---|---|
| codex-cross-session | Reaching an existing Codex thread: the queue, the daemon, --remote |
| codex-headless | codex exec non-interactively: JSONL events, sandboxes, resuming a thread |
| codex-plugin-engineering | Building a Codex plugin: package formats, hooks, MCP, and what each host actually runs |
| Skill | What it is |
|---|---|
| postgres-vector-graph | PostgreSQL 18 with pgvector and Apache AGE: relational, vector and graph in one system |
| Skill | What it is |
|---|---|
| feedback-loop-debugging | A six-phase discipline for hard bugs, built on a fast pass/fail signal |
| getty-create-software | Scaffolding a new project from the signals that reveal its type |
| Skill | What it is |
|---|---|
| getty-git-commit-style | Imperative summary, one body line per change, and the Changes file every repo keeps: format, entries, version line |
| getty-git-usage | Linear history: rebase over merge, and --force-with-lease after it |
| Skill | What it is |
|---|---|
| hermes-plugin-engineering | Extending Hermes Agent: tools, hooks, middleware, providers, gateway adapters, Desktop |
| Skill | What it is |
|---|---|
| getty-perl-core | The base layer: module loading, object-system choice, errors, subroutine shape |
| getty-perl-distribution | Creating a CPAN distribution, or bringing an existing one to house standard |
| getty-perl-moo | Moo classes and roles — roles for reuse, inheritance only for a stable is-a |
| getty-perl-moose | The same shape in Moose, plus make_immutable on every class |
| getty-perl-sugar | Declarative DSL sugar: registering keywords, a metadata registry, one shared runner |
| getty-perl-typing | Whether a project needs a type system at all, and which one is cheap here |
| perl-alien | Alien::Build: providing a C library or tool through CPAN |
| perl-io-async-future | PEVANS-style async Perl, and its unforgiving lifetime rules |
| perl-mcp | Building an MCP server in Perl with MCP::Server |
| perl-mojo | Mojo::Base as an object system, plus the Mojo::* toolkit around it |
| perl-release-dist-ini | Dist::Zilla for any distribution, independent of the author bundle |
| perl-xs | The Perl/C boundary, and why an .xs file is C behind a preprocessor |
| Skill | What it is |
|---|---|
| Formats, how distribution actually works, and the DACH legal duties | |
| twitch | Channel operation end to end: encoder, growth, chat, monetization, moderation |
| Skill | What it is |
|---|---|
| storytold-artcraft | ArtCraft's generative workflow and Rust client — an integration boundary, no operator CLI |
| storytold-artcraftx | The experimental ArtCraft-X Tauri app: its IPC boundary and development lifecycle |
| storytold-cadcraft | CADCraft drawings: geometry commands, units and layouts, DXF/DWG interchange |
| storytold-craft | The overview: which product owns which task, and where the twelve CLIs differ |
| storytold-craft-launcher | Installing, updating and locating the Craft applications |
| storytold-deckcraft | DeckCraft presentations: slides, shapes, layouts, export coverage |
| storytold-designcraft | DesignCraft page layout: spreads, frames, threaded stories, publication export |
| storytold-effectcraft | EffectCraft motion graphics: compositions, keyframes, expressions, render jobs |
| storytold-filmcraft | FilmCraft timelines: media health, tick-based timing, export jobs |
| storytold-gridcraft | GridCraft spreadsheets: formulas, calculation oracles, round-trip fidelity |
| storytold-lightcraft | LightCraft photo catalogs: RAW development, originals and sidecars, exports |
| storytold-pdfcraft | PdfCraft: reading, organizing, annotating, editing and securing existing PDFs |
| storytold-photocraft | PhotoCraft layered raster images: PSD/PSB, masks, smart objects, exports |
| storytold-soundcraft | SoundCraft multitrack sessions: media, routing, automation, offline bounces |
| storytold-vectorcraft | VectorCraft documents: object queries, live appearance, artboard export |
| storytold-wordcraft | WordCraft documents: styles, sections, tracked changes, export |
| Skill | What it is |
|---|---|
| docker | Docker images and Compose stacks: build, wiring, operation, recovery — routed by task |
| docker-engine-api | Writing a client that speaks the Engine HTTP API instead of shelling out to docker |
| docker-registry | Registries and pull-through caches: protocol, clients, mirror fallback, retention |
| hetzner-operator | Hetzner Cloud, Robot and managed hosting: networking, VPN access, storage, recovery, cost |
| kubernetes-cilium-concepts | Cilium replacing CNI, kube-proxy, policy, encryption and ingress at once |
| kubernetes-concepts | Control plane, resource hierarchy, and how ownership and selectors tie it together |
| kubernetes-gpu | The four layers that must line up before a pod can use a GPU |
| kubernetes-rke2 | RKE2 and K3s as one topic, with the differences named where they exist |
| rex | Perl Rex automation: Rexfiles, transports, idempotency, and operating it safely |
| ssl-tls-pki | TLS, public Web PKI, private CAs, ACME and mTLS — design, operation, debugging |
| vllm-operator | Running vLLM on small GPU hardware: capacity, caching, benchmarking, tuning (German) |
An owner name on its own is enough — it resolves to that owner's skills repo:
skilletor add Getty --project # github.com/Getty/skills, as source `getty`
skilletor available getty # see what's on offer
skilletor install getty-perl-moo@getty getty-git-usage@getty --projectWith a local checkout, point the same source name at it in your user config
(~/.claude/skilletor.json); it then overrides the git source and is read
directly on every sync:
{ "sources": { "getty": { "local": "<checkout>" } } }The same files also ship as a plugin for Claude Code (.claude-plugin/) and for
Codex (.codex-plugin/) — three distribution routes, one source of truth.
getty- prefixed skills prescribe — a house convention chosen over other valid
options, or the API of Getty's own software. Unprefixed skills are reference —
documentation of how a public tool or protocol behaves, equally true for anyone.
The full naming and placement rules are themselves a skill:
getty-skill-library.
Write it where it's used first. Only pull it in here once a second, unrelated project
needs the same knowledge — that's the signal it has outgrown a single home. The
workbench for that is the authoring group: skill-authoring
for the content, getty-skill-library for placement, naming, and the way an edit
reaches its consumers.
A skill has to be listed in four places — its group README, the group table and the
skill table above, and both plugin manifests. bin/check-listings holds them against
the directories and names what is missing; it exits non-zero, so it fits a hook or CI.
Consumers hold installed copies, not these files. Edit a skill here, and a consuming
project picks the change up at its next skilletor sync; an edit made to the installed
copy is overwritten by that same sync. getty-skill-library has the details.
Copyright (c) 2026 Torsten Raudssus.
This is free software; you can redistribute it and/or modify it under the terms of the Artistic License 2.0 — the Perl licence, because that is where most of this came from.
