Skip to content

chore: add Claude Code project knowledge and helper skills#291

Open
tnj wants to merge 1 commit into
masterfrom
chore/claude-automation
Open

chore: add Claude Code project knowledge and helper skills#291
tnj wants to merge 1 commit into
masterfrom
chore/claude-automation

Conversation

@tnj

@tnj tnj commented Jun 12, 2026

Copy link
Copy Markdown
Member

Summary

Captures the non-obvious development workflow of this repo as Claude Code project assets, so future sessions (and contributors) don't have to rediscover it. No production code changes.

CLAUDE.md (project knowledge)

  • Local verification recipe — the DeployGate mock server (TEST_SERVER_URL), and the --no-daemon requirement when setting TEST_GRADLE_VERSION (a reused daemon caches env and GradleRunner throws 'null' is not a valid Gradle version).
  • Build/version gotchas — ProjectBuilder's Problems service is not initialized regression on Gradle 8.12/8.13 ([Gradle 8.12] "Problems service is not initialized error" in plugin unit tests gradle/gradle#31862, fixed in 8.14); Spotless 8.x needing Gradle 8.1+/Java 17; wrapper Gradle vs minimum user Gradle.
  • Release processsrc/main/resources/VERSION + release.yml tag check, keeping both READMEs in sync.
  • Review conventions — in-thread @mention replies (incl. bots).

Version numbers are intentionally not duplicated here — README.md / build.gradle stay the source of truth.

.claude/skills/

  • verify-locally — runnable steps to mirror each CI job locally.
  • prepare-release — the version/changelog/README release checklist (stops for human approval before committing).

These are grounded in the workflows exercised repeatedly while preparing the 2.10.0 release (every documented gotcha was hit and resolved in practice).

🤖 Generated with Claude Code

Capture the non-obvious dev workflow so future sessions don't rediscover it:

- CLAUDE.md: local verification recipe (mock server, --no-daemon for
  TEST_GRADLE_VERSION), build/version gotchas (ProjectBuilder Problems-service
  regression on Gradle 8.12/8.13, Spotless 8.1+/Java 17), the release process
  (VERSION file + release.yml tag check, dual README), and in-thread review-reply
  conventions.
- .claude/skills/verify-locally: runnable steps to mirror each CI job locally.
- .claude/skills/prepare-release: the version/changelog/README release checklist.

Version numbers are intentionally not duplicated here; README.md / build.gradle
remain the source of truth.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings June 12, 2026 04:33

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Code Review

This pull request introduces documentation and instructions for Claude, including release preparation guidelines, local verification steps, and general project-specific knowledge. The review feedback highlights an inaccuracy in CLAUDE.md regarding the Spotless version and its requirements, and suggests removing a redundant publishToMavenLocal task from the local verification command to speed up the process.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Comment thread CLAUDE.md
Comment on lines +40 to +42
- **Spotless 8.x** requires Gradle 8.1+ and Java 17. It is applied only on
Gradle 8.1+ (guard in `build.gradle`) so the lowest acceptance-matrix Gradle
row still validates the stated minimum.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

medium

The description of Spotless here is inaccurate. The project actually uses Spotless version 7.2.1 (configured in build.gradle line 10), which requires Java 11 (as noted in the comment on line 267 of build.gradle). Furthermore, there is no guard in build.gradle restricting Spotless to Gradle 8.1+; it is applied unconditionally to allprojects.

Suggested change
- **Spotless 8.x** requires Gradle 8.1+ and Java 17. It is applied only on
Gradle 8.1+ (guard in `build.gradle`) so the lowest acceptance-matrix Gradle
row still validates the stated minimum.
- **Spotless 7.2.1** is used and requires Java 11 (as noted in build.gradle). It is applied unconditionally to all projects, so Java 11+ is required to run the build/lint tasks.

3. **Pick the job to mirror:**
| CI job | Command |
|---|---|
| `unit-test` | `./gradlew publishToMavenLocal test` |

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

medium

Running publishToMavenLocal is redundant for unit tests. The test task runs unit tests using the plugin's classes directly on the classpath (configured via createClasspathManifest in build.gradle), so publishing to Maven Local is unnecessary and slows down local verification. Consider updating the command to ./gradlew test.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Adds Claude Code project assets that capture repository-specific workflow knowledge (local CI reproduction and release prep) to reduce rediscovery overhead for future contributors. No production plugin code changes are included.

Changes:

  • Add CLAUDE.md with local verification guidance, build/version gotchas, and release/review conventions.
  • Add a verify-locally skill with runnable, CI-mirroring local commands.
  • Add a prepare-release skill with a release checklist for version/changelog/README updates.

Reviewed changes

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

File Description
CLAUDE.md New repo knowledge doc covering local verification, build/release gotchas, and review conventions.
.claude/skills/verify-locally/SKILL.md New helper skill mapping CI jobs to local commands (mock server + test/lint runs).
.claude/skills/prepare-release/SKILL.md New helper skill documenting the release preparation checklist and stopping point for human approval.

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

Comment thread CLAUDE.md
Comment on lines +9 to +11
Gradle commands need to write `~/.gradle` and reach the network, so run them
**outside the command sandbox**. Use a JDK that satisfies the wrapper's Gradle
version (the build/dev baseline is JDK 17).
Comment thread CLAUDE.md
Comment on lines +13 to +15
- **Mock server (required for HTTP specs).** `ApiClientSpec` and the upload
acceptance specs talk to `TEST_SERVER_URL`; without it they hit
`https://deploygate.com` and fail with `NetworkFailure` / `Connection reset`.
Comment thread CLAUDE.md
Comment on lines +40 to +42
- **Spotless 8.x** requires Gradle 8.1+ and Java 17. It is applied only on
Gradle 8.1+ (guard in `build.gradle`) so the lowest acceptance-matrix Gradle
row still validates the stated minimum.
Comment thread CLAUDE.md
Comment on lines +62 to +65
- Reply to review comments — **including bots (devin, gemini, Copilot)** — in
the comment thread with an `@mention` of the author:
`gh api repos/{owner}/{repo}/pulls/{pr}/comments/{id}/replies -f body=...`
(not as a top-level PR comment).
Comment on lines +13 to +14
1. **Run outside the command sandbox** — Gradle writes `~/.gradle` and hits the
network. Use a JDK 17 (the build baseline). `export JAVA_HOME=<jdk17>`.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants