Canonical Agent Skills library — one skills/ tree for Claude Code, Cursor, Codex, and other agents.
This repository is the source of truth for shared skills: each skill lives at
skills/<name>/SKILL.md with YAML frontmatter (name, description). There is
no per-agent copy of the catalog in-repo; installers symlink into each
agent’s config directory.
Use the Vercel Labs skills CLI to
install into detected agents. Prefer Bun and bunx
(same idea as npx / pnpm dlx for other runtimes):
# Latest from default branch (all skills, all detected agents)
bunx skills add lgtm-hq/ai-skills -g --all
# Pinned to a release tag (example)
bunx skills add lgtm-hq/ai-skills@v0.1.7 -g --all
# Single agent (e.g. Cursor)
bunx skills add lgtm-hq/ai-skills -a cursor -gnpm / pnpm equivalents (same flags):
npx skills add lgtm-hq/ai-skills -g --all
pnpm dlx skills add lgtm-hq/ai-skills -g --allInstall only the skills you need (names match skills/<name>/ in this repo; see
AGENTS.md):
# List available skills without installing
bunx skills add lgtm-hq/ai-skills -l
# Install specific skills globally
bunx skills add lgtm-hq/ai-skills -g --skill lint commit branch -y
# Pin a subset to a release tag
bunx skills add lgtm-hq/ai-skills@v0.1.7 -g --skill lint test -yThe CLI updates by skill name or scope, not by package slug (update lgtm-hq/ai-skills does not match installed skills).
# Update all globally installed skills from their recorded source
bunx skills update -g
# Update only skills you have installed (by name)
bunx skills update lint commit -g
# npm / pnpm equivalents
npx skills update -g
pnpm dlx skills update -gTo move everything to a specific release, reinstall with a tag (replaces symlinks for that install):
bunx skills add lgtm-hq/ai-skills@v0.1.7 -g --allList or remove installs with bunx skills ls -g and bunx skills remove <name> -g.
See the upstream CLI docs for more flags.
See AGENTS.md for the full list of skills with short
descriptions and paths. Regenerate that index after skill changes (see
scripts/generate_agents_md.py in CI).
skills/<name>/SKILL.md # Canonical skill definitions (this is the product)
AGENTS.md # Human- and agent-readable index
scripts/validate.sh # Frontmatter, naming, AGENTS sync checks
tests/ # Pytest wraps for validate script
.github/workflows/ # CI + thin callers into org reusable workflows
flowchart LR
subgraph repo [ai-skills]
SK["skills/**/SKILL.md"]
end
subgraph cli [skills CLI]
add["bunx skills add …"]
end
subgraph dirs [Agent config]
c["~/.claude/skills"]
u["~/.cursor/skills"]
x["~/.codex/skills …"]
end
SK --> add
add --> c
add --> u
add --> x
See CONTRIBUTING.md for org policies, skill layout rules, and full PR expectations. Quick local loop:
git clone https://github.com/lgtm-hq/ai-skills.git
cd ai-skills
uv sync
uv run lintro fmt
uv run lintro chk
uv run lintro tst
bash scripts/validate.shUse Conventional Commits for PR titles
(squash merge drives release semver). Follow
.github/PULL_REQUEST_TEMPLATE.md.
Pull requests and pushes to main run lintro (via the published
py-lintro container image) and bash scripts/validate.sh.
Version bumps and CHANGELOG.md updates flow through lgtm-hq/lgtm-ci
reusable workflows, called from this repo
with full SHA pins on uses: (see .github/workflows/release-version-pr.yml
and release-auto-tag.yml). When upstream release behavior changes, bump those
SHAs to a commit that exists on GitHub (repos/lgtm-hq/lgtm-ci/commits/<sha>).
Baseline note: lgtm-ci#138
is merged; the current caller pins match lgtm-hq/lgtm-ci main at
79444626c1b3afa4d959b5840b4b5310a46a4095 (re-verify when bumping).
MIT — see LICENSE.