Creates Java + Spring Boot projects: Web applications, full-stack apps with Vue.js or Angular or React or vanilla JS, PostgreSQL, REST APIs, and Docker.
Install the "dr-jskill" agent skill from https://github.com/jdubois/dr-jskill/tree/main into .claude/skills/dr-jskill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dr-jskill", then confirm the skill loads.
Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
skills CLI
$ npx skills add jdubois/dr-jskill --skill dr-jskill -a codex
Project install goes to .agents/skills/; add -g for ~/.codex/skills/.
Install the "dr-jskill" agent skill from https://github.com/jdubois/dr-jskill/tree/main into .agents/skills/dr-jskill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dr-jskill", then confirm the skill loads.
Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
skills CLI
$ npx skills add jdubois/dr-jskill --skill dr-jskill -a cursor
Project install goes to .agents/skills/; add -g for ~/.cursor/skills/.
Install the "dr-jskill" agent skill from https://github.com/jdubois/dr-jskill/tree/main into .cursor/skills/dr-jskill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dr-jskill", then confirm the skill loads.
Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
skills CLI
$ npx skills add jdubois/dr-jskill --skill dr-jskill -a gemini-cli
Project install goes to .agents/skills/; add -g for ~/.gemini/skills/.
Install the "dr-jskill" agent skill from https://github.com/jdubois/dr-jskill/tree/main into .gemini/skills/dr-jskill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dr-jskill", then confirm the skill loads.
Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
GitHub CLI
$ gh skill install jdubois/dr-jskill dr-jskill
Installs for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
skills CLI
$ npx skills add jdubois/dr-jskill --skill dr-jskill -a github-copilot
Project install goes to .agents/skills/; add -g for ~/.copilot/skills/.
Install the "dr-jskill" agent skill from https://github.com/jdubois/dr-jskill/tree/main into .github/skills/dr-jskill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dr-jskill", then confirm the skill loads.
GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
skills CLI
$ npx skills add jdubois/dr-jskill --skill dr-jskill -a opencode
OpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
Install the "dr-jskill" agent skill from https://github.com/jdubois/dr-jskill/tree/main into .opencode/skills/dr-jskill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dr-jskill", then confirm the skill loads.
OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Facts
Skill name
dr-jskill
GitHub stars
342
Token cost
~4.6k tokens
SKILL.md length
1,811 words
Files
114 (incl. scripts, references, assets)
Skills in repo
1
Repo updated
First seen
Licence
Apache-2.0
At a glance
Creates Java + Spring Boot projects: Web applications, full-stack apps with Vue.js or Angular or React or vanilla JS, PostgreSQL, REST APIs, and Docker.
Works in 3 steps: Java 25 installed → Node.js 24.x and NPM 11.x (for front-end… → Docker installed and running
Creating Spring Boot projects
SKILL.md covers Overview, Version Management, Prerequisites and Capabilities, plus 14 more sections
Runs Shell scripts from its folder; calls npm, node and npx; needs GITHUB_TOKEN
What it does
Dr Jskill is an agent skill from jdubois/dr-jskill. Creates Java + Spring Boot projects: Web applications, full-stack apps with Vue.js or Angular or React or vanilla JS, PostgreSQL, REST APIs, and Docker. Use when creating Spring Boot projects, setting up Java microservices, or building enterprise applications with the Spring Framework.
Its SKILL.md is about 4.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 117 other files, including scripts, reference files and assets (for example `.github/workflows/ci.yml`, `.github/workflows/pages.yml` and `AGENTS.md`).
It sits in Backend & APIs, covering Backend development, REST APIs and Microservices. It works with Spring Boot, Java, JavaScript and Docker. The repository describes itself as: An Agent Skill for creating Spring Boot applications. The licence is Apache-2.0.
When your agent uses it
Creating Spring Boot projects
Setting up Java microservices
Building enterprise applications with the Spring Framework
Example prompts
“Use the dr-jskill skill to create Java + Spring Boot projects: Web applications, full-stack apps with Vue.js or Angular or React or vanilla JS…”
“/dr-jskill”
Requirements
Node.js
A Bash shell
Docker
Workflow steps
3 steps, taken from the first numbered list in SKILL.md.
1Java 25 installed
2Node.js 24.x and NPM 11.x (for front-end development)
3Docker installed and running
What it can do on your machine
Read from SKILL.md and the folder at commit 5c0ef67. It shows what the files ask for, not the result of running them.
Tool permissions
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Runs code
Ships 1 file in scripts/ (Shell, from the files we listed), which the agent can run.
Shell commands in SKILL.md call:
npm
node
npx
brew
From the folder's file list and the shell code blocks in SKILL.md.
Network
Links to these hosts (documentation or services it may open):
start.spring.io
julien-dubois.com
From URLs in SKILL.md, links to its own repository left out.
Credentials
Names these keys or tokens, usually read from environment variables:
GITHUB_TOKEN
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Context cost
Dr Jskill loads about 4.6k tokens when it runs, and up to ~103k if it reads all its reference files. Until then it costs about 74 tokens; SKILL.md has 1,811 words of instructions outside code blocks.
Always· name and description, kept in context so the agent knows when to use it
~74
When it runs· the whole SKILL.md, loaded when a task matches
~4.6k
With references· SKILL.md plus every file in references/, read only if the agent opens them
~103k
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
Safety
Auto-check: notes
The automated check noted patterns worth knowing about, such as sudo or a known installer.
NoteMentions a .env fileSKILL.md:101
- The `.env` file is the canonical location for local secrets; instruct users to copy `.env.sample` → `.env` and fill
NoteMentions a .env fileSKILL.md:102
- **NEVER read or expose `.env`**: it contains real secrets — do not `cat`, view, or print its contents; only `.env.s
NoteMentions a .env fileSKILL.md:143
# Template for local env vars; .env is gitignored
NoteMentions a .env fileSKILL.md:202
The `.env` file is the single local secret store — never read or print it; only `.env.sample` (placeholder values) may b
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
Download SKILL.mdSave it as .claude/skills/dr-jskill/SKILL.md (or your agent's skills folder). This skill also uses 113 other files; get the full folder from GitHub.
name
dr-jskill
description
Creates Java + Spring Boot projects: Web applications, full-stack apps with Vue.js or Angular or React or vanilla JS, PostgreSQL, REST APIs, and Docker. Use when creating Spring Boot projects, setting up Java microservices, or building enterprise applications with the Spring Framework.
metadata.recommended_model
gpt-5.5
Spring Boot skill that follows Julien Dubois' best practices.
Overview
This agent skill helps you create Spring Boot projects following Julien Dubois' best practices. It provides tools and scripts to quickly bootstrap Spring Boot applications using https://start.spring.io.
Recommended model: Dr JSkill works best with GPT-5.5.
Version Management
Centralized versions live in versions.json. All scripts read from it via scripts/lib/versions.mjs (JavaScript). Update this file to bump Java, Spring Boot fallback, Postgres, Node/npm, Testcontainers, etc.
Prerequisites
Java 25 installed
Node.js 24.x and NPM 11.x (for front-end development)
Docker installed and running
Capabilities
Generate Spring Boot projects with predefined configurations
Support for various Spring Boot versions and dependencies
Follow best practices for project structure and configuration
Quick setup scripts for common use cases
Docker support for containerized deployments
Front-end development with multiple framework options:
Vue.js 3 (default) - Progressive framework with Composition API
React 19 - Popular library for building user interfaces
Angular 22 - Full-featured framework with TypeScript
Vanilla JavaScript - No framework, pure ES6+ with Vite
Usage
Using the Scripts
This skill includes cross-platform JavaScript (Node.js) scripts in the scripts/ directory that can be used to download pre-configured Spring Boot projects from start.spring.io. They work on Linux, macOS, and Windows.
--boot-version <x.y.z> / -BootVersion: override Spring Boot version
--project-type basic|web|fullstack / -ProjectType
--output-dir <absolute-path>: create the generated project folder under this directory
Output directory rule (important for Agent Skills): bundled scripts are run from the skill directory root. When the user asks to create an app, pass --output-dir with the user's current working directory from the agent session so the generated project folder is created in the user's workspace, not inside the dr-jskill skill folder. Only omit --output-dir when running Dr JSkill's own tests, where generating inside the skill checkout is intentional.
Tip: The create-project-latest script auto-resolves preferred Boot 4.x and falls back to the configured springBootFallback if 4.x is not yet available. Override with --boot-version if needed.
Latest Version Project ⭐
Use the create-project-latest.mjs script to create a project with the latest Spring Boot version (automatically fetched):
bash
node scripts/create-project-latest.mjs my-app com.mycompany my-app com.mycompany.myapp 25 web
Project types available:
basic - Minimal Spring Boot project
web - Web application with REST API capabilities
fullstack - Complete application with database and security
Basic Spring Boot Project
Use the create-basic-project.mjs script to create a basic Spring Boot project with essential dependencies:
bash
node scripts/create-basic-project.mjs
Web Application
Use the create-web-project.mjs script to create a Spring Boot web application with web dependencies:
bash
node scripts/create-web-project.mjs
Full-Stack Application
Use the create-fullstack-project.mjs script to create a comprehensive Spring Boot application with database, security, and web dependencies:
bash
node scripts/create-fullstack-project.mjs
Best Practices
When creating Spring Boot projects:
Use the latest Spring Boot version (currently 4.x) - the create-project-latest.mjs script automatically fetches it
Review Spring Boot 4 critical considerations: See Spring Boot 4 Migration Guide for Jackson 3 annotations and TestContainers configuration
Include Spring Boot Actuator for production-ready features
Set up foundational dotfiles: .gitignore, .env.sample, .editorconfig, .gitattributes, .dockerignore, optional .vscode/, .devcontainer/ - see Project Setup & Dotfiles
The .env file is the canonical location for local secrets; instruct users to copy .env.sample → .env and fill in real values
NEVER read or expose .env: it contains real secrets — do not cat, view, or print its contents; only .env.sample (placeholder values) may be read or displayed
Follow daily Git best practices for small branches, reviewed diffs, safe commits, pull requests, and worktrees - see Git Best Practices
Use spring-boot-docker-compose for automatic database startup during development - see Docker Guide
Include Spring Boot DevTools for development productivity
Add Spring Security only when needed - see Security Guide for best practices
Configure Docker for containerized deployments - see Docker Guide
Enable GraalVM native image support for faster startup - see GraalVM Guide
Always ship a startup banner that prints access URLs when the app is ready - see Startup Banner
The user must review changes before they are committed to git. Ask the user before initializing a Git repository, or running git commands.
Java Code Intelligence (JDTLS) ⭐
Generated projects integrate with the Eclipse JDT Language Server (JDTLS) so AI agents can navigate, refactor, and diagnose Java code semantically rather than with text search. The scripts ship a .github/lsp.json that wires JDTLS into GitHub Copilot CLI automatically.
For the AI agent: when working on Java files, prefer the lsp tool over grep/view/sed. It understands imports, generics, inheritance, and Javadoc.
Task
Use
Find where a class/method is defined
lsp goToDefinition
Find callers before changing a signature
lsp findReferences or incomingCalls
Look up types, parameters, Javadoc
lsp hover
List symbols in a file
lsp documentSymbol
Search a class/method across the project
lsp workspaceSymbol
Rename safely across files
lsp rename (never sed)
Check compile errors before ./mvnw verify
ide-get_diagnostics
Preference order for Java work: lsp → grep with .java glob → view.
Install JDTLS once: brew install jdtls (or see JDTLS guide for other platforms). Full setup, gotchas, and editor integrations live in references/JDTLS.md.
Project Structure
The service layer is only included if it adds value (e.g. complex business logic). For simple CRUD applications, the controller can directly call the repository.
Generated projects follow the following recommended structure:
Generated projects include: Spring Web, Spring Data JPA, Spring Boot Actuator, DevTools, PostgreSQL, Validation, Docker Compose support, Test Starter with JUnit 5, and TestContainers.
Configuration
Use .properties files (not YAML), externalize secrets via environment variables, and leverage @ConfigurationProperties for type safety. See the Configuration Guide for profiles, secrets management, and common patterns.
The .env file is the single local secret store — never read or print it; only .env.sample (placeholder values) may be shown.
Spring Security is optional - only add it when you need authentication or authorization. See the Security Guide for JWT, OAuth2, role-based access, and CORS configuration.
Testing
See the Testing Guide for unit tests (Mockito, @WebMvcTest), integration tests (TestContainers + @ServiceConnection), and Given-When-Then patterns with AssertJ.
All options include: Vite/CLI dev server with hot reload, Bootstrap 5.3+, SPA routing, and automatic build into the Spring Boot JAR.
When wiring the frontend-maven-plugin, bind the Node install, npm install, and npm run build executions to the generate-resources phase. This makes ./mvnw spring-boot:run build the frontend before Spring Boot starts, instead of only building it during explicit package-oriented commands.
Non-interactive scaffolding (important for CI and AI agents). Two separate prompts must be silenced:
npm's own "Ok to proceed?" install prompt — silence by placing -ybefore the package name (flags after -- go to the scaffolder, not to npm). Use npm create -y vite@latest … or npx --yes create-vite@latest ….
The scaffolder's own prompts — create-vite 9.x and Angular CLI 22 still pose interactive questions (e.g. "Use rolldown-vite?", analytics opt-in) that -y / --yes do not silence. The reliable fix is to close stdin: pipe echo | into the command so the scaffolder immediately sees EOF and accepts defaults.
Vue: npm create -y vue@latest frontend -- --router --pinia --vitest --eslint --prettier (create-vue does not pose extra prompts)
Angular: echo | npx --yes @angular/cli@22 new frontend --style=css --ssr=false --skip-git --defaults --skip-install, then npm install
Vue: normalize before the first npm install (required).create-vue scaffolds oxlint and eslint-plugin-oxlint pinned to mismatched minors, so npm install fails with an ERESOLVE peer conflict — which fails the frontend-maven-plugin step and therefore the whole Maven build. Immediately after scaffolding, run:
bash
# Run from the Dr JSkill skill directory (that is where `scripts/` lives),
# passing the path to the generated project's frontend/ directory.
node scripts/normalize-vue-frontend.mjs /absolute/path/to/my-app/frontend
It drops the oxlint dual-linter, leaving the single ESLint pipeline, and adds the lint:check script that create-vue never emits but the Maven frontend-maven-plugin build runs. It is idempotent, and --check reports without writing. See Vue.js Guide.
Vitest + callback Vite config. If vite.config.js exports defineConfig(({ mode }) => ...), do not let the generated vitest.config.js call mergeConfig(viteConfig, ...). Resolve the callback first with viteConfig({ mode: 'test', command: 'serve' }); otherwise Vitest fails with Cannot merge config in form of callback. See Vue.js Guide.
Docker Deployment
Spring Boot automatically manages Docker containers during development via spring-boot-docker-compose. For production, pick one of the four provided images: Dockerfile (JVM, jlink + distroless), Dockerfile-aot (JVM + Spring AOT), Dockerfile-native (GraalVM native), or Dockerfile-crac (CRaC fast-restore). See the Docker Guide for full setup, the matching Maven profiles, and deployment patterns.
GraalVM Native Images
Build native images via Docker (no local GraalVM needed) or locally with ./mvnw -Pnative -DskipTests package native:compile. See the GraalVM Guide for configuration, runtime hints, testing, and CI/CD integration.
Azure Deployment
Deploy to Azure Container Apps with an optional VNET-injected Azure Database for PostgreSQL Flexible Server. Uses GitHub Container Registry (GHCR) for image storage (pushed via GITHUB_TOKEN in CI, pulled by Container Apps using a stored PAT) and Container Apps secrets for the DB password — no secrets in source, env dumps, or shell history. Includes a GitHub Actions OIDC workflow, and supports both the JVM and GraalVM native image variants. See the Azure Deployment Guide.
Run validation steps first. If anything fails, fix before proceeding.
Once the project is generated, go through the steps above to ensure that the generated project is fully functional and follows best practices. If any validation step fails, try to identify the issue and fix it before proceeding. This ensures that the generated project is of high quality and ready for development.
Dr Jskill next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
Creates and scaffolds a new Spring Boot project (3.x or 4.x) by downloading from Spring Initializr, generating package structure (DDD or Layered architecture), configuring JPA, SpringDoc OpenAPI…
A skill your agent uses when the user wants to create/generate/scaffold a new Spring Boot project (Maven or Gradle, REST API / Web App / Spring Boot + Angular full stack).
Builds Spring Boot 3.x services with REST controllers, Spring Data JPA, Spring Security 6, WebFlux and Spring Cloud, verified by tests and Actuator health checks.
Creates Java + Spring Boot projects: Web applications, full-stack apps with Vue.js or Angular or React or vanilla JS, PostgreSQL, REST APIs, and Docker. Dr Jskill is an agent skill from jdubois/dr-jskill.js or Angular or React or vanilla JS, PostgreSQL, REST APIs, and Docker.
When should I use Dr Jskill?
Dr Jskill fits situations like: creating Spring Boot projects; setting up Java microservices; building enterprise applications with the Spring Framework.
How do I install Dr Jskill in Claude Code?
Run `npx skills add jdubois/dr-jskill --skill dr-jskill -a claude-code`. Or copy the skill folder (the jdubois/dr-jskill repository) into .claude/skills/dr-jskill in your project. Claude Code loads it when a task matches its description.
How do I install Dr Jskill in Codex?
Run `npx skills add jdubois/dr-jskill --skill dr-jskill -a codex`. Or copy the skill folder (the jdubois/dr-jskill repository) into .agents/skills/dr-jskill in your project. Codex loads it when a task matches its description.
Can I use Dr Jskill in Cursor, Gemini CLI or GitHub Copilot?
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add jdubois/dr-jskill --skill dr-jskill -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/dr-jskill, .gemini/skills/dr-jskill, .github/skills/dr-jskill and .opencode/skills/dr-jskill in your project.
What does Dr Jskill need to run?
Going by SKILL.md and its folder, Dr Jskill needs a shell for the scripts in its folder, the command-line tools its instructions call (npm, node, npx and brew) and credentials named GITHUB_TOKEN. Our summary lists: Node.js; A Bash shell; Docker.
Does Dr Jskill access the network?
SKILL.md names 2 domains. As links in the text: start.spring.io and julien-dubois.com. This is read from the text; nothing was executed.
Is Dr Jskill safe to install?
Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
What licence does Dr Jskill use?
Dr Jskill is published under the Apache-2.0 licence (from the LICENSE file in the skill folder). It allows redistribution, so the full SKILL.md is shown on this page.
How many tokens does Dr Jskill use?
About 4.6k tokens (SKILL.md is roughly 18k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 98k tokens, read only when the agent opens those files.
What are the alternatives to Dr Jskill?
Skills that share tags, products or a category with Dr Jskill: Spring Boot Project Creator (giuseppe-trisciuoglio/developer-kit, 357 stars), Spring Boot (piomin/claude-ai-spring-boot, 1.3k stars), Spring Boot Skill (piomin/sample-spring-modulith, 144 stars) and Progen (sivaprasadreddy/sivalabs-agent-skills, 188 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Who maintains Dr Jskill?
jdubois (a GitHub user) maintains it in jdubois/dr-jskill, which has 342 GitHub stars. The repository was last updated on September 29, 2026.
Source: jdubois/dr-jskill on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.