AI Catalog
| This documentation was generated with the assistance of AI. Please report any inaccuracies. |
AI Catalog is a collection of Claude Code Skills —
reusable, version-controlled playbooks for common software engineering workflows. Instead of re-explaining
the same process to Claude in every project (how this team bootstraps a Java library, how a pull request
should be reviewed, how release notes get written), each workflow is captured once as a SKILL.md file and
invoked on demand with a slash command such as /iru-plan or /iru-pr-review.
Why this exists
Prompting an AI assistant to repeat a multi-step process consistently is hard: the steps drift between sessions, edge cases get forgotten, and every teammate ends up with a slightly different mental model of "how we do X". A skill fixes that by writing the procedure down once — what to check first, what to skip, what "done" looks like — so any repository that adopts it gets the same behavior every time it’s invoked.
Core concepts
A skill
Each skill lives in its own directory under .claude/skills/ and contains a single SKILL.md file with:
-
A short description used by Claude Code to decide when the skill is relevant.
-
Step-by-step instructions written for an agent to follow, including what to survey before acting, what to leave untouched, and how to report back.
Skills in this catalog range from small, single-purpose checks (iru-check-license, iru-java-test) to
orchestrators that call other skills in sequence.
An agent
Several skills in this catalog spawn a sub-agent through the Agent tool, to run a sub-task in an isolated
context (so its detailed output — a full test log, a static-analysis report, an entire nested skill run —
doesn’t clutter the main conversation) or to search the codebase without derailing the current flow. This
repository defines three custom agents under .claude/agents/ for its most-duplicated sub-agent shapes:
-
iru-gate-runner— runs a single verification/quality-gate skill (tests, coverage, code-quality/lint, license headers, doc-comment audits, security scans, a full build), optionally diffs it against a baseline, and reports back only a compact summary. -
iru-isolated-skill-executor— runs one named skill end to end in a completely fresh context so an earlier exploration/planning transcript can’t bias it, while the caller keeps running afterward. -
iru-change-summarizer— fans out over a git commit/tag range and returns only the user-facing changes.
Skills that need ad hoc context isolation beyond those three shapes still use Claude Code’s built-in agent
types: the Explore agent (a fast, read-only search agent) is used explicitly by the iru-explore skill, and
the general-purpose agent (Claude Code’s default when no specific type is named) covers one-off cases like
bootstrapping the iru-setup-antora skill mid-run.
See Agents (built-in types) and Gate Runner, Isolated Skill Executor, Change Summarizer (custom agents) for detail on where and why each is used.
A CLAUDE.md file
CLAUDE.md is a plain markdown file that Claude Code loads automatically, without being invoked, at the
start of every session — unlike a skill or agent, which only act when called on. It holds the persistent
facts Claude would otherwise need re-explaining every session: build/test commands, coding conventions,
architectural notes, and "always/never do X" rules specific to a project or a person.
Claude Code reads it from several locations at once (project root, a personal ~/.claude/CLAUDE.md, nested
subdirectory files, and an enterprise-managed policy file, if any) and concatenates them rather than picking
one — see The CLAUDE.md file for exact locations, precedence, and how to create or update one
without letting it bloat the context window.
A plugin
A plugin is not a new kind of artifact alongside skills, agents, and CLAUDE.md — it’s a packaging and
distribution mechanism for them. A plugin is a directory (with a .claude-plugin/plugin.json manifest) that
can bundle any combination of skills, custom agents, slash commands, hooks, and MCP server configs into one
installable, versioned unit, published to a marketplace (a private, organization-internal one or a public
one) and installed into a repository with /plugin install instead of copying files by hand.
This repository does not currently package itself as a plugin — its skills are adopted by copying the
.claude/skills/<name>/ directories directly — but Plugins and
Packaging and distributing skills, agents, and CLAUDE.md cover when a plugin is worth the extra packaging step instead.
Further guides
Beyond this catalog’s own skills, the following pages cover the underlying artifacts (CLAUDE.md, skills, agents, plugins) more generally: how to create or update each one, how to write instructions for them that get good, consistent results without wasting context, and how they differ across AI coding assistants.
| Guide | Covers |
|---|---|
What |
|
A closer look at the three workflows a person runs most often — the typical development cycle starting from a ticket, filing a ticket before work begins, and generating a release — each with a fuller diagram than the one on this page. |
|
Where skills and agents live, when to reach for one versus the other, and the fastest reliable way to draft a new one — asking Claude Code itself, grounded in existing examples. |
|
Where this catalog’s pipelines are already built to grow by convention (the |
|
What a plugin bundles, its manifest/directory layout, and how marketplaces (private or public) distribute one across repositories. |
|
How to phrase instructions in a |
|
Copying files into |
|
How CLAUDE.md, skills, agents, and plugins map onto GitHub Copilot’s and OpenAI Codex’s equivalent files and features, and where the underlying models genuinely differ. |
Skills reference
| Name | Group | Purpose | Detail page |
|---|---|---|---|
|
Build the existing Antora documentation site as-is, scaffolding it first via |
||
|
Verify (and backfill) license headers on source/test files against the repository’s actual license. |
||
|
Scan for accidentally committed secrets via |
||
|
Execute |
||
|
Implement one plan task group, dispatching each task to its language’s |
||
|
Draft and file a new GitHub issue, grounded in the codebase and confirmed with the user before creation. |
||
|
Draft and file a new Jira ticket via connected Jira MCP tools, the Jira counterpart to |
||
|
Generate (and, if a matching MCP allows it, execute) the queries a single database plan task calls for. |
||
|
Implement a bucket of database tasks sequentially, one task at a time — no baseline or bucket-wide validation. |
||
|
Implement a single .NET plan task’s code and tests only — validation is handled by |
||
|
Implement a bucket of .NET tasks (in parallel where safe) and validate the whole bucket once. |
||
|
Run StyleCop.Analyzers/CA Roslyn analyzers via a SARIF-logged build and summarize every issue found. |
||
|
Run Coverlet via |
||
|
Audit and complete XML doc-comment coverage for given types, then attempt a DocFX build. |
||
|
Find every .NET class with no tests or under 80% coverage and generate/extend tests until it clears the bar. |
||
|
Run the .NET test suite via |
||
|
Read-only research pass over the codebase, optionally grounded in a GitHub issue or Jira ticket. |
||
|
Regenerate this documentation site itself from the current set of skills and agents on disk. |
||
|
End-to-end kickoff for a tracked ticket: branch, explore, plan, implement, open PR, review. |
||
|
Implement a single Java plan task’s code and tests only — validation is handled by |
||
|
Implement a bucket of Java tasks (in parallel where safe) and validate the whole bucket once. |
||
|
Run Checkstyle/PMD/SpotBugs and summarize every issue found, grouped by tool. |
||
|
Run JaCoCo and report the exact measured coverage percentage for target class(es). |
||
|
Find every Java class with no tests or under 80% coverage and generate/extend tests until it clears the bar. |
||
|
Audit and complete Javadoc coverage for given classes, then verify it builds cleanly. |
||
|
Run the JUnit suite via Surefire, scoped to a class/method/package/tag selector. |
||
|
Write a concrete, reviewable |
||
|
Draft a PR description from the real diff, and optionally open/update the pull request. |
||
|
Review an open pull request against the linked ticket’s intent and this codebase’s conventions. |
||
|
Cut a release branch, bump versions, draft release notes/changelog, and open the release PR. |
||
|
Scaffold a new Antora documentation site ( |
||
|
One-time bootstrap of |
||
|
Scaffold/update the |
||
|
Create or refresh the root |
||
|
Generate |
||
|
Orchestrator: bootstrap a brand-new Java library repository end to end in one pass. |
||
|
Create or refresh the root |
||
|
Bring the Antora documentation module up to date with changes already made to the code. |
Agents reference
This repository defines three custom agents, all grouped under Sub-Agent
Infrastructure; the built-in agent types it also relies on (Explore, general-purpose) have no SKILL.md-style
file of their own and are instead described together in Agents.
| Name | Purpose | Detail page |
|---|---|---|
|
Fan out over a git commit/tag range and return only the user-facing changes. |
|
|
Run a single verification/quality-gate skill and report back only a compact summary, optionally vs. a baseline. |
|
|
Run one named skill end to end in a fresh context, so the caller can keep running afterward. |
Purpose groups
Repository Bootstrap
Scaffolding a brand-new repository’s build, docs, CI/CD, and top-level files from nothing, so a new Java library starts out matching the same conventions as every other repository in the catalog.
|
Reach for this group when standing up a brand-new repository — a one-time pass, not something you’d run
again once the repository already exists. |
-
iru-setup-java-library-repository— orchestrator: bootstraps a brand-new Java library repository end to end in one pass. -
iru-setup-java-library— generatespom.xmland the standard Maven source layout. -
iru-setup-antora— scaffolds the Antora documentation site. -
iru-setup-java-gitignore— creates or refreshes the root.gitignore. -
iru-setup-java-github-workflows— scaffolds/updates the CI/CD GitHub Actions pipeline. -
iru-setup-changelog— one-time bootstrap ofCHANGELOG.md. -
iru-setup-readme— creates or refreshes the rootREADME.md.
Ticket Intake
Turning a rough idea, bug report, or request into a well-formed, tracked ticket — a GitHub issue or a Jira ticket — before the Issue-to-PR Development Cycle picks it up.
|
Reach for one of these when the work doesn’t have a ticket yet. Neither is required — a ticket can always be
filed by hand, or |
-
iru-create-github-issue— drafts and files a GitHub issue viagh issue create, matched against this repository’s actual label set. -
iru-create-jira-ticket— drafts and files a Jira ticket via connected Jira MCP tools, resolving the target project and issue type against the real Jira configuration.
Issue-to-PR Development Cycle
Taking a piece of work from "described" — a tracked ticket (a GitHub issue or a Jira ticket), or a task you describe yourself — to an implemented, open pull request.
|
This is the group to reach for on a day-to-day basis: picking up a ticket or an ad hoc task and carrying
it through branch creation, research, planning, and implementation without re-explaining that process each
time. |
-
iru-issue— orchestrator: branch, explore, plan, implement, open PR, review — for a tracked ticket. -
iru-explore— read-only research pass over the codebase, optionally grounded in a GitHub issue or Jira ticket. -
iru-plan— writes a concrete, reviewableimplementation_plan.md, grouping tasks by dependency and tagging each with the language/framework key a downstream<key>-code-one-task-groupskill should handle it with. -
iru-code— executesimplementation_plan.mdend to end, one task group at a time, viairu-code-one-task-group, and gates completion on quality/security baselines. -
iru-code-one-task-group— implements one task group, resolving each task’s language and dispatching to its matching<key>-code-one-task-groupskill (e.g.iru-java-code-one-task-group,iru-dotnet-code-one-task-group,iru-database-code-one-task-group) — or a best-effort direct implementation if none matches.
Java Development Tooling
Implementing a single plan task end to end, plus the point-in-time checks (tests, coverage, lint, Javadoc) a person or another skill can run against a Maven/Java project any time — each reporting real, measured results rather than an estimate.
|
|
-
iru-java-code-one-task-group— implements a bucket of Java tasks (in parallel where safe) and validates the whole bucket once: license headers, Javadoc, tests, coverage, and a quality regression check. -
iru-java-code-one-task— implements a single task’s code and tests only; called once per task byiru-java-code-one-task-group. -
iru-java-test— runs the JUnit suite via Surefire, scoped to a class/method/package/tag selector. -
iru-java-coverage— runs JaCoCo and reports the exact measured coverage percentage for target class(es). -
iru-java-code-quality— runs Checkstyle/PMD/SpotBugs and summarizes every issue found, grouped by tool. -
iru-java-generate-all-tests— finds every class with no test class or under 80% line coverage (viairu-java-coverage) and generates/extends tests until it clears the bar, across the whole codebase in one pass. -
iru-java-javadoc— audits and completes Javadoc coverage for given classes, then verifies it builds cleanly.
.NET Development Tooling
The .NET/C# counterpart to Java Development Tooling — implementing a single plan task end to end, plus the equivalent point-in-time checks (tests, coverage, Roslyn analyzers, XML doc comments) against a .NET project.
|
Same shape as the Java group, one tool chain over: |
-
iru-dotnet-code-one-task-group— implements a bucket of .NET tasks (in parallel where safe) and validates the whole bucket once: license headers, XML doc comments, tests, coverage, and a quality regression check. -
iru-dotnet-code-one-task— implements a single task’s code and tests only; called once per task byiru-dotnet-code-one-task-group. -
iru-dotnet-test— runs the test suite viadotnet test, scoped to a class/method/namespace/trait selector. -
iru-dotnet-coverage— runs Coverlet viadotnet testand reports the exact measured coverage percentage for target class(es). -
iru-dotnet-code-quality— runs StyleCop.Analyzers/CA Roslyn analyzers via a SARIF-logged build and summarizes every issue found. -
iru-dotnet-docfx— audits and completes XML doc-comment coverage for given types, then attempts a DocFX build. -
iru-dotnet-generate-all-tests— finds every class with no test class or under 80% line coverage (viairu-dotnet-coverage) and generates/extends tests until it clears the bar, across the whole codebase in one pass.
Database Development Tooling
The database counterpart to Java Development Tooling and .NET Development Tooling — implementing a bucket of database tasks (schema migrations, seed data, index changes) from a plan.
|
|
-
iru-database-code-one-task-group— implements a bucket of database tasks sequentially, one at a time, then checks off completed tasks and notifies the user — no quality baseline or bucket-wide validation pass. -
iru-database-code-one-task— generates the queries a single task calls for, executes the read-only ones via a connected database MCP if one exists, and records both indatabase-report.md; called once per task byiru-database-code-one-task-group.
Pull Request Lifecycle
Everything after code exists but before it’s merged: describing the change and getting it reviewed, on whichever platform hosts the repository (GitHub, Bitbucket, Azure DevOps, or TFS).
|
Used automatically as the last leg of |
-
iru-pr-description— drafts a PR description from the real diff, and optionally opens/updates the pull request. -
iru-pr-review— reviews an open pull request against the linked ticket’s intent and this codebase’s conventions.
Repository Maintenance
Keeping an already-bootstrapped repository correct and current, well after its initial setup.
|
Intended for whoever maintains the repository over time rather than someone mid-feature: cutting releases, keeping docs from drifting after unrelated code changes, periodically verifying license headers, and scanning for accidentally committed secrets. |
-
iru-release— cuts a release branch, bumps versions, drafts release notes/changelog, and opens the release PR. -
iru-update-docs— brings the Antora documentation module up to date with changes already made to the code. -
iru-build-docs— builds the existing Antora documentation site as-is (no content edits), scaffolding it first viairu-setup-antoraif it doesn’t exist yet. -
iru-check-license— verifies (and backfills) license headers against the repository’s actual license. -
iru-check-security— scans for accidentally committed secrets viadetect-secrets, maintaining a.secrets.baselineso repeat runs surface only what’s new.
Catalog Tooling
Maintaining this catalog’s own documentation rather than a consumer repository’s.
|
Only relevant if you’re working in this |
-
iru-generate-skill-docs— regenerates this documentation site itself from the current set of skills and agents on disk.
Sub-Agent Infrastructure
The custom agents this catalog’s skills delegate to for its most-duplicated sub-agent shapes, cutting across every group above rather than belonging to any single workflow.
|
Not something invoked directly the way a skill is — an agent is only ever reached indirectly, through a
skill’s own instructions naming it in an |
-
iru-gate-runner— runs a single verification/quality-gate skill and reports back only a compact summary, optionally diffed against a baseline. Used throughoutiru-code,iru-code-one-task-group,iru-java-code-one-task-group, andiru-dotnet-code-one-task-group. -
iru-isolated-skill-executor— runs one named skill end to end in a fresh context so the caller can keep running afterward. Used byiru-issueto delegate the entireiru-coderun for a ticket, byiru-codeitself to delegate each task group toiru-code-one-task-group, byiru-java-code-one-task-groupandiru-dotnet-code-one-task-groupto delegate each task in a bucket toiru-java-code-one-task/iru-dotnet-code-one-task, and byiru-setup-java-library-repositoryto delegate each of the six bootstrap skills it orchestrates. -
iru-change-summarizer— fans out over a git commit/tag range and returns only the user-facing changes. Used byiru-setup-changelogto summarize one release at a time when backfilling a long tag history, and byiru-releaseto summarize the single range since the previous release.
Dependency graph
An edge means "invokes" (a solid line, via the Skill tool) or "spawns" (a dotted line, via the Agent
tool). code-review is an external skill this catalog does not define — iru-pr-review uses it only when it
happens to be available in the current session.
Common workflows
These sections walk through how the catalog’s skills compose for a few recurring jobs. Each is a real,
supported path through the graph above — not every skill in the catalog appears in one, since some
(the Java and .NET Development Tooling skills,
iru-check-license) are more often invoked as building blocks of a larger flow than run standalone by a person.
Setting up a new repository
iru-setup-java-library-repository collects the project’s identity and CI/CD parameters once, then
orchestrates six other skills in a fixed order so nothing is asked twice:
Any of these six can also be run standalone against an existing repository to fill a single gap (e.g. just
/iru-setup-antora to add docs to a repository that already has a pom.xml).
Filing a ticket before work begins
iru-create-github-issue and iru-create-jira-ticket turn a rough idea into a tracked, actionable ticket, ready for a
later, separate /iru-issue invocation. See guides/common-workflows.adoc#filing-a-ticket for a more detailed
walkthrough.
Both skills work the same way up to filing; which one to use depends on which tracker the repository/team
uses. Neither is required — /iru-issue and /iru-plan work fine against a ticket filed by hand, or against no ticket
at all (a free-form description).
Typical development cycle, starting from a ticket
iru-issue is the single entry point for taking a tracked ticket — a GitHub issue or a Jira ticket — to an open,
reviewed pull request. See guides/common-workflows.adoc#typical-development-cycle for a more detailed
walkthrough — this is the main workflow for day-to-day work in this catalog.
iru-code itself doesn’t implement anything directly: for every task group it dispatches to
iru-code-one-task-group, which resolves each task’s language and delegates
to whichever iru-java-code-one-task-group or
iru-dotnet-code-one-task-group skill matches — each of which captures
one quality baseline for the whole bucket, implements its tasks (in parallel when the group allows it), and
validates the bucket once via its own group’s tests/coverage/quality/doc skills, instead of once per task. A
bucket tagged database instead goes to
iru-database-code-one-task-group, which is deliberately simpler — always sequential, with no baseline or
bucket-wide validation of its own. The whole run is bracketed with project-wide quality
(iru-java-code-quality/iru-dotnet-code-quality) and security (iru-check-security) baselines, updating documentation
via iru-update-docs once both pass (see Code). iru-explore and iru-plan can also be run
individually (/iru-explore, /iru-plan) ahead of, or instead of, the full /iru-issue flow, and either a GitHub issue or
a Jira ticket works the same way throughout.
Generating a release
iru-release must be run from develop and drives the whole version bump itself, delegating only the README
and PR description. See guides/common-workflows.adoc#generating-a-release for a more detailed
walkthrough.
Updating an existing repository with new functionality
There is no single orchestrator for this — it’s a set of independent skills, each scoped to one artifact, run after code has already changed:
iru-setup-changelog is deliberately not part of this flow: it only bootstraps a changelog that doesn’t
exist yet and stops immediately if CHANGELOG.md is already present (see Setup Changelog).
Keeping an existing changelog current on each release is `iru-release’s job, not a standalone update skill’s.
Keeping this documentation current
|
This documentation site can be created or updated in two ways:
|
This page and every detail page under Catalog Tooling are themselves
generated — by iru-generate-skill-docs, from whatever skills/agents actually exist under
.claude/skills/ (and .claude/agents/, if any) at the time it runs:
Re-run it (/iru-generate-skill-docs) after adding, removing, or materially changing a skill or
agent, so this page and the detail pages it links to don’t drift from what’s actually on disk.
Each skill’s own detail page (linked from the table above) covers its exact inputs, outputs, and execution
flow. Each skill is also self-contained under its own .claude/skills/<name>/SKILL.md — copy the ones you
need into another repository’s .claude/skills/ directory to adopt them there.