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

The CLAUDE.md file

What CLAUDE.md is for, every location Claude Code loads one from, precedence between them, and how to create or update one (including /init) without bloating context.

Common workflows

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.

Creating and updating skills and agents

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.

Extending the skills and agents catalog

Where this catalog’s pipelines are already built to grow by convention (the iru-code pipeline’s language/framework registry) versus where a single skill still hardcodes one stack (release generation, repository bootstrap) — and what’s involved in adding a new language, stack, tracker, or quality gate to each.

Plugins

What a plugin bundles, its manifest/directory layout, and how marketplaces (private or public) distribute one across repositories.

Authoring effective instructions

How to phrase instructions in a SKILL.md, agent definition, or CLAUDE.md — direct, concise, step structured — and how to keep the context window from filling with information that degrades results.

Packaging and distributing skills, agents, and CLAUDE.md

Copying files into .claude/ versus packaging as a plugin distributed via a marketplace: the tradeoffs and when each is the better fit.

Claude Code vs. GitHub Copilot vs. OpenAI Codex

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

iru-build-docs

Repository Maintenance

Build the existing Antora documentation site as-is, scaffolding it first via iru-setup-antora if needed.

Build Docs

iru-check-license

Repository Maintenance

Verify (and backfill) license headers on source/test files against the repository’s actual license.

Check License

iru-check-security

Repository Maintenance

Scan for accidentally committed secrets via detect-secrets, maintaining a .secrets.baseline.

Check Security

iru-code

Issue-to-PR Development Cycle

Execute implementation_plan.md end to end, one task group at a time, dispatching each to iru-code-one-task-group.

Code

iru-code-one-task-group

Issue-to-PR Development Cycle

Implement one plan task group, dispatching each task to its language’s <key>-code-one-task-group skill.

Code One Task Group

iru-create-github-issue

Ticket Intake

Draft and file a new GitHub issue, grounded in the codebase and confirmed with the user before creation.

Create GitHub Issue

iru-create-jira-ticket

Ticket Intake

Draft and file a new Jira ticket via connected Jira MCP tools, the Jira counterpart to iru-create-github-issue.

Create Jira Ticket

iru-database-code-one-task

Database Development Tooling

Generate (and, if a matching MCP allows it, execute) the queries a single database plan task calls for.

Database Code One Task

iru-database-code-one-task-group

Database Development Tooling

Implement a bucket of database tasks sequentially, one task at a time — no baseline or bucket-wide validation.

Database Code One Task Group

iru-dotnet-code-one-task

.NET Development Tooling

Implement a single .NET plan task’s code and tests only — validation is handled by iru-dotnet-code-one-task-group.

.NET Code One Task

iru-dotnet-code-one-task-group

.NET Development Tooling

Implement a bucket of .NET tasks (in parallel where safe) and validate the whole bucket once.

.NET Code One Task Group

iru-dotnet-code-quality

.NET Development Tooling

Run StyleCop.Analyzers/CA Roslyn analyzers via a SARIF-logged build and summarize every issue found.

.NET Code Quality

iru-dotnet-coverage

.NET Development Tooling

Run Coverlet via dotnet test and report the exact measured coverage percentage for target class(es).

.NET Coverage

iru-dotnet-docfx

.NET Development Tooling

Audit and complete XML doc-comment coverage for given types, then attempt a DocFX build.

.NET DocFX

iru-dotnet-generate-all-tests

.NET Development Tooling

Find every .NET class with no tests or under 80% coverage and generate/extend tests until it clears the bar.

.NET Generate All Tests

iru-dotnet-test

.NET Development Tooling

Run the .NET test suite via dotnet test, scoped to a class/method/namespace/trait selector.

.NET Test

iru-explore

Issue-to-PR Development Cycle

Read-only research pass over the codebase, optionally grounded in a GitHub issue or Jira ticket.

Explore

iru-generate-skill-docs

Catalog Tooling

Regenerate this documentation site itself from the current set of skills and agents on disk.

Generate Skill Docs

iru-issue

Issue-to-PR Development Cycle

End-to-end kickoff for a tracked ticket: branch, explore, plan, implement, open PR, review.

Issue

iru-java-code-one-task

Java Development Tooling

Implement a single Java plan task’s code and tests only — validation is handled by iru-java-code-one-task-group.

Java Code One Task

iru-java-code-one-task-group

Java Development Tooling

Implement a bucket of Java tasks (in parallel where safe) and validate the whole bucket once.

Java Code One Task Group

iru-java-code-quality

Java Development Tooling

Run Checkstyle/PMD/SpotBugs and summarize every issue found, grouped by tool.

Java Code Quality

iru-java-coverage

Java Development Tooling

Run JaCoCo and report the exact measured coverage percentage for target class(es).

Java Coverage

iru-java-generate-all-tests

Java Development Tooling

Find every Java class with no tests or under 80% coverage and generate/extend tests until it clears the bar.

Java Generate All Tests

iru-java-javadoc

Java Development Tooling

Audit and complete Javadoc coverage for given classes, then verify it builds cleanly.

Java Javadoc

iru-java-test

Java Development Tooling

Run the JUnit suite via Surefire, scoped to a class/method/package/tag selector.

Java Test

iru-plan

Issue-to-PR Development Cycle

Write a concrete, reviewable implementation_plan.md, tagging each task’s language/framework.

Plan

iru-pr-description

Pull Request Lifecycle

Draft a PR description from the real diff, and optionally open/update the pull request.

PR Description

iru-pr-review

Pull Request Lifecycle

Review an open pull request against the linked ticket’s intent and this codebase’s conventions.

PR Review

iru-release

Repository Maintenance

Cut a release branch, bump versions, draft release notes/changelog, and open the release PR.

Release

iru-setup-antora

Repository Bootstrap

Scaffold a new Antora documentation site (antora.yml, playbook, starter pages) or fill gaps in an existing one.

Setup Antora

iru-setup-changelog

Repository Bootstrap

One-time bootstrap of CHANGELOG.md, backfilled from git tags/GitHub Releases.

Setup Changelog

iru-setup-java-github-workflows

Repository Bootstrap

Scaffold/update the develop.yml/main.yml/sync.yml GitHub Actions CI/CD pipeline.

Setup Java GitHub Workflows

iru-setup-java-gitignore

Repository Bootstrap

Create or refresh the root .gitignore for a Java project.

Setup Java Gitignore

iru-setup-java-library

Repository Bootstrap

Generate pom.xml and the standard Maven source layout for a new Java library.

Setup Java Library

iru-setup-java-library-repository

Repository Bootstrap

Orchestrator: bootstrap a brand-new Java library repository end to end in one pass.

Setup Java Library Repository

iru-setup-readme

Repository Bootstrap

Create or refresh the root README.md from what actually exists in the repository.

Setup Readme

iru-update-docs

Repository Maintenance

Bring the Antora documentation module up to date with changes already made to the code.

Update Docs

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

iru-change-summarizer

Fan out over a git commit/tag range and return only the user-facing changes.

Change Summarizer

iru-gate-runner

Run a single verification/quality-gate skill and report back only a compact summary, optionally vs. a baseline.

Gate Runner

iru-isolated-skill-executor

Run one named skill end to end in a fresh context, so the caller can keep running afterward.

Isolated Skill Executor

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 is the single entry point that runs the rest in order; each one also works standalone to fill a single gap in a repository that already has some of this in place (e.g. just /iru-setup-antora to add docs to a repository that already has a pom.xml).

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-issue//iru-plan can work from a free-form description instead — but both skills ground the draft in the actual codebase (via iru-explore) and ask for the same context (purpose, links, files, related tickets) so what lands in the tracker is immediately actionable.

  • iru-create-github-issue — drafts and files a GitHub issue via gh 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 is the single entry point for the full pipeline; iru-explore and iru-plan are also commonly run individually (/iru-explore, /iru-plan) ahead of, or instead of, the full /iru-issue flow. iru-code itself doesn’t implement anything directly — it dispatches each of iru-plan’s dependency-aware task groups, in order, to `iru-code-one-task-group, which resolves each task’s language and delegates to whichever Java, .NET, or Database Development Tooling group skill matches, and brackets the whole run with quality and security baselines (Repository Maintenance).

  • 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, reviewable implementation_plan.md, grouping tasks by dependency and tagging each with the language/framework key a downstream <key>-code-one-task-group skill should handle it with.

  • iru-code — executes implementation_plan.md end to end, one task group at a time, via iru-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-group skill (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-code-one-task-group dispatches every task-group bucket tagged (or defaulted to) java to iru-java-code-one-task-group, which captures one quality baseline for the bucket, runs iru-java-code-one-task once per task (in parallel when the group allows it), then validates the whole bucket once via the other four skills in this group. Reach for those four directly, any time, while iterating on code day to day — before committing, before opening a PR, or just to check where a class currently stands. You rarely need to invoke any of them yourself during the Issue-to-PR Development Cycle.

  • 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 by iru-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 (via iru-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-code-one-task-group dispatches every task-group bucket tagged dotnet to iru-dotnet-code-one-task-group, which captures one quality baseline for the bucket, runs iru-dotnet-code-one-task once per task (in parallel when the group allows it), then validates the whole bucket once via the other four skills here. Reach for those four directly any time while iterating day to day; iru-code rarely needs them invoked directly during the Issue-to-PR Development Cycle.

  • 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 by iru-dotnet-code-one-task-group.

  • iru-dotnet-test — runs the test suite via dotnet test, scoped to a class/method/namespace/trait selector.

  • iru-dotnet-coverage — runs Coverlet via dotnet test and 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 (via iru-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-code-one-task-group dispatches every task-group bucket tagged database to iru-database-code-one-task-group, which calls iru-database-code-one-task once per task. Unlike its Java/.NET counterparts, this pairing is deliberately simpler: tasks are always implemented one at a time, in the plan’s order, regardless of the bucket’s Parallelizable verdict (database changes commonly carry a real ordering dependency even when a plan doesn’t flag one explicitly), and there is no pre-change quality baseline or bucket-wide validation pass — each task is trusted to handle its own correctness. iru-database-code-one-task generates the queries a task calls for (grounded in the real schema via iru-explore), executes only the read-only/idempotent ones when a matching database MCP is connected, and records everything in database-report.md.

  • 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 in database-report.md; called once per task by iru-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-issue’s pipeline once `iru-code finishes, but just as useful standalone — e.g. after making changes outside the /iru-issue flow and wanting a PR description drafted, or a second, convention-aware review pass before asking a teammate for one.

  • 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 via iru-setup-antora if 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 via detect-secrets, maintaining a .secrets.baseline so 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 ai-catalog repository itself, to keep its generated pages current after a skill or agent is added, removed, or changed — not something a repository that merely adopted one of these skills would ever need to run.

  • 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 Agent() call. See Creating and updating skills and agents for how agents differ from skills in how they’re triggered.

  • iru-gate-runner — runs a single verification/quality-gate skill and reports back only a compact summary, optionally diffed against a baseline. Used throughout iru-code, iru-code-one-task-group, iru-java-code-one-task-group, and iru-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 by iru-issue to delegate the entire iru-code run for a ticket, by iru-code itself to delegate each task group to iru-code-one-task-group, by iru-java-code-one-task-group and iru-dotnet-code-one-task-group to delegate each task in a bucket to iru-java-code-one-task/iru-dotnet-code-one-task, and by iru-setup-java-library-repository to 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 by iru-setup-changelog to summarize one release at a time when backfilling a long tag history, and by iru-release to 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.

flowchart LR subgraph Bootstrap["Repository Bootstrap"] SJLR["iru-setup-java-library-repository"] SJL["iru-setup-java-library"] AS["iru-setup-antora"] SJG["iru-setup-java-gitignore"] SJW["iru-setup-java-github-workflows"] SC["iru-setup-changelog"] SR["iru-setup-readme"] end subgraph Intake["Ticket Intake"] CGI["iru-create-github-issue"] CJT["iru-create-jira-ticket"] end subgraph Cycle["Issue-to-PR Development Cycle"] ISSUE["iru-issue"] EXPLORE["iru-explore"] PLAN["iru-plan"] CODE["iru-code"] COTG["iru-code-one-task-group"] end subgraph Java["Java Development Tooling"] JCOTG["iru-java-code-one-task-group"] JCOT["iru-java-code-one-task"] JT["iru-java-test"] JC["iru-java-coverage"] JCQ["iru-java-code-quality"] JJ["iru-java-javadoc"] JGAT["iru-java-generate-all-tests"] end subgraph Dotnet[".NET Development Tooling"] DCOTG["iru-dotnet-code-one-task-group"] DCOT["iru-dotnet-code-one-task"] DT["iru-dotnet-test"] DC["iru-dotnet-coverage"] DCQ["iru-dotnet-code-quality"] DDF["iru-dotnet-docfx"] DGAT["iru-dotnet-generate-all-tests"] end subgraph Database["Database Development Tooling"] DBCOTG["iru-database-code-one-task-group"] DBCOT["iru-database-code-one-task"] end subgraph PRLife["Pull Request Lifecycle"] PRD["iru-pr-description"] PRR["iru-pr-review"] end subgraph Maintenance["Repository Maintenance"] REL["iru-release"] UD["iru-update-docs"] BD["iru-build-docs"] CL["iru-check-license"] CSEC["iru-check-security"] end subgraph Tooling["Catalog Tooling"] GSD["iru-generate-skill-docs"] end SJLR -.-> SJL SJLR -.-> AS SJLR -.-> SJG SJLR -.-> SJW SJLR -.-> SC SJLR -.-> SR CGI --> EXPLORE CJT --> EXPLORE ISSUE --> EXPLORE ISSUE --> PLAN ISSUE -.-> CODE ISSUE --> PRD ISSUE --> PRR PLAN --> EXPLORE PRR --> EXPLORE CODE -.-> COTG CODE -.-> JCQ CODE -.-> DCQ CODE -.-> CSEC CODE --> UD COTG --> JCOTG COTG --> DCOTG COTG --> DBCOTG DBCOTG --> DBCOT DBCOT --> EXPLORE JCOTG -.-> JCOT JCOTG -.-> JCQ JCOTG -.-> CL JCOTG -.-> JJ JCOTG -.-> JT JCOTG -.-> JC JGAT --> JC JGAT --> JT DCOTG -.-> DCOT DCOTG -.-> DCQ DCOTG -.-> CL DCOTG -.-> DDF DCOTG -.-> DT DCOTG -.-> DC DGAT --> DC DGAT --> DT REL --> SR REL --> PRD UD -.->|only if no Antora module yet| AS BD -.->|only if no Antora module yet| AS GSD -.->|only if no Antora module yet| AS PRR -.->|external, not in this catalog| CR[["code-review"]] EXPLORE -.uses.-> AGT_EXPLORE(("Explore\nagent")) AS -.uses.-> AGT_EXPLORE SR -.uses.-> AGT_EXPLORE JGAT -.uses.-> AGT_EXPLORE DGAT -.uses.-> AGT_EXPLORE CODE -.spawns.-> AGT_GATE(("iru-gate-runner\nagent")) COTG -.spawns.-> AGT_GATE JCOTG -.spawns.-> AGT_GATE DCOTG -.spawns.-> AGT_GATE JGAT -.spawns.-> AGT_GATE DGAT -.spawns.-> AGT_GATE ISSUE -.spawns.-> AGT_ISE(("iru-isolated-skill-executor\nagent")) CODE -.spawns.-> AGT_ISE JCOTG -.spawns.-> AGT_ISE DCOTG -.spawns.-> AGT_ISE SJLR -.spawns.-> AGT_ISE SC -.spawns.-> AGT_CS(("iru-change-summarizer\nagent")) REL -.spawns.-> AGT_CS GSD -.spawns.-> AGT_GP(("general-purpose\nagent")) UD -.spawns.-> AGT_GP PRD -.spawns.-> AGT_GP JGAT -.spawns.-> AGT_GP DGAT -.spawns.-> AGT_GP

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:

flowchart TD A["/iru-setup-java-library-repository"] --> B["iru-setup-java-library\n(pom.xml + source layout)"] B --> C["iru-setup-antora\n(docs site)"] C --> D["iru-setup-java-gitignore\n(.gitignore)"] D --> E["iru-setup-java-github-workflows\n(CI/CD)"] E --> F["iru-setup-changelog\n(CHANGELOG.md)"] F --> G["iru-setup-readme\n(README.md, last — sees everything above)"]

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.

flowchart LR A["/iru-create-github-issue\nor /iru-create-jira-ticket"] --> B["iru-explore\n(ground the draft in the codebase)"] B --> C["Ask purpose + additional context\n(URLs, files, related tickets)"] C --> D["Draft + confirm + file\n(gh issue create /\nJira MCP tools)"] D --> E(["/iru-issue <id-or-key>\n(separate, later invocation)"])

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.

flowchart LR A["/iru-issue <ticket-id>"] --> B["iru-explore\n(understand the ticket)"] B --> C["iru-plan\n(write implementation_plan.md,\ngroup tasks by dependency,\ntag each with a language/framework)"] C --> D{Hand off to /iru-code?} D -- yes --> E["iru-code\n(dispatch each task group to\niru-code-one-task-group, via a sub-agent)"] D -- no --> H[Stop for manual review] E --> F["iru-pr-description\n(open PR as a draft)"] F --> G["iru-pr-review\n(review the new PR)"]

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.

flowchart LR A["/iru-release"] --> B["Pick release + next SNAPSHOT version"] B --> C["Bump pom.xml, docs/antora.yml, Antora version snippets"] C --> D["iru-setup-readme\n(refresh README.md)"] D --> E["Write whats-new.adoc + CHANGELOG.md"] E --> F["Commit, push release_x.y.z"] F --> G["iru-pr-description\n(fill in the release PR)"]

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:

flowchart TD Code["Code change already made\n(uncommitted or on a branch)"] --> UD["iru-update-docs\n(Antora pages)"] Code --> RM["iru-setup-readme\n(README.md, if it already exists: proposes a diff)"] Code --> CLI["iru-check-license\n(license headers on touched files)"] Code --> CSEC["iru-check-security\n(scan for secrets before committing)"] UD -.->|only if no Antora module exists yet| AS["iru-setup-antora"]

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:

  • Preferred — run the iru-generate-skill-docs skill (/iru-generate-skill-docs). It (re)generates this page — the reference table, purpose groups, dependency graph, and common workflows above — plus one detail page per skill/agent under skills/ and agents/, directly from whatever .claude/skills/*/SKILL.md files and agent definitions actually exist in the repository. It’s idempotent, so it’s safe to re-run any time a skill or agent is added, removed, or changed; see Keeping this documentation current above.

  • Manual edits. This page and the detail pages are plain AsciiDoc files under docs/modules/ROOT/pages/, and can be edited directly like any other Antora content. This is fine for wording or structural fixes, but anything describing what a skill or agent actually does should instead go through the skill above — hand-written content there will be overwritten the next time it runs.

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:

flowchart LR A["/iru-generate-skill-docs"] --> B["Discover every SKILL.md\n+ agent usage on disk"] B --> C["Build the dependency graph\n+ purpose groups + workflows"] C --> D["Write index.adoc, skills/*.adoc,\nagents/*.adoc, nav.adoc"] D --> E["npx antora — verify the\nsite still builds"]

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.