Skip to content

Add upgrade-deps skill for guided dependency upgrade workflow#6653

Open
ikhoon wants to merge 4 commits intoline:mainfrom
ikhoon:claude-up-deps-skill
Open

Add upgrade-deps skill for guided dependency upgrade workflow#6653
ikhoon wants to merge 4 commits intoline:mainfrom
ikhoon:claude-up-deps-skill

Conversation

@ikhoon
Copy link
Contributor

@ikhoon ikhoon commented Mar 5, 2026

Motivation:

The Gradle dependency upgrade process involves multiple steps:

  • running dependencyUpdates
  • checking Java version compatibility per module
  • updating dependencies.toml
  • upgrading the Gradle wrapper
  • running the full build
  • and committing with a structured message.

Codifying this as a Claude skill makes the process repeatable and accessible to all contributors.

Modifications:

  • Add .claude/skills/upgrade-deps/SKILL.md with a step-by-step upgrade workflow including Java version compatibility rules per module and a strict commit message format

Result:

  • Contributors can invoke /upgrade-deps to follow a guided, repeatable dependency upgrade workflow.

Motivation:

The Gradle dependency upgrade process involves multiple steps:
- running dependencyUpdates
- checking Java version compatibility per module
- updating dependencies.toml
- upgrading the Gradle wrapper
- running the full build
- and committing with a structured message.

Codifying this as a Claude skill makes the process repeatable and
accessible to all contributors.

Modifications:

- Add .claude/skills/upgrade-deps/SKILL.md with a step-by-step upgrade workflow
  including Java version compatibility rules per module and a strict commit
  message format

Result:

- Contributors can invoke /upgrade-deps to follow a guided, repeatable
  dependency upgrade workflow.
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Mar 5, 2026

📝 Walkthrough

Walkthrough

Added a new documentation file describing a step-by-step Upgrade Gradle dependencies skill for multi-module Armeria projects: run and parse dependency reports, determine per-module minimum Java compatibility, update dependencies.toml, upgrade the Gradle wrapper, verify builds, and commit with a strict message format.

Changes

Cohort / File(s) Summary
Gradle Dependency Upgrade Skill Documentation
\.claude/skills/upgrade-deps/SKILL.md
New documentation added that defines the Upgrade Gradle dependencies skill: explains per-module minimum Java compatibility and a compatibility table; steps to run dependencyUpdates and parse the report; rules to validate ambiguous versions via Maven Central; deriving module Java requirements; updating dependencies.toml; upgrading the Gradle wrapper; verification steps; and exact commit message structure and alphabetization rules.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~2 minutes

Poem

🐰 I hopped through versions, neat and spry,
Read reports beneath a gradle sky,
Updated toml and wrapped with care,
Committed tidy — sorted, fair,
A rabbit's guide to upgrades — try! ✨

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title directly and clearly summarizes the main change: adding a new upgrade-deps skill for guiding the dependency upgrade workflow.
Description check ✅ Passed The description clearly relates to the changeset, explaining the motivation for adding the skill, documenting the modifications made, and describing the expected result.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.claude/skills/upgrade-deps/SKILL.md:
- Around line 27-29: Several fenced code blocks in
.claude/skills/upgrade-deps/SKILL.md are missing language identifiers causing
markdownlint MD040 failures; update each triple-backtick block (the examples of
./gradlew dependencyUpdates, ./gradlew build --no-daemon, and the three "Update
dependencies" sample output blocks referenced around lines 27–29, 69–71, 81–89,
101–109) to include appropriate language tags — use bash for command snippets
(e.g. ./gradlew ...) and text for plain output lists — ensuring each opening ```
is changed to ```bash or ```text respectively so editors and markdownlint
recognize the block language.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 7f12dd3b-2393-4b6b-8d45-1af68b8a19d0

📥 Commits

Reviewing files that changed from the base of the PR and between 8d20408 and 7382484.

📒 Files selected for processing (1)
  • .claude/skills/upgrade-deps/SKILL.md

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

♻️ Duplicate comments (1)
.claude/skills/upgrade-deps/SKILL.md (1)

27-29: ⚠️ Potential issue | 🟡 Minor

Add language identifiers to fenced code blocks to satisfy MD040.

The command/output examples are still using unlabeled triple-backtick fences, which keeps markdownlint failing.

Proposed fix
-```
+```bash
 ./gradlew dependencyUpdates

@@
- +bash
./gradlew build --no-daemon


@@
-```
+```text
Update dependencies

- {library-name} {old-version} -> {new-version}
- {library-name} {old-version} -> {new-version}
- Build
   - {library-name} {old-version} -> {new-version}
   - {library-name} {old-version} -> {new-version}

@@
- +text
Update dependencies

  • grpc-java 1.63.0 -> 1.64.0
  • jackson 2.17.0 -> 2.18.0
  • Build
    • checkstyle 10.14.0 -> 10.17.0
    • errorprone 2.27.0 -> 2.28.0

Also applies to: 69-71, 81-89, 101-109

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.claude/skills/upgrade-deps/SKILL.md around lines 27 - 29, Add explicit
language identifiers to all fenced code blocks in SKILL.md to satisfy MD040:
change fences that wrap command examples like "./gradlew dependencyUpdates" and
"./gradlew build --no-daemon" to use ```bash and change the "Update
dependencies" output blocks to use ```text (or ```bash for command output) so
markdownlint recognizes the language; update every similar unlabeled fence
including the other examples that show dependency lists (e.g., the blocks
showing "{library-name} {old-version} -> {new-version}" and the
grpc-java/jackson/checkstyle lists) to include the appropriate language tag.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Duplicate comments:
In @.claude/skills/upgrade-deps/SKILL.md:
- Around line 27-29: Add explicit language identifiers to all fenced code blocks
in SKILL.md to satisfy MD040: change fences that wrap command examples like
"./gradlew dependencyUpdates" and "./gradlew build --no-daemon" to use ```bash
and change the "Update dependencies" output blocks to use ```text (or ```bash
for command output) so markdownlint recognizes the language; update every
similar unlabeled fence including the other examples that show dependency lists
(e.g., the blocks showing "{library-name} {old-version} -> {new-version}" and
the grpc-java/jackson/checkstyle lists) to include the appropriate language tag.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 27cd086e-e970-4ef1-afed-266bb995f69d

📥 Commits

Reviewing files that changed from the base of the PR and between 7382484 and 293ac8d.

📒 Files selected for processing (1)
  • .claude/skills/upgrade-deps/SKILL.md

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

♻️ Duplicate comments (1)
.claude/skills/upgrade-deps/SKILL.md (1)

27-29: ⚠️ Potential issue | 🟡 Minor

Add language identifiers to all unlabeled fenced code blocks (MD040).

The command/output examples still use unlabeled fences, which keeps markdownlint failing and reduces editor highlighting.

Proposed patch
-```
+```bash
 ./gradlew dependencyUpdates

@@
- +bash
./gradlew build --no-daemon


@@
-```
+```text
Update dependencies

- {library-name} {old-version} -> {new-version}
- {library-name} {old-version} -> {new-version}
- Build
   - {library-name} {old-version} -> {new-version}
   - {library-name} {old-version} -> {new-version}

@@
- +text
Update dependencies

  • gRPC-Java 1.63.0 -> 1.64.0
  • Jackson 2.17.0 -> 2.18.0
  • Build
    • checkstyle 10.14.0 -> 10.17.0
    • ErrorProne 2.27.0 -> 2.28.0

Also applies to: 87-89, 99-107, 120-128

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.claude/skills/upgrade-deps/SKILL.md around lines 27 - 29, Update all
unlabeled fenced code blocks in .claude/skills/upgrade-deps/SKILL.md by adding
appropriate language identifiers: mark shell commands like "./gradlew
dependencyUpdates" and "./gradlew build --no-daemon" with ```bash, and mark
plain output blocks (the "Update dependencies" lists and examples such as the
gRPC-Java/Jackson/Build lists) with ```text; ensure you update every occurrence
called out (the command examples and the three "Update dependencies" output
blocks) so markdownlint MD040 is satisfied.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Duplicate comments:
In @.claude/skills/upgrade-deps/SKILL.md:
- Around line 27-29: Update all unlabeled fenced code blocks in
.claude/skills/upgrade-deps/SKILL.md by adding appropriate language identifiers:
mark shell commands like "./gradlew dependencyUpdates" and "./gradlew build
--no-daemon" with ```bash, and mark plain output blocks (the "Update
dependencies" lists and examples such as the gRPC-Java/Jackson/Build lists) with
```text; ensure you update every occurrence called out (the command examples and
the three "Update dependencies" output blocks) so markdownlint MD040 is
satisfied.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: e577df05-7571-4fe6-b83a-d618b40c020e

📥 Commits

Reviewing files that changed from the base of the PR and between 293ac8d and 7928a87.

📒 Files selected for processing (1)
  • .claude/skills/upgrade-deps/SKILL.md

Copy link
Contributor

@jrhee17 jrhee17 left a comment

Choose a reason for hiding this comment

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

👍 👍

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants