Reusable skills installed via agent-config-kit
(agent-kit) — see the repo-level Quick Start for
installing agent-kit and applying agent-config.toml.
Skills are organized by category. Each skill lives in
skills/<category>/<skill-name>/SKILL.md and carries YAML frontmatter with
name, description, category, and tags fields.
| Category | Description |
|---|---|
python/ |
Python tooling and dependency management |
dagster/ |
Dagster pipeline development with dg |
infrastructure/ |
Pulumi IaC and Vault secrets |
containers/ |
Docker image builds |
workflow/ |
Cross-cutting process conventions |
process/ |
GitHub and external service interactions |
| Category | Skill | Description |
|---|---|---|
| python | uv-python-workflow |
Use uv exclusively for all Python env & dependency management |
| python | cyclopts-cli-scripts |
Use cyclopts for CLI scripts; place in bin/ |
| python | drf-api-performance |
Fast DRF APIs: nesting limits, pagination count query, prefetch choice, no ORM in serializers |
| dagster | dagster-code-location-structure |
dg_projects/ layout, asset/sensor placement, one-at-a-time migration |
| infrastructure | pulumi-modify-existing |
Modify existing stack entrypoint; never create new files; preserve assumeRole |
| infrastructure | vault-k8s-auth |
Wire Vault K8s auth via hvac; never hardcode role or mount path |
| containers | docker-uv-image-builds |
mitodl/<service> naming, git short-ref tags, relocatable uv venvs |
| workflow | validate-before-commit |
Run pre-commit → mypy → pulumi preview proactively before declaring done |
| workflow | creating-skills |
Create a new skill: frontmatter, category placement, progressive disclosure, index updates |
| workflow | extract-style-profile |
Profile how a person, team, or repo codes and communicates from git/GitHub history; outputs CLAUDE.md/AGENTS.md rules with evidence |
| process | create-ol-github-issue |
Create mitodl GitHub issues using org standard templates |
| process | create-ol-pull-request |
Create mitodl pull requests using the org's standard PR template, after an independent goal/security review and a claim audit |
| process | create-ol-rfc-discussion |
Write and post a structured RFC as a GitHub Discussion in mitodl/hq under the RFC category |
| process | generate-standup |
Generate and post a daily standup from GitHub activity to the mitodl/hq Check-ins discussion |
| process | screenshot-pr |
Capture UI changes for a PR with shot-scraper at desktop, tablet, and mobile viewports |
| process | dependency-updates |
Triage and apply Renovate dependency updates safely across Python, JS/TS, Helm, Apt, and database ecosystems |
| process | dependency-pruning |
Audit dependencies to find unused ones to remove and underused ones to vendor or rewrite |
| process | github-issue-triage |
Audit open GitHub issues to identify stale, completed, or superseded items by cross-referencing the codebase (parallel subagents where available, sequential batches otherwise) |
| process | github-pr-triage |
Categorize open PRs across an org by required action (needs first-pass review, has feedback, approved & ready to merge) and optionally act on them |
| process | address-pr-feedback |
Fetch, categorize, address, and resolve GitHub PR review feedback, with pagination for large/long-running PRs |
| process | code-review |
Review a diff, branch, path, or PR for correctness bugs, gaps against stated goals, security issues, and reuse/simplification/efficiency cleanups, with a verify-before-reporting pass |
| process | renovate-security-triage |
Rank open Renovate PRs in your active repos by security urgency using advisory severity, CVSS, and EPSS (read-only) |
| process | deploy-verification |
Verify a merged config/infra change actually took effect — CD pipeline, pod rollout, running config, before/after metrics, and unintended-environment scope |
| process | run-canary-locally |
Get a passing local run of the ol-infrastructure Playwright canaries, without risking the account lockout, and read a failed run's trace |
| process | add-canary-journey |
Add a canary journey to an existing property, or onboard a new property into the canary fleet (two list edits) |
agent-kit apply installs every skill into every detected platform, so a
skill can't assume Claude Code's own tools. Where a skill benefits from
delegation or a structured question, it says what to do when the capability
is present and what to do without it (e.g.
github-issue-triage runs its
batches in parallel subagents when available, otherwise sequentially with the
same evidence and report).
Stock Pi has no subagent tool, no AskUserQuestion-style questionnaire tool and
no built-in /review command. These third-party Pi extensions add the first
two and are picked up automatically by skills that check for the capability;
they are optional, agent-kit neither declares nor installs them, and every
skill works without them:
| Extension | Adds | Install |
|---|---|---|
pi-subagents |
A subagent tool for delegation and parallel child agents |
pi install npm:pi-subagents |
@juicesharp/rpiv-ask-user-question |
A structured questionnaire tool (typed options instead of free-form replies) | pi install npm:@juicesharp/rpiv-ask-user-question |
For a first-pass PR review on any platform, use the
code-review skill rather than a
platform's built-in review command.
just check-skills (also the skill-portability prek hook) enforces this:
it fails when a skill names a Claude-only capability (the Agent or Task
tool, AskUserQuestion, ToolSearch, TodoWrite, a built-in /review,
subagents) in a passage that doesn't also give the fallback. A deliberately
platform-specific passage can opt out with <!-- portability: ok -->. See
bin/check_skill_portability.py for the
exact rule.
-
Pick or create a category directory:
skills/<category>/ -
Create
skills/<category>/<skill-name>/SKILL.mdwith frontmatter and body:--- name: your-skill-name # must match directory name exactly description: > # what it does AND when to use it (max 1024 chars) Use this skill when... license: BSD-3-Clause metadata: category: <category> --- # Skill Title ...
-
Add the skill to your category's
README.mdtable and to the All Skills table above. -
Register it in
agent-config.toml's[skills]table (and the relevant[profiles.*]entry) soagent-kit applypicks it up. -
Open a PR — see the repo-level CONTRIBUTING guide.