Setup Java Library Repository
| This documentation was generated with the assistance of AI. Please report any inaccuracies. |
End-to-end bootstrap for a Java/Maven library repository, new or existing. It collects the project’s identity, pipeline parameters, and open-source/visibility/CI/publish/Sonar choices once, announces whether it is setting up from scratch or updating, then orchestrates six other skills in a fixed order so nothing is asked twice.
Purpose
iru-setup-java-library-repository is the stack orchestrator for starting (or catching up) a Java/Maven
library repository — runnable standalone or delegated to by Setup Repository. Rather than
duplicating the logic of pom.xml generation, documentation scaffolding,
.gitignore setup, CI/CD and security workflows, changelog bootstrapping, and README generation, it gathers the
shared inputs — project identity (groupId, artifactId, base package, developer name/email/organizationUrl,
license), pipeline parameters (integration branch, Java version, publishing server id, sign/extras profile ids,
Maven settings file), and whether the project is open source, publishes to Maven Central, and runs SonarCloud,
self-hosted SonarQube, or no Sonar analysis — once, and passes each downstream skill only what it needs.
Step 0 first parses an optional args block (mode, open-source, visibility, ci, ci-tests, pages,
publish, sonar plus its sonar-organization/sonar-project-key/sonar-host-url detail keys, and
on-existing) so a caller like Setup Repository can pre-resolve these and skip the matching
questions. It then prints a Setup mode announcement: "from scratch" when mode: new and nothing owned is on
disk, otherwise "updating an existing repository" with an inventory table marking each component (build manifest,
source layout, Sonar config, Antora docs, .gitignore, workflows, Dependabot, changelog, README, license) as
absent, present, or partial.
The orchestrator never asks a keep/update/replace question itself: iru-setup-java-library is now always invoked
(even in mode: existing), and each component sub-skill warns about the prior artifact it finds and asks Update /
Keep as is / Replace (Stop where offered), unless a forwarded on-existing decides for it.
Step 2 gives cost-aware recommendations for private repositories: the Actions minutes budget (2,000/month on GitHub Free, 3,000 on Pro and Team, 50,000 on Enterprise Cloud, per GitHub’s current pricing), SonarCloud being free only for public/open-source projects, and GitHub Pages needing a paid plan (and being public) for private repositories.
Plugin
Shipped by the iru-java plugin of the ai-catalog marketplace (install with /plugin install iru-java@ai-catalog; see Plugins).
Invocation
/iru-setup-java-library-repository
Optionally with an args block (key: value lines) to pre-resolve mode, open-source, visibility, ci,
ci-tests, pages, publish, sonar (plus its detail keys), and on-existing, and skip the matching questions — this is how
Setup Repository drives it.
Inputs
| Argument | Required | Description | Default |
|---|---|---|---|
groupId, artifactId, base package, developer name/email/organizationUrl |
Yes |
Free-text project-identity fields, asked directly in plain conversation in Step 1. |
None |
License |
Yes |
Resolved once via |
None — user must choose |
Integration branch |
No |
Branch that CI treats as the integration branch, fed to |
|
Java version |
No |
Java version the CI pipeline builds against, and the |
|
Publishing server id |
No |
Maven Central (or equivalent) publishing server id. |
|
Extras profile id |
No |
Maven profile id for building extra artifacts (sources/javadoc jars). |
|
Sign profile id |
No |
Maven profile id for GPG-signing artifacts. |
|
Maven settings file |
No |
Settings file used by the CI workflows for authentication. |
|
|
No |
|
|
|
No |
Whether the repository is open source. Drives the recommended defaults for |
Asked directly, no default |
|
No |
|
Detected via |
|
No |
|
Asked, |
|
No |
|
Asked; |
|
No |
|
|
|
No |
Whether to publish to Maven Central. |
|
|
No |
|
|
|
No |
|
|
Outputs
-
pom.xmland thesrc/main/java/src/main/resources/src/test/javasource folders for the base package (viairu-setup-java-library) — created, or, ifpom.xmlalready exists, updated, kept as is, or replaced per that skill’s own question. -
A scaffolded Antora documentation site under
docs/(viairu-setup-antora). -
A root
.gitignorecovering the build tool, IDE files, and the Antora build output (viairu-setup-java-gitignore). -
develop.yml/main.yml/sync.yml/security.ymlGitHub Actions workflows,.github/dependabot.yml, and the.github/scripts/sync_versions.pyscript (viairu-setup-java-github-workflows), with the Maven Central publish step and the SonarCloud/self-hosted SonarQube scan step present or absent according topublish/sonar, and honouringci-testsandpages. Nothing is generated whenci: no. -
A root
CHANGELOG.mdbackfilled from git/GitHub release history (viairu-setup-changelog). -
A root
README.mdwith badges, a project-status table, documentation links, and installation instructions (viairu-setup-readme). -
A final report summarizing the resolved identity/license/pipeline parameters, the setup mode (from scratch or updating), a per-component table with the action taken (created / updated / replaced / kept as is / skipped (
ci: no) / stopped, plus any mismatch listed for a kept file), the required GitHub secrets, and an explicit disclosure of theopen-source/visibility/ci/ci-tests/pages/publish/sonarwiring decisions (what was included inpom.xmland the workflows, and why anything was omitted, including the included-minutes note for private repositories). Ends with a warning to review every generated file before building, committing, or relying on CI.
Execution flow
Dependencies
Invokes
Each of the following is invoked via the iru-isolated-skill-executor
agent rather than a direct Skill call — every sub-skill re-derives what it needs straight from the filesystem
this orchestrator has just written to, so only a short completion summary needs to come back, keeping each
sub-skill’s own exploration/file reads out of this orchestrator’s own context:
-
Setup Java Library — Step 3, first: writes
pom.xmland the source folders, passing Step 1’s answers (groupId, artifactId, package, developer name/email/organizationUrl, license) plus Step 2’s Java version,open-source/publish/sonar(+ detail keys),visibility,ci, andon-existing(only when supplied) asargskey: valuelines soiru-setup-java-librarydoesn’t ask for them again — and so thepom.xmlcompiler level and publish/Sonar wiring matches the workflows Step 6 generates. Always invoked, even inmode: existing; it asks Update / Keep / Replace / Stop about an existingpom.xmlitself. -
Setup Antora — Step 4: scaffolds the Antora documentation site, invoked with no
args(or onlyon-existing, when supplied) since it derives the component name/title/version directly from thepom.xmlStep 3 just wrote. It asks Update / Keep / Replace itself for an existing site. -
Setup Java Gitignore — Step 5: writes or updates the root
.gitignore, invoked with noargs(or onlyon-existing, when supplied) since it explores the repository directly (including what Steps 3–4 just wrote). -
Setup Java GitHub Workflows — Step 6 (skipped entirely when
ci: no): writes the CI/CD and security workflows (develop.yml/main.yml/sync.yml/security.yml/.github/dependabot.yml), passing Step 2’s pipeline parameters (integration branch, Java version, publishing server id, extras/sign profile ids, settings file,open-source/publish/sonar+ detail keys,visibility,ci-tests,pages,mode, andon-existingwhen supplied) plus Step 1’s already-collectedgroupId/artifactIdasargskey: valuelines, so that skill’s own survey doesn’t need to re-read them frompom.xmland stays in agreement with what Step 3 wrote there. -
Setup Changelog — Step 7: bootstraps the root
CHANGELOG.md, invoked with noargs(or onlyon-existing, when supplied) since it works from the repository’s own git tag/GitHub Release history. It asks Keep / Update / Replace itself for an existing file. -
Setup Readme — Step 8, last: bootstraps the root
README.md, passingsonar,ci,pages(nowhenci: no), andon-existingwhen supplied, so Sonar badges, CI badges, and the github.io link match the choices made; it explores the finished state left by every earlier step for everything else.
Invoked by
-
Setup Repository — Step 4, Java library bootstrap, via the
iru-isolated-skill-executoragent.
Related agents
-
iru-isolated-skill-executor— spawned once per sub-skill (Steps 3–8), so all six sub-skills' own exploration/file-read transcripts don’t accumulate in this orchestrator’s context over the course of a single bootstrap run.
Source
SKILL.md on GitHub — the file this page was generated from.