Skip to content

Publish Grails skills through SkillsJars#15805

Open
jamesfredley wants to merge 2 commits into
8.0.xfrom
docs/publish-grails-skillsjars
Open

Publish Grails skills through SkillsJars#15805
jamesfredley wants to merge 2 commits into
8.0.xfrom
docs/publish-grails-skillsjars

Conversation

@jamesfredley

@jamesfredley jamesfredley commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

The Problem

SkillsJars discovers and publishes agent skills from a root-level skills/**/SKILL.md layout. Grails keeps its canonical skill sources under .agents/skills, which SkillsJars does not scan by default - and that directory also contains framework-contributor-only skills that should not be published to application developers.

The Fix

Expose only the app-facing Grails skills through the SkillsJars discovery path, without duplicating any content, while keeping contributor skills internal.

Published via root-level skills/ (real directories whose SKILL.md is a symlink to the canonical source):

  • skills/grails-developer/SKILL.md -> .agents/skills/grails-developer/SKILL.md
  • skills/grails-8-upgrade/SKILL.md -> .agents/skills/grails-8-upgrade/SKILL.md

Kept internal under .agents/skills only: hibernate-developer, test-fixer, violation-fixer, and other core-contributor workflow skills.

The change also:

  • uses real skill directories with SKILL.md symlinks so SkillsJars discovers normal skill folders;
  • adds a verifySkillsJarsSources Gradle task asserting the exact published skill set, symlink targets, git mode 120000, and canonical source markers;
  • excludes only the symlink alias paths from RAT (the licensed sources remain under .agents/skills);
  • documents the canonical location, the public discovery aliases, and the publish workflow.

How to publish after merge

Submit the SkillsJars form with GitHub Org apache and Repo grails-core. SkillsJars shallow-clones the public repo, scans skills/**/SKILL.md, and publishes Maven Central artifacts under com.skillsjars:

  • com.skillsjars:apache__grails-core__grails-developer:<date>-<commit>
  • com.skillsjars:apache__grails-core__grails-8-upgrade:<date>-<commit>

Testing

  • ./gradlew verifySkillsJarsSources passes; git diff --cached --check clean.
  • ./gradlew rat no longer reports the skills/** or tracked .claude/skills/** symlink aliases.

Expose the canonical .agents/skills directory through a root skills symlink so SkillsJars can discover the existing skill definitions without duplicating files.

Add a verification task and publishing notes for submitting the skills from skillsjars.com.

Assisted-by: Hephaestus:openai/gpt-5.5 codex-review
Copilot AI review requested due to automatic review settings July 1, 2026 14:30

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds build-time verification and documentation to support publishing the repository’s agent skills via SkillsJars, using a root-level skills path intended for SkillsJars discovery.

Changes:

  • Add a verifySkillsJarsSources Gradle verification task to validate the skills publication path and presence of SKILL.md markers.
  • Exclude the skills path from Apache RAT scanning to avoid symlink/discovery-path complications.
  • Document the skills directory purpose and publishing workflow under .agents/skills.

Reviewed changes

Copilot reviewed 3 out of 4 changed files in this pull request and generated no comments.

File Description
gradle/rat-root-config.gradle Excludes skills discovery path from RAT audit inputs.
build.gradle Adds verifySkillsJarsSources task to validate symlink target, git mode, and skill markers.
.agents/skills/README.md Documents the canonical skills location and SkillsJars publishing/verification steps.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@codecov

codecov Bot commented Jul 1, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 49.4809%. Comparing base (b86be15) to head (fa7f03b).
⚠️ Report is 239 commits behind head on 8.0.x.

Additional details and impacted files

Impacted file tree graph

@@                Coverage Diff                 @@
##                8.0.x     #15805        +/-   ##
==================================================
- Coverage     49.4820%   49.4809%   -0.0011%     
+ Complexity      16698      16697         -1     
==================================================
  Files            1947       1947                
  Lines           92474      92474                
  Branches        16152      16152                
==================================================
- Hits            45758      45757         -1     
+ Misses          39610      39609         -1     
- Partials         7106       7108         +2     

see 2 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Limit the SkillsJars publication path to Grails skills useful for building or upgrading end-user applications.

Keep internal Grails core development skills only under .agents/skills and expose the public skills through real skills directories containing SKILL.md symlinks to the canonical sources.

Assisted-by: Hephaestus:openai/gpt-5.5 codex-review
@jamesfredley

Copy link
Copy Markdown
Contributor Author

Updated this PR to publish only the app-facing Grails skills:

  • skills/grails-developer/SKILL.md -> .agents/skills/grails-developer/SKILL.md
  • skills/grails-8-upgrade/SKILL.md -> .agents/skills/grails-8-upgrade/SKILL.md

The internal Grails core skills remain under .agents/skills but are no longer exposed to SkillsJars. I also changed the shape from symlinked skill directories to real skill directories with SKILL.md symlinks so SkillsJars can discover/package them more reliably.

@testlens-app

testlens-app Bot commented Jul 1, 2026

Copy link
Copy Markdown

✅ All tests passed ✅

🏷️ Commit: fa7f03b
▶️ Tests: 37272 executed
⚪️ Checks: 44/44 completed


Learn more about TestLens at testlens.app.

@jamesfredley

Copy link
Copy Markdown
Contributor Author

Maintenance pass complete. Copilot generated no inline review comments, there are no review threads to resolve, Codecov/TestLens are green on the existing branch, and I reran ./gradlew.bat --no-daemon --no-parallel --max-workers=1 verifySkillsJarsSources locally. No code changes were needed.

@jdaugherty

Copy link
Copy Markdown
Contributor

I dug into this more and I don't believe we can use SkillsJars - it's acting a publisher directly to maven central. This goes against the ASF voting rules. Has there been any discussion on the mailing lists about this problem?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

3 participants