Not in the top 1,000 by GitHub stars
a-pavithraa/springboot-skills-marketplace
Spring Boot Skill for Claude Code and Codex
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
plugins/springboot-architecture/skills/code-reviewer/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Local scripts
First observation → 26a780c24c12
No earlier version was observed for comparison.
plugins/springboot-architecture/skills/creating-springboot-projects/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 26a780c24c12
No earlier version was observed for comparison.
plugins/springboot-architecture/skills/spring-boot-team-harness/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 26a780c24c12
No earlier version was observed for comparison.
plugins/springboot-architecture/skills/spring-boot-team-harness/assets/project-skills/add-module/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 26a780c24c12
No earlier version was observed for comparison.
plugins/springboot-architecture/skills/spring-boot-team-harness/assets/project-skills/db-migration/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 26a780c24c12
No earlier version was observed for comparison.
plugins/springboot-architecture/skills/springboot-migration/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Local scripts
First observation → 26a780c24c12
No earlier version was observed for comparison.
plugins/springboot-architecture/skills/writing-springboot-tests/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 26a780c24c12
No earlier version was observed for comparison.
Verified commit 26a780c24c12388c6b82f6867a3ef5a98eeb5f67
git clone --filter=blob:none --no-checkout https://github.com/a-pavithraa/springboot-skills-marketplace.git .hotskills/a-pavithraa-springboot-skills-marketplace && git -C .hotskills/a-pavithraa-springboot-skills-marketplace checkout --detach 26a780c24c12388c6b82f6867a3ef5a98eeb5f67
# Copy each selected skill directory from .hotskills/a-pavithraa-springboot-skills-marketplace into .claude/skills/<skill-name>/git clone --filter=blob:none --no-checkout https://github.com/a-pavithraa/springboot-skills-marketplace.git .hotskills/a-pavithraa-springboot-skills-marketplace && git -C .hotskills/a-pavithraa-springboot-skills-marketplace checkout --detach 26a780c24c12388c6b82f6867a3ef5a98eeb5f67
# Copy each selected skill directory from .hotskills/a-pavithraa-springboot-skills-marketplace into .agents/skills/<skill-name>/Heat
1.8- Star growth, last 7 daysNot available
- Star growth, last 24 hoursNot available
- Rank movement, last 7 daysNot available
- Commits, last 30 daysNot available
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekNot available
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
30-day change not yet available: not enough history.
Individual skills in this repository
- code-reviewer
plugins/springboot-architecture/skills/code-reviewer - creating-springboot-projects
plugins/springboot-architecture/skills/creating-springboot-projects - spring-boot-team-harness
plugins/springboot-architecture/skills/spring-boot-team-harness - add-module
plugins/springboot-architecture/skills/spring-boot-team-harness/assets/project-skills/add-module - db-migration
plugins/springboot-architecture/skills/spring-boot-team-harness/assets/project-skills/db-migration - springboot-migration
plugins/springboot-architecture/skills/springboot-migration - writing-springboot-tests
plugins/springboot-architecture/skills/writing-springboot-tests
How it works
code-reviewer
When your agent uses it
Use when asked to review, check or diagnose Spring Boot code: a pull request, diff, module or file before it merges; a slow endpoint or query (N+1, unbounded reads, JPA and Hibernate performance); security, JSpecify null-safety, architecture boundaries or Boot 4 migration risks in existing code; or whether the tests would catch real bugs, proving each finding by running it. Not for Kotlin-only code, non-Spring frameworks, or generic review advice without code context.
What it loads into context
Frontmatter
110 tokensAlways available to the agent
SKILL.md
1,532 tokensWhen the skill is activated
Reference documents
23,963 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Rules
- Before Step 1: say who wrote the code
- Step 1: Load only the references the review needs
- Step 2: Run the passes that match the request
- Boot 4 findings the model often misses
- Report format
Scripts executed separately
../springboot-migration/scripts/scan_migration_issues.py
Files
../../../../.claude-plugin/marketplace.jsonasset3,681 bytesSKILL.mdcore6,582 bytesreferences/architecture-patterns.mddoc7,566 bytesreferences/domain-modeling.mddoc3,663 bytesreferences/java-25-features.mddoc9,104 bytesreferences/jpa-performance.mddoc8,196 bytesreferences/jspecify-null-safety.mddoc4,749 bytesreferences/performance-patterns.mddoc16,316 bytesreferences/security-checklist.mddoc12,139 bytesreferences/spring-boot-4-patterns.mddoc8,702 bytesreferences/test-review.mddoc5,164 bytesreferences/testing/boot4-test-toolkit.mddoc5,002 bytesreferences/testing/traps.mddoc8,720 bytesreferences/value-objects-patterns.mddoc7,011 bytes../creating-springboot-projects/references/java-version-policy.mddoc3,180 bytes../springboot-migration/scripts/scan_migration_issues.pyruns48,202 bytes
Read SKILL.md
# Spring Boot 4 Reviewer (Java 17+)
## Rules
- If the repository has a `REVIEW.md` at its root, read it first. Check the change against each rule it lists, and follow what it says to report and skip.
- Review only code you have. If no files, diff, or module were given, ask for them.
- Cite a file path and line for every finding. Mark findings in code the change didn't touch as pre-existing.
- Read the Java version from `pom.xml` or `build.gradle`. Boot 4 supports Java 17 and later, so Java 17 and 21 are not findings. Java 26 and 27 targets: `../creating-springboot-projects/references/java-version-policy.md`.
- Recommend virtual threads, reactive code, or a new architecture only with evidence from the code: blocking I/O on request threads, a saturated pool, or a boundary that already leaks.
- Use JSpecify as the null-safety baseline for new Boot 4 code. If the codebase is part way through moving to it, report the plan, not every legacy annotation.
## Before Step 1: say who wrote the code
If you wrote or changed the code under review in this session, tell the user that a review from a fresh context is less biased and offer to run it in a general-purpose subagent, giving it the commits and uncommitted changes to review and telling it to follow this skill (`code-reviewer`). Continue only if they decline. Otherwise, review inline.View the complete source on GitHubcreating-springboot-projects
When your agent uses it
Use when starting a new Spring Boot project or service: scaffolding or bootstrapping a backend, REST API, microservice or modular monolith; choosing how to structure it (layered, package-by-module, modular monolith, tomato, DDD-hexagonal); selecting Spring Boot 4 features; generating the base project with progen or Spring Initializr; or applying the bundled templates and references in this skill. Not for migrating existing projects or for isolated JPA/repository work without broader project-creation context.
What it loads into context
Frontmatter
116 tokensAlways available to the agent
SKILL.md
2,597 tokensWhen the skill is activated
Reference documents
9,985 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Critical rules
- Workflow
- Reference loading guide
- Available script
- Output format
- When not to use this skill
Scripts executed separately
scripts/check_new_project.pyscripts/progen_config.py../spring-boot-team-harness/scripts/apply_harness.py
Files
SKILL.mdcore10,989 bytesSKILL.mdcore10,989 bytesSKILL.mdcore10,989 bytesassets/api-versioning-config.javaasset9,394 bytesassets/base-entity.javaasset1,179 bytesassets/controller.javaasset2,980 bytesassets/docker-compose.ymlasset2,089 bytesassets/exception-handler.javaasset3,389 bytesassets/flyway-migration.sqlasset5,593 bytesassets/http-service-client.javaasset6,335 bytesassets/modularity-test.javaasset5,675 bytesassets/package-info-jspecify.javaasset9,607 bytesassets/pom-additions.xmlasset7,881 bytesassets/repository.javaasset3,067 bytesassets/resilience-service.javaasset3,718 bytesassets/resttestclient-test.javaasset10,919 bytesassets/rich-entity.javaasset5,036 bytesassets/service-cqrs.javaasset4,447 bytesassets/spring-converter.javaasset2,949 bytesassets/testcontainers-test.javaasset5,778 bytesassets/value-object.javaasset3,847 bytesreferences/architecture-guide.mddoc9,220 bytesreferences/java-version-policy.mddoc3,180 bytesreferences/progen-integration.mddoc8,997 bytesreferences/spring-boot-4-features.mddoc19,477 bytesscripts/check_new_project.pyruns7,372 bytesscripts/progen_config.pyruns12,416 bytes../spring-boot-team-harness/assets/tests/CodeRulesTests.javaasset37,820 bytes../spring-boot-team-harness/scripts/apply_harness.pyruns43,980 bytes
Read SKILL.md
# Creating Spring Boot Projects
## Purpose
Use this skill to create new Spring Boot 4 projects or define their structure before implementation. The skill adds value when the user needs an architecture decision, Spring Boot 4 feature selection, or the bundled templates in `assets/`.
## Critical rules
- Never jump straight to implementation before assessing project complexity.
- Default to the simplest architecture that fits the domain.
- Treat Spring Boot 4 as the target. Default new projects to Java 25 (LTS). Accept 21 or 17 when the user asks. Read `references/java-version-policy.md` before you pick a newer, non-LTS Java.
- Read the reference files before choosing a higher-complexity architecture or optional framework feature.
- Reuse the templates in `assets/` instead of rewriting the same scaffolding from scratch.
View the complete source on GitHubspring-boot-team-harness
When your agent uses it
Use when a team wants every developer's coding agent (Claude Code or Codex) to follow the same rules on a Maven Spring Boot 4 repository: setting up AGENTS.md, guardrails, shared agent settings, or build and CI checks that agents must pass before code merges. It adds ./mvnw verify gates that fail on null-safety bugs (NullAway with JSpecify), module-boundary breaches (Spring Modulith), unknown or deprecated Boot property keys, Spring mistakes that compile (ArchUnit) and unformatted code, Claude Code hooks that run those gates before a turn ends, and a CI workflow.
What it loads into context
Frontmatter
137 tokensAlways available to the agent
SKILL.md
3,778 tokensWhen the skill is activated
Reference documents
6,412 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Apply it
- What each piece does
- Limits
- MCP servers
Scripts executed separately
assets/observability/check_dashboards.pyassets/project/.claude/hooks/guard.shassets/project/.claude/hooks/verify-on-stop.shassets/project/.github/harness/check-protected.shscripts/apply_harness.pyscripts/baseline.pyscripts/report.py
Files
SKILL.mdcore16,145 bytesSKILL.mdcore16,145 bytesSKILL.mdcore16,145 bytesSKILL.mdcore16,145 bytesSKILL.mdcore16,145 bytesSKILL.mdcore16,145 bytesassets/observability/HandledFailureFilter.javaasset2,158 bytesassets/observability/InstallOpenTelemetryAppender.javaasset877 bytesassets/observability/LogLeakCheck.javaasset3,345 bytesassets/observability/application-observability-defaults.ymlasset1,941 bytesassets/observability/application-observability.ymlasset445 bytesassets/observability/check_dashboards.pyruns3,524 bytesassets/observability/compose.observability.ymlasset704 bytesassets/observability/dashboards/jvm-resources.jsonasset7,838 bytesassets/observability/dashboards/service-health.jsonasset10,956 bytesassets/observability/grafana-provider.yamlasset133 bytesassets/observability/logback-spring.xmlasset736 bytesassets/observability/observability.mddoc6,314 bytesassets/pom/dependencies.xmlasset236 bytesassets/pom/managed-dependencies.xmlasset355 bytesassets/pom/modules-dependencies.xmlasset269 bytesassets/pom/observability-dependencies.xmlasset833 bytesassets/pom/plugins.xmlasset2,090 bytesassets/pom/properties.xmlasset642 bytesassets/pom/rules-dependencies.xmlasset268 bytesassets/project/.claude/hooks/guard.shruns4,503 bytesassets/project/.claude/hooks/verify-on-stop.shruns7,616 bytesassets/project/.claude/settings.jsonasset1,374 bytesassets/project/.github/harness/check-protected.shruns3,083 bytesassets/project/.github/workflows/harness-integrity.ymlasset1,159 bytesassets/project/.github/workflows/verify.ymlasset435 bytesassets/project/.mvn/jvm.configasset644 bytesassets/project/AGENTS.mddoc8,050 bytesassets/project/CLAUDE.mddoc11 bytesassets/project/REVIEW.mddoc2,604 bytesassets/tests/BuildSetupTests.javaasset9,172 bytesassets/tests/CodeRulesTests.javaasset37,820 bytesassets/tests/ConfigurationKeysTests.javaasset13,341 bytesassets/tests/ModuleBoundariesTests.javaasset479 bytesassets/tests/UnusedCodeTests.javaasset7,318 bytesassets/tests/archunit.propertiesasset106 bytesreferences/browser-verification.mddoc10,789 bytesscripts/apply_harness.pyruns43,980 bytesscripts/baseline.pyruns5,074 bytesscripts/report.pyruns6,057 bytes
Read SKILL.md
# Spring Boot team harness
The harness steers the agent in three places. `AGENTS.md` tells it how this repository works before it starts. Hooks check its work before a turn ends, so it fixes its own mistakes. `./mvnw verify` in CI holds the same gates for every developer and every tool. Rules live in the build wherever they can: a gate holds whoever writes the code and costs no context.
## Apply it
1. Run the script from the project root. Preview with `--dry-run` first:
```bash
python3 ${CLAUDE_SKILL_DIR}/scripts/apply_harness.py . --dry-run
python3 ${CLAUDE_SKILL_DIR}/scripts/apply_harness.py .
```
`${CLAUDE_SKILL_DIR}` is this skill's folder. Codex doesn't set it, so there use the folder this `SKILL.md` is in.
Run it in the Maven project's folder. When that folder is inside a larger repository (for example `backend/` next to `frontend/`), the CI workflow, `.claude/settings.json`, the hooks and `.gitattributes` go to the repository root, where GitHub and Claude Code read them, and the root `AGENTS.md` gets a line pointing to the project's own. The Stop hook then reacts only to changes in that folder.
View the complete source on GitHubadd-module
When your agent uses it
Adds a new application module to this Spring Modulith project with the package layout the ModuleBoundariesTests gate expects, and a module-scoped integration test. Use when the user asks for a new module, bounded context, or feature area that doesn't belong in an existing module.
What it loads into context
Frontmatter
62 tokensAlways available to the agent
SKILL.md
348 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
Files
SKILL.mdcore1,525 bytes
Read SKILL.md
# Add a module
Each direct subpackage of `{{BASE_PACKAGE}}` is a module. `./mvnw verify` fails if another module reaches into its nested packages or if modules form a cycle.
1. Pick a name: a noun for the capability, such as `billing`, not `billingservice` or `common`. Check that no existing module owns it; the `Modules` section of `AGENTS.md` lists them.
2. Create the layout:
```
{{BASE_PACKAGE}}.<module> public API: the service other modules call, the records it takes and returns, its events
{{BASE_PACKAGE}}.<module>.internal everything else: implementation, entities, repositories, controllers
```
Keep the top-level package small. Entities and repositories never go in it.
3. Let other modules talk to it in one of two ways only: call a type in its top-level package, or listen for an event it publishes (`@ApplicationModuleListener`). Prefer events when the caller doesn't need an answer.
4. Add `src/test/java/{{BASE_PATH}}/<module>/<Module>ModuleTests.java`, annotated `@ApplicationModuleTest`, which starts only this module. Test the module through its public API.
5. Add one line for the module to the `Modules` section of `AGENTS.md`.View the complete source on GitHubdb-migration
When your agent uses it
Writes a Flyway database migration for this project following the team's rules for naming, editing and renaming, so migrations from different developers don't collide and deployed databases stay valid. Use whenever a change needs a new table, column, index or data fix, or the user mentions a schema change or migration.
What it loads into context
Frontmatter
68 tokensAlways available to the agent
SKILL.md
355 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
Files
SKILL.mdcore1,611 bytes
Read SKILL.md
# Write a database migration
Migrations live in `src/main/resources/db/migration`.
1. Follow the naming the folder already uses. In a folder with no migrations yet, use `V<yyyyMMddHHmm>__<what_it_does>.sql` in UTC: unlike `V7`, `V8`, timestamps don't collide when two developers add a migration on different branches. With numbered names, take the next number after the highest one on the main branch, and renumber yours if someone merges first.
2. Never edit a migration that is on the main branch. It may already have run on a shared database, and Flyway fails validation when the checksum changes. Write a new migration instead.
3. Make destructive changes in two releases. To rename or drop a column, first add the new column and write to both, and drop the old one in a later migration once no running version reads it.
4. Keep each migration to one purpose. Put data fixes in their own file, and make them safe to run on a database where the fix is already done.
5. Don't let Hibernate create the schema: `spring.jpa.hibernate.ddl-auto` stays `validate` or `none`.
6. Run `./mvnw verify`. If the project has Testcontainers integration tests, they apply every migration to a real database; if it has none, say that the migration is untested.View the complete source on GitHubspringboot-migration
When your agent uses it
Use when upgrading an existing Spring Boot application, for example from Boot 3.x to Boot 4 or to the latest Spring Boot and Java: dependency transitions and starter renames, test annotations such as @MockBean to @MockitoBean, Jackson 3 issues, Spring Modulith 2 or Testcontainers 2 upgrades, code that stops compiling after a version bump, or planning a phased migration. Not for greenfield project creation or isolated repository design.
What it loads into context
Frontmatter
101 tokensAlways available to the agent
SKILL.md
1,175 tokensWhen the skill is activated
Reference documents
8,872 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Purpose
- Critical rules
- Workflow
- Reference loading guide
- Available script
- Output format
- When not to use this skill
Scripts executed separately
scripts/scan_migration_issues.py
Files
../creating-springboot-projects/references/java-version-policy.mddoc3,180 bytesSKILL.mdcore5,115 bytesSKILL.mdcore5,115 bytesSKILL.mdcore5,115 bytesreferences/migration-overview.mddoc2,827 bytesreferences/spring-boot-4-migration.mddoc12,764 bytesreferences/spring-modulith-2-migration.mddoc7,349 bytesreferences/testcontainers-2-migration.mddoc8,062 bytesscripts/scan_migration_issues.pyruns48,202 bytes
Read SKILL.md
# Spring Boot Migration
## Purpose
Use this skill for phased upgrade work on existing Spring Boot applications. This skill adds value through the migration scanner, the Boot 4 / Modulith 2 / Testcontainers 2 reference guides, and a strict migration order that avoids mixing too many changes at once.
## Critical rules
- Never migrate blindly. Scan the codebase first.
- Never apply every migration at once. Follow phased upgrades.
- Treat Spring Boot 4, Spring Modulith 2, and Testcontainers 2 as the intended target stack for this skill unless the user asks for a narrower target. Boot 4's Java baseline is 17; recommend Java 25 for new compile targets but do not force an upgrade past what the migration actually requires. For Java 26+ targets, read `../creating-springboot-projects/references/java-version-policy.md`.
- Verify after each phase and stop when failures appear.
## WorkflowView the complete source on GitHubwriting-springboot-tests
When your agent uses it
Use when writing or adding tests for Spring Boot code at a service's edges: HTTP clients that call other services (WireMock: 4xx and 5xx responses, timeouts, retries), Kafka or RabbitMQ listeners (redelivery, poison messages, dead-letter topics), events published to other services, or full-API tests against real databases with Testcontainers; also when a Boot 4 test needs the right imports, slices or container wiring. Supplies verified Boot 4.1 templates and the framework traps that make such tests pass without proving anything. Not for reviewing existing tests (see code-reviewer) or Boot 3 to 4 test migration (see springboot-migration).
What it loads into context
Frontmatter
150 tokensAlways available to the agent
SKILL.md
1,387 tokensWhen the skill is activated
Reference documents
3,261 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Rules
- Before writing
- Templates
- Secured routes
- Report
Files
../code-reviewer/references/testing/boot4-test-toolkit.mddoc5,002 bytes../code-reviewer/references/testing/traps.mddoc8,720 bytesSKILL.mdcore6,078 bytesassets/api-integration-test.javaasset5,270 bytesassets/event-publication-test.javaasset6,379 bytesassets/http-client-wiremock-test.javaasset7,073 bytesassets/message-listener-test.javaasset6,709 bytesassets/personas-db.javaasset1,855 bytesassets/personas-jwt.javaasset2,339 bytesassets/personas-oidc.javaasset2,945 bytesassets/pitest-plugin.xmlasset1,272 bytesassets/repository-slice-test.javaasset2,622 bytesassets/route-access-test.javaasset4,538 bytesassets/service-unit-test.javaasset5,530 bytesassets/testcontainers-configuration.javaasset2,488 bytesassets/webmvc-slice-test.javaasset4,382 bytes
Read SKILL.md
# Writing Spring Boot Tests
Use this for tests where the framework, not the logic, decides whether the test proves anything: calls and messages between services, retries, timeouts, transactions, and Boot 4 test wiring. For plain unit tests you need nothing here beyond the three rules.
## Rules
1. **Cases come from the contract, clause by clause.** Every sentence of the Javadoc, the provider's API documentation, or an agreed message format is a case: units and formats (cents or decimals, field names), status codes with a special meaning (a 409 that means "already done"), headers, time limits, delivery promises (once only, after commit, poison messages dead-lettered). Call the code the way its callers do, with their values, so conversions run.
2. **Run the real thing at the edge.** Real HTTP (WireMock), the real broker and database (Testcontainers), real transactions. A mocked client, template, or transaction manager can't show timeouts, retries, redelivery, or publish-after-commit. Timeout tests use the **production** timeout value. Build the client the way production does (its bean, or its builder settings) and point it at the stub. If the client can't be pointed elsewhere, make its base URL or endpoint configurable: that improves the design. If it has no timeout at all, report that as a finding instead of skipping the test. AWS SDK clients count: see `traps.md`.
3. **Show each test failing once, and treat a failing test as a finding.** Break the guarded line and watch the test go red (PIT for classes with logic). If a test fails on the current code, report it with the contract clause; never weaken the assertion.
4. **Test through what the code does, not its internals.** Assert on results, stored rows, sent messages, and calls to other services. Don't widen a method's visibility, or add a getter, counter or flag that only a test uses: `UnusedCodeTests` fails on a method only tests call. Changing the code for a test is right when it also improves the design, such as taking a `Clock` or a client through the constructor instead of creating it.
## Before writing
Read `../code-reviewer/references/testing/traps.md`: the Boot 4.1 / Framework 7 / Spring Kafka 4 traps found by running these templates (`@Retryable` behind an interface proxy, `@RestClientTest` ignoring timeouts, Apache HttpClient retrying 503, blocked partitions, corrupted dead letters, single-batch topic reads), and the Testcontainers and test-data traps.View the complete source on GitHubSkills included
- code-reviewer
- creating-springboot-projects
- spring-boot-team-harness
- add-module
- db-migration
- springboot-migration
- writing-springboot-tests
Repository facts
- License
- MIT
- Created
- Jan 7, 2026
- Last pushed
- Nov 6, 2026
- Forks
- 12
- Open issues
- 1
- Project activity
- Active
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 7, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 9 notes
plugins/springboot-architecture/skills/creating-springboot-projects/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/springboot-architecture/skills/creating-springboot-projects/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/springboot-architecture/skills/spring-boot-team-harness/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/springboot-architecture/skills/spring-boot-team-harness/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/springboot-architecture/skills/spring-boot-team-harness/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/springboot-architecture/skills/spring-boot-team-harness/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/springboot-architecture/skills/spring-boot-team-harness/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/springboot-architecture/skills/springboot-migration/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/springboot-architecture/skills/springboot-migration/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- 2 dangerous shell commandsin 1 file: spring-boot-team-harness/assets/project/.claude/hooks/verify-on-stop.sh:73
- 171 network referencesin 29 files: spring-boot-team-harness/assets/observability/observability.md:12 code-reviewer/references/performance-patterns.md:108 .claude-plugin/marketplace.json:18 and 26 more
- No hidden or obfuscated text
- No instruction overrides
- No requests to vote in Hot
Show all 197 signals by file
.claude-plugin/marketplace.json
- Network accessline 18
"name": "Pavithra" }, "repository": "https://github.com/a-pavithraa/springboot-skills-marketplace", - Network accessline 19
}, "repository": "https://github.com/a-pavithraa/springboot-skills-marketplace", "category": "spring-boot", - Network accessline 20
"repository": "https://github.com/a-pavithraa/springboot-skills-marketplace", - Network accessline 35
"author": { "name": "Matt Pocock", "url": "https://www.aihero.dev" - Network accessline 36
"name": "Matt Pocock", "url": "https://www.aihero.dev" }, - Network accessline 37
"url": "https://www.aihero.dev" - Network accessline 38
}, "homepage": "https://github.com/mattpocock/skills", "license": "MIT", - Network accessline 39
"homepage": "https://github.com/mattpocock/skills", - Network accessline 78
"author": { "name": "Pavithra Aravamudhan", "url": "https://github.com/a-pavithraa" - Network accessline 79
"name": "Pavithra Aravamudhan", "url": "https://github.com/a-pavithraa" }, - Network accessline 80
"url": "https://github.com/a-pavithraa" - Network accessline 81
}, "homepage": "https://github.com/a-pavithraa/build-compass", "license": "MIT", - Network accessline 82
"homepage": "https://github.com/a-pavithraa/build-compass",
plugins/springboot-architecture/skills/code-reviewer/references/architecture-patterns.md
- Network accessline 101
`@ApplicationModuleListener` is always `@Async` + `@Transactional(propagation = REQUIRES_NEW)` + `@TransactionalEventListener`. The Event Publication Registry adds persistence and replay. It needs one of `spring-modulith-starter-jdbc`, `-jp - Network accessline 134
- [Structuring Your Code - Spring Boot](https://docs.spring.io/spring-boot/reference/using/structuring-your-code.html) - Network accessline 135
- [Spring Modulith Reference](https://docs.spring.io/spring-modulith/reference/) - Network accessline 136
- [Hexagonal Architecture - Alistair Cockburn](https://alistair.cockburn.us/hexagonal-architecture/) - Network accessline 137
- [CQRS - Martin Fowler](https://martinfowler.com/bliki/CQRS.html), [Anemic Domain Model - Martin Fowler](https://martinfowler.com/bliki/AnemicDomainModel.html)
plugins/springboot-architecture/skills/code-reviewer/references/domain-modeling.md
- Network accessline 78
- [Anemic Domain Model - Martin Fowler](https://martinfowler.com/bliki/AnemicDomainModel.html) - Network accessline 79
- [Value Object - Martin Fowler](https://martinfowler.com/bliki/ValueObject.html) - Network accessline 80
- [Domain-Driven Design - Eric Evans](https://www.domainlanguage.com/ddd/)
plugins/springboot-architecture/skills/code-reviewer/references/java-25-features.md
- Network accessline 17
**Status:** Final since Java 21 ([JEP 444](https://openjdk.org/jeps/444)). - Network accessline 29
- [Oracle Virtual Threads Guide](https://docs.oracle.com/en/java/javase/21/core/virtual-threads.html): "If your application never has 10,000 virtual threads or more, it is unlikely to benefit from virtual threads." - Network accessline 36
[JEP 491](https://openjdk.org/jeps/491), delivered in JDK 24: - Network accessline 152
- [OpenJDK JDK 25](https://openjdk.org/projects/jdk/25/), [JDK 25 release notes](https://www.oracle.com/java/technologies/javase/25-relnote-issues.html) - Network accessline 153
- [Virtual Threads Guide](https://docs.oracle.com/en/java/javase/25/core/virtual-threads.html), [Spring Boot task execution](https://docs.spring.io/spring-boot/reference/features/task-execution-and-scheduling.html) - Network accessline 154
- JEPs: [444](https://openjdk.org/jeps/444), [491](https://openjdk.org/jeps/491), [506](https://openjdk.org/jeps/506), [510](https://openjdk.org/jeps/510), [511](https://openjdk.org/jeps/511), [513](https://openjdk.org/jeps/513), [531](http
plugins/springboot-architecture/skills/code-reviewer/references/jspecify-null-safety.md
- Network accessline 117
- [JSpecify Reference Documentation](https://jspecify.dev/) - Network accessline 118
- [JSpecify User Guide](https://jspecify.dev/docs/user-guide) - Network accessline 119
- [Spring Framework Null-Safety](https://docs.spring.io/spring-framework/reference/core/null-safety.html) - Network accessline 120
- [NullAway - Uber's Null-Safety Tool](https://github.com/uber/NullAway) - Network accessline 121
- [JSpecify GitHub Repository](https://github.com/jspecify/jspecify) - Network accessline 122
- [Spring Boot 4 Migration Guide](https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-4.0-Migration-Guide)
plugins/springboot-architecture/skills/code-reviewer/references/performance-patterns.md
- Network accessline 108
> **How the two clocks combine:** Caffeine evaluates both independently. An entry is evicted as soon as **either** deadline passes (the earlier of `write + 10m` and `lastAccess + 5m`), not the union. Setting both does not "extend" the TTL — - Network accessline 336
public RestClient restClient(RestClient.Builder builder) { return builder .baseUrl("https://api.example.com") - Network accessline 337
return builder .baseUrl("https://api.example.com") .build(); - Network accessline 338
.baseUrl("https://api.example.com") - Network accessline 391
- [Spring Data JPA Reference - Performance](https://docs.spring.io/spring-data/jpa/reference/jpa/query-methods.html) - Network accessline 392
- [Hibernate Performance Tuning](https://docs.jboss.org/hibernate/orm/current/userguide/html_single/Hibernate_User_Guide.html#performance) - Network accessline 393
- [HikariCP Configuration](https://github.com/brettwooldridge/HikariCP#configuration-knobs-baby) - Network accessline 394
- [Virtual Threads - Oracle Java](https://docs.oracle.com/en/java/javase/25/core/virtual-threads.html) - Network accessline 395
- [Spring Cache Abstraction](https://docs.spring.io/spring-framework/reference/integration/cache.html) - Network accessline 396
- [Caffeine Cache](https://github.com/ben-manes/caffeine/wiki) - Network accessline 397
- [Redis Spring Data](https://spring.io/projects/spring-data-redis) - Network accessline 398
- [Spring Async Documentation](https://docs.spring.io/spring-framework/reference/integration/scheduling.html) - Network accessline 399
- [N+1 Query Problem - Vladmihalcea](https://vladmihalcea.com/n-plus-1-query-problem/) - Network accessline 400
- [JPA EntityGraph](https://docs.oracle.com/javaee/7/tutorial/persistence-entitygraphs002.htm)
plugins/springboot-architecture/skills/code-reviewer/references/security-checklist.md
- Network accessline 3
Organized by [OWASP Top 10:2025](https://owasp.org/Top10/). Targets Spring Boot 4 / Spring Security 7. Report exploitability and the affected entry point, not only the rule. - Access to secretsline 156
[Credential-related source omitted] - Access to secretsline 170
[Credential-related source omitted] - Network accessline 197
- [OWASP Top 10:2025](https://owasp.org/Top10/), [OWASP Cheat Sheet Series](https://cheatsheetseries.owasp.org/) - Network accessline 198
- [Spring Security Reference](https://docs.spring.io/spring-security/reference/) - Network accessline 199
- [NIST SP 800-63B](https://pages.nist.gov/800-63-4/sp800-63b.html) - Network accessline 200
- [JWT Best Current Practices (RFC 8725)](https://datatracker.ietf.org/doc/html/rfc8725)
plugins/springboot-architecture/skills/code-reviewer/references/spring-boot-4-patterns.md
- Network accessline 35
Source: [Spring Boot 4.0 Migration Guide](https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-4.0-Migration-Guide), [Modularizing Spring Boot](https://spring.io/blog/2025/10/28/modularizing-spring-boot/) - Network accessline 54
Source: [Introducing Jackson 3 support in Spring](https://spring.io/blog/2025/10/07/introducing-jackson-3-support-in-spring/), [Migrating to Jackson 3](https://github.com/FasterXML/jackson/blob/main/jackson3/MIGRATING_TO_JACKSON_3.md) - Network accessline 67
Source: [RestTestClient](https://docs.spring.io/spring-framework/reference/testing/resttestclient.html) - Network accessline 84
Source: [Core Spring Resilience Features](https://spring.io/blog/2025/09/09/core-spring-resilience-features/) - Network accessline 96
Source: [HTTP Service Client Enhancements](https://spring.io/blog/2025/09/23/http-service-client-enhancements/), [API Versioning in Spring](https://spring.io/blog/2025/09/16/api-versioning-in-spring/) - Access to secretsline 106
[Credential-related source omitted] - Network accessline 136
- [Spring Boot 4.0 Release Notes](https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-4.0-Release-Notes), [Migration Guide](https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-4.0-Migration-Guide) - Network accessline 137
- [Spring Boot Reference](https://docs.spring.io/spring-boot/reference/), [Upgrading Spring Boot](https://docs.spring.io/spring-boot/upgrading.html) - Network accessline 138
- [Resilience4j Spring Boot](https://resilience4j.readme.io/docs/getting-started-3)
plugins/springboot-architecture/skills/code-reviewer/references/value-objects-patterns.md
- Network accessline 84
- QueryDSL APT does not accept `@Embeddable` records ([querydsl#3695](https://github.com/querydsl/querydsl/issues/3695)). With QueryDSL, use a final class with `private final` fields instead of a record.
plugins/springboot-architecture/skills/creating-springboot-projects/assets/api-versioning-config.java
- Network accessline 19
* 4. Path Segment - usePathSegment(index) * * Reference: https://docs.spring.io/spring-framework/reference/web/webmvc-versioning.html - Network accessline 20
* * Reference: https://docs.spring.io/spring-framework/reference/web/webmvc-versioning.html */ - Network accessline 21
* Reference: https://docs.spring.io/spring-framework/reference/web/webmvc-versioning.html
plugins/springboot-architecture/skills/creating-springboot-projects/assets/docker-compose.yml
- Access to secretsline 18
[Credential-related source omitted]
plugins/springboot-architecture/skills/creating-springboot-projects/assets/flyway-migration.sql
- Network accessline 85
-- Modulith ships a dialect-specific schema for each store — copy the one -- that matches your database from: -- https://docs.spring.io/spring-modulith/reference/appendix.html - Network accessline 86
-- that matches your database from: -- https://docs.spring.io/spring-modulith/reference/appendix.html -- The schema below is the PostgreSQL variant for Modulith 2.x. Other - Network accessline 87
-- https://docs.spring.io/spring-modulith/reference/appendix.html
plugins/springboot-architecture/skills/creating-springboot-projects/assets/http-service-client.java
- Network accessline 106
// serviceclient: // {{name}}: # group name from @ImportHttpServices(group = "{{name}}") // base-url: http://localhost:8080 - Network accessline 107
// {{name}}: # group name from @ImportHttpServices(group = "{{name}}") // base-url: http://localhost:8080 // connect-timeout: 2s # overrides global for this group - Network accessline 108
// base-url: http://localhost:8080
plugins/springboot-architecture/skills/creating-springboot-projects/assets/pom-additions.xml
- Network accessline 9
<!-- Spring Boot 4.1.x ships Hibernate 7.4.x. hypersistence-utils has no -hibernate-74 module yet, so use the newest published one, -hibernate-73 (verify it runs against 7.4.x). Confirm latest version: https://central.sonatype.com - Network accessline 10
module yet, so use the newest published one, -hibernate-73 (verify it runs against 7.4.x). Confirm latest version: https://central.sonatype.com/artifact/io.hypersistence/hypersistence-utils-hibernate-73/versions --> <dependency> - Network accessline 11
Confirm latest version: https://central.sonatype.com/artifact/io.hypersistence/hypersistence-utils-hibernate-73/versions --> - Network accessline 137
<!-- Access at: http://localhost:8080/swagger-ui.html --> - Network accessline 174
Native resilience (@Retryable, @ConcurrencyLimit, RetryTemplate) is official in Spring Framework 7 — see https://spring.io/blog/2025/09/09/core-spring-resilience-features/ - Network accessline 175
Spring Framework 7 — see https://spring.io/blog/2025/09/09/core-spring-resilience-features/ - Network accessline 176
and the EnableResilientMethods Javadoc. A community sample sits at https://github.com/sivaprasadreddy/spring-boot-4-features/tree/main/resilience-features for additional patterns, but Spring's blog and Javadoc are the primary references. - Network accessline 177
https://github.com/sivaprasadreddy/spring-boot-4-features/tree/main/resilience-features
plugins/springboot-architecture/skills/creating-springboot-projects/assets/resilience-service.java
- Network accessline 19
* * Primary references (official): * https://spring.io/blog/2025/09/09/core-spring-resilience-features/ - Network accessline 20
* Primary references (official): * https://spring.io/blog/2025/09/09/core-spring-resilience-features/ * https://docs.spring.io/spring-framework/reference/core/resilience.html - Network accessline 21
* https://spring.io/blog/2025/09/09/core-spring-resilience-features/ - Network accessline 22
* https://docs.spring.io/spring-framework/reference/core/resilience.html - Network accessline 23
* Community sample for additional patterns: * https://github.com/sivaprasadreddy/spring-boot-4-features/tree/main/resilience-features */ - Network accessline 24
* https://github.com/sivaprasadreddy/spring-boot-4-features/tree/main/resilience-features - Network accessline 104
// application.properties (from the reference repo): // spring.http.serviceclient.default.base-url=http://localhost:8080 - Network accessline 105
// spring.http.serviceclient.default.base-url=http://localhost:8080
plugins/springboot-architecture/skills/creating-springboot-projects/references/java-version-policy.md
- Network accessline 50
- [JDK 26](https://openjdk.org/projects/jdk/26/), [JDK 27](https://openjdk.org/projects/jdk/27/) - Network accessline 50
- [JDK 26](https://openjdk.org/projects/jdk/26/), [JDK 27](https://openjdk.org/projects/jdk/27/) - Network accessline 50
- [JDK 26](https://openjdk.org/projects/jdk/26/), [JDK 27](https://openjdk.org/projects/jdk/27/) - Network accessline 51
- [Spring Boot system requirements](https://docs.spring.io/spring-boot/system-requirements.html) - Network accessline 51
- [Spring Boot system requirements](https://docs.spring.io/spring-boot/system-requirements.html) - Network accessline 51
- [Spring Boot system requirements](https://docs.spring.io/spring-boot/system-requirements.html) - Network accessline 52
- [JEP 500](https://openjdk.org/jeps/500), [JEP 523](https://openjdk.org/jeps/523), [JEP 531](https://openjdk.org/jeps/531), [JEP 533](https://openjdk.org/jeps/533), [JEP 534](https://openjdk.org/jeps/534) - Network accessline 52
- [JEP 500](https://openjdk.org/jeps/500), [JEP 523](https://openjdk.org/jeps/523), [JEP 531](https://openjdk.org/jeps/531), [JEP 533](https://openjdk.org/jeps/533), [JEP 534](https://openjdk.org/jeps/534) - Network accessline 52
- [JEP 500](https://openjdk.org/jeps/500), [JEP 523](https://openjdk.org/jeps/523), [JEP 531](https://openjdk.org/jeps/531), [JEP 533](https://openjdk.org/jeps/533), [JEP 534](https://openjdk.org/jeps/534)
plugins/springboot-architecture/skills/creating-springboot-projects/references/progen-integration.md
- Network accessline 3
[Progen](https://github.com/sivaprasadreddy/progen) is an offline CLI that generates a Spring Boot 4 project: build file, Docker Compose, Testcontainers, security, migrations, CI, and ArchUnit/Modulith tests. Use it for the base project. Th
plugins/springboot-architecture/skills/creating-springboot-projects/references/spring-boot-4-features.md
- Network accessline 89
- Spring Retry is now maintenance-only and superseded by Spring Framework 7 resilience features. - Prefer `org.springframework.resilience.annotation.*` for new Boot 4 projects and remove `spring-retry` if not needed. - Reference: https://gi - Network accessline 91
- Reference: https://github.com/spring-projects/spring-retry - Network accessline 239
Source: [danvega/quick-bytes](https://github.com/danvega/quick-bytes) (Spring Boot 4.0.0-RC2) - Network accessline 248
<artifactId>spring-cloud-starter-circuitbreaker-resilience4j</artifactId> </dependency> <!-- Use the Boot 4-specific starter. The dedicated resilience4j-spring-boot4 module is currently 2.4.0 on Maven Central — confirm the latest at https:/ - Network accessline 249
</dependency> <!-- Use the Boot 4-specific starter. The dedicated resilience4j-spring-boot4 module is currently 2.4.0 on Maven Central — confirm the latest at https://central.sonatype.com/artifact/io.github.resilience4j/resilience4j-spring- - Network accessline 250
<!-- Use the Boot 4-specific starter. The dedicated resilience4j-spring-boot4 module is currently 2.4.0 on Maven Central — confirm the latest at https://central.sonatype.com/artifact/io.github.resilience4j/resilience4j-spring-boot4 before p - Network accessline 283
**⚠<U+FE0F> Note:** Verify the current Resilience4j release before upgrading — see [the Resilience4j releases page](https://github.com/resilience4j/resilience4j/releases). The dedicated `resilience4j-spring-boot4` module is the right starter for B - Network accessline 299
@Bean ProductClient productClient(RestClient.Builder builder) { RestClient restClient = builder.baseUrl("http://api.example.com").build(); - Network accessline 300
ProductClient productClient(RestClient.Builder builder) { RestClient restClient = builder.baseUrl("http://api.example.com").build(); var factory = HttpServiceProxyFactory - Network accessline 301
RestClient restClient = builder.baseUrl("http://api.example.com").build(); - Network accessline 343
serviceclient: product: # Group name (matches @ImportHttpServices group) base-url: http://localhost:8080 - Network accessline 344
product: # Group name (matches @ImportHttpServices group) base-url: http://localhost:8080 read-timeout: 10s - Network accessline 345
base-url: http://localhost:8080
plugins/springboot-architecture/skills/creating-springboot-projects/scripts/check_new_project.py
- Executable scriptline 1
#!/usr/bin/env python3
plugins/springboot-architecture/skills/creating-springboot-projects/scripts/progen_config.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 5
Builds and validates a .progen.json for progen (https://github.com/sivaprasadreddy/progen), and optionally runs progen. - Network accessline 6
(https://github.com/sivaprasadreddy/progen), and optionally runs progen. - Access to secretsline 159
[Credential-related source omitted] - Network accessline 194
fail("progen is not on PATH. Install it: " "go install github.com/sivaprasadreddy/progen@latest, " "or download a binary from https://github.com/sivaprasadreddy/progen/releases", - Network accessline 195
"go install github.com/sivaprasadreddy/progen@latest, " "or download a binary from https://github.com/sivaprasadreddy/progen/releases", code=3) - Network accessline 196
"or download a binary from https://github.com/sivaprasadreddy/progen/releases",
plugins/springboot-architecture/skills/spring-boot-team-harness/assets/observability/application-observability-defaults.yml
- Network accessline 7
export: enabled: ${OTLP_EXPORT_ENABLED:false} url: ${OTEL_EXPORTER_OTLP_ENDPOINT:http://localhost:4318}/v1/metrics - Network accessline 8
enabled: ${OTLP_EXPORT_ENABLED:false} url: ${OTEL_EXPORTER_OTLP_ENDPOINT:http://localhost:4318}/v1/metrics logging: - Network accessline 9
url: ${OTEL_EXPORTER_OTLP_ENDPOINT:http://localhost:4318}/v1/metrics - Network accessline 24
export: otlp: endpoint: ${OTEL_EXPORTER_OTLP_ENDPOINT:http://localhost:4318}/v1/traces - Network accessline 25
otlp: endpoint: ${OTEL_EXPORTER_OTLP_ENDPOINT:http://localhost:4318}/v1/traces logging: - Network accessline 26
endpoint: ${OTEL_EXPORTER_OTLP_ENDPOINT:http://localhost:4318}/v1/traces - Network accessline 28
export: otlp: endpoint: ${OTEL_EXPORTER_OTLP_ENDPOINT:http://localhost:4318}/v1/logs - Network accessline 29
otlp: endpoint: ${OTEL_EXPORTER_OTLP_ENDPOINT:http://localhost:4318}/v1/logs resource-attributes: - Network accessline 30
endpoint: ${OTEL_EXPORTER_OTLP_ENDPOINT:http://localhost:4318}/v1/logs
plugins/springboot-architecture/skills/spring-boot-team-harness/assets/observability/check_dashboards.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 25
def get(url: str, **params) -> dict: with urllib.request.urlopen(f"{url}?{urllib.parse.urlencode(params)}", timeout=15) as response: - Network accessline 26
with urllib.request.urlopen(f"{url}?{urllib.parse.urlencode(params)}", timeout=15) as response: - Network accessline 48
def main() -> int: parser = argparse.ArgumentParser(description=__doc__.split("\n")[0]) parser.add_argument("--prometheus", default="http://localhost:9090") - Network accessline 49
parser = argparse.ArgumentParser(description=__doc__.split("\n")[0]) parser.add_argument("--prometheus", default="http://localhost:9090") parser.add_argument("--tempo", default="http://localhost:3200") - Network accessline 50
parser.add_argument("--prometheus", default="http://localhost:9090") - Network accessline 51
parser.add_argument("--tempo", default="http://localhost:3200") - Network accessline 52
parser.add_argument("--loki", default="http://localhost:3100")
plugins/springboot-architecture/skills/spring-boot-team-harness/assets/observability/observability.md
- Network accessline 12
| --- | --- | --- | | `OTLP_EXPORT_ENABLED` | `false` | Sends traces, metrics and logs | | `OTEL_EXPORTER_OTLP_ENDPOINT` | `http://localhost:4318` | Base URL of the collector, with no path | - Network accessline 13
| `OTLP_EXPORT_ENABLED` | `false` | Sends traces, metrics and logs | | `OTEL_EXPORTER_OTLP_ENDPOINT` | `http://localhost:4318` | Base URL of the collector, with no path | | `TRACING_SAMPLE_RATE` | `0.1` | Share of requests traced | - Network accessline 14
| `OTEL_EXPORTER_OTLP_ENDPOINT` | `http://localhost:4318` | Base URL of the collector, with no path | | `TRACING_SAMPLE_RATE` | `0.1` | Share of requests traced | | `DEPLOYMENT_ENVIRONMENT` | `local` | Label on all telemetry, and the dashbo - Network accessline 27
Add the profile to any you already use. Then open <http://localhost:3000>, Dashboards, Project: Service health for requests and logs, JVM and resources for the process. The stack listens on this machine only. Metrics arrive every 10 seconds - Network accessline 34
# Prometheus: p95 latency for one route curl -G localhost:9090/api/v1/query --data-urlencode \ - Network accessline 35
curl -G localhost:9090/api/v1/query --data-urlencode \ - Network accessline 38
# Tempo: failed requests, then one trace with its spans and SQL curl -G localhost:3200/api/search --data-urlencode 'q={ span.outcome = "SERVER_ERROR" }' - Network accessline 39
curl -G localhost:3200/api/search --data-urlencode 'q={ span.outcome = "SERVER_ERROR" }' - Network accessline 40
curl localhost:3200/api/traces/<traceId> - Network accessline 42
# Loki: ERROR lines in the last hour curl -G localhost:3100/loki/api/v1/query_range --data-urlencode 'query={service_name="{{PROJECT_NAME}}"} | detected_level="error"' --data-urlencode since=1h - Network accessline 43
curl -G localhost:3100/loki/api/v1/query_range --data-urlencode 'query={service_name="{{PROJECT_NAME}}"} | detected_level="error"' --data-urlencode since=1h - Network accessline 45
# Loki: every log line from one request curl -G localhost:3100/loki/api/v1/query_range --data-urlencode 'query={service_name="{{PROJECT_NAME}}"} | trace_id="<traceId>"' --data-urlencode since=1h - Network accessline 46
curl -G localhost:3100/loki/api/v1/query_range --data-urlencode 'query={service_name="{{PROJECT_NAME}}"} | trace_id="<traceId>"' --data-urlencode since=1h - Network accessline 54
trace=$(openssl rand -hex 16) curl -H "traceparent: 00-$trace-0123456789abcdef-01" localhost:8080/api/orders - Network accessline 55
curl -H "traceparent: 00-$trace-0123456789abcdef-01" localhost:8080/api/orders - Access to secretsline 85
[Credential-related source omitted]
plugins/springboot-architecture/skills/spring-boot-team-harness/assets/project/.claude/hooks/guard.sh
- Executable scriptline 1
#!/usr/bin/env bash
plugins/springboot-architecture/skills/spring-boot-team-harness/assets/project/.claude/hooks/verify-on-stop.sh
plugins/springboot-architecture/skills/spring-boot-team-harness/assets/project/.claude/settings.json
plugins/springboot-architecture/skills/spring-boot-team-harness/assets/project/.github/harness/check-protected.sh
- Executable scriptline 1
#!/usr/bin/env bash
plugins/springboot-architecture/skills/spring-boot-team-harness/assets/tests/BuildSetupTests.java
- Network accessline 117
var factory = DocumentBuilderFactory.newInstance(); factory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true); factory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true); - Network accessline 118
factory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true); factory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true); Element project = factory.newDocumentBuilder().parse(Path.of("pom.xml").toFi - Network accessline 119
factory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
plugins/springboot-architecture/skills/spring-boot-team-harness/scripts/apply_harness.py
plugins/springboot-architecture/skills/spring-boot-team-harness/scripts/baseline.py
- Executable scriptline 1
#!/usr/bin/env python3
plugins/springboot-architecture/skills/spring-boot-team-harness/scripts/report.py
- Executable scriptline 1
#!/usr/bin/env python3
plugins/springboot-architecture/skills/springboot-migration/references/migration-overview.md
- Network accessline 34
- OpenRewrite has `org.openrewrite.java.spring.boot4.UpgradeSpringBoot_4_0` in `org.openrewrite.recipe:rewrite-spring`. It is under the Moderne Source Available License and needs extra Maven repository setup. Ask the user before using it, a - Network accessline 35
- OpenRewrite also has a [Testcontainers 2 recipe](https://docs.openrewrite.org/recipes/java/testing/testcontainers/testcontainers2migration). - Network accessline 40
- [Spring Boot 4.0 Migration Guide](https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-4.0-Migration-Guide) - Network accessline 41
- [Spring Modulith Reference](https://docs.spring.io/spring-modulith/reference/) - Network accessline 42
- [Testcontainers 2.0.0 release notes](https://github.com/testcontainers/testcontainers-java/releases/tag/2.0.0) - Network accessline 43
- [spring-boot-4-features sample repo](https://github.com/sivaprasadreddy/spring-boot-4-features)
plugins/springboot-architecture/skills/springboot-migration/references/spring-boot-4-migration.md
- Network accessline 3
Official: [4.0 Migration Guide](https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-4.0-Migration-Guide), [4.1 Release Notes](https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-4.1-Release-Notes). Checked against Bo - Network accessline 219
- [Spring Boot 4.0 Migration Guide](https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-4.0-Migration-Guide), [4.1 Release Notes](https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-4.1-Release-Notes) - Network accessline 220
- [Spring Framework 7.0 What's New](https://docs.spring.io/spring-framework/reference/7.0/whatsnew.html) - Network accessline 221
- [Jackson 3 migration](https://github.com/FasterXML/jackson/blob/main/jackson3/MIGRATING_TO_JACKSON_3.md) - Network accessline 222
- [Core Spring Resilience Features](https://spring.io/blog/2025/09/09/core-spring-resilience-features/)
plugins/springboot-architecture/skills/springboot-migration/references/spring-modulith-2-migration.md
- Network accessline 3
Official: [Spring Modulith Reference](https://docs.spring.io/spring-modulith/reference/), [Appendix (properties, schemas)](https://docs.spring.io/spring-modulith/reference/appendix.html). Checked against Spring Modulith 2.1.0 jars on 2026-1
plugins/springboot-architecture/skills/springboot-migration/references/testcontainers-2-migration.md
- Network accessline 3
Official: [2.0.0 release notes](https://github.com/testcontainers/testcontainers-java/releases/tag/2.0.0), [OpenRewrite recipe](https://docs.openrewrite.org/recipes/java/testing/testcontainers/testcontainers2migration). Checked against Test - Network accessline 78
[Credential-related source omitted] - Access to secretsline 78
[Credential-related source omitted] - Access to secretsline 105
[Credential-related source omitted]
plugins/springboot-architecture/skills/springboot-migration/scripts/scan_migration_issues.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Access to secretsline 752
[Credential-related source omitted] - Access to secretsline 752
[Credential-related source omitted] - Access to secretsline 753
[Credential-related source omitted] - Access to secretsline 753
[Credential-related source omitted]
plugins/springboot-architecture/skills/writing-springboot-tests/assets/http-client-wiremock-test.java
- Network accessline 9
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.ImportAutoConfiguration; import org.springframework.boot.http.client.autoconfigure.HttpClientAutoConfiguration; - Network accessline 10
import org.springframework.boot.autoconfigure.ImportAutoConfiguration; import org.springframework.boot.http.client.autoconfigure.HttpClientAutoConfiguration; import org.springframework.boot.http.client.autoconfigure.imperative.ImperativeHtt - Network accessline 11
import org.springframework.boot.http.client.autoconfigure.HttpClientAutoConfiguration; - Network accessline 12
import org.springframework.boot.http.client.autoconfigure.imperative.ImperativeHttpClientAutoConfiguration;
plugins/springboot-architecture/skills/writing-springboot-tests/assets/webmvc-slice-test.java
- Network accessline 53
assertThat(result) .hasStatus(HttpStatus.CREATED) .hasHeader("Location", "http://localhost/api/orders/O-1"); - Network accessline 54
.hasStatus(HttpStatus.CREATED) .hasHeader("Location", "http://localhost/api/orders/O-1"); assertThat(result).bodyJson().isLenientlyEqualTo(""" - Network accessline 55
.hasHeader("Location", "http://localhost/api/orders/O-1");
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Declared and executed: 1 fact
- Contacts github.com, which SKILL.md, the README and the plugin manifest do not mentioncreating-springboot-projects/scripts/progen_config.py:196High confidence
Signal confidence: 137 facts
- Network access in prose of documentationcode-reviewer/references/architecture-patterns.md:101Low confidence
- Network access in prose of documentationcode-reviewer/references/architecture-patterns.md:134Low confidence
- Network access in prose of documentationcode-reviewer/references/architecture-patterns.md:135Low confidence
- Network access in prose of documentationcode-reviewer/references/architecture-patterns.md:136Low confidence
- Network access in prose of documentationcode-reviewer/references/architecture-patterns.md:137Low confidence
- Network access in prose of documentationcode-reviewer/references/domain-modeling.md:78Low confidence
- Network access in prose of documentationcode-reviewer/references/domain-modeling.md:79Low confidence
- Network access in prose of documentationcode-reviewer/references/domain-modeling.md:80Low confidence
- Network access in prose of documentationcode-reviewer/references/java-25-features.md:17Low confidence
- Network access in prose of documentationcode-reviewer/references/java-25-features.md:29Low confidence
- Network access in prose of documentationcode-reviewer/references/java-25-features.md:36Low confidence
- Network access in prose of documentationcode-reviewer/references/java-25-features.md:152Low confidence
- Network access in prose of documentationcode-reviewer/references/java-25-features.md:153Low confidence
- Network access in prose of documentationcode-reviewer/references/java-25-features.md:154Low confidence
- Network access in prose of documentationcode-reviewer/references/jspecify-null-safety.md:117Low confidence
- Network access in prose of documentationcode-reviewer/references/jspecify-null-safety.md:118Low confidence
- Network access in prose of documentationcode-reviewer/references/jspecify-null-safety.md:119Low confidence
- Network access in prose of documentationcode-reviewer/references/jspecify-null-safety.md:120Low confidence
- Network access in prose of documentationcode-reviewer/references/jspecify-null-safety.md:121Low confidence
- Network access in prose of documentationcode-reviewer/references/jspecify-null-safety.md:122Low confidence
- Network access in prose of documentationcode-reviewer/references/performance-patterns.md:108Low confidence
- Network access in code of documentationcode-reviewer/references/performance-patterns.md:336Low confidence
- Network access in code of documentationcode-reviewer/references/performance-patterns.md:337Low confidence
- Network access in code of documentationcode-reviewer/references/performance-patterns.md:338Low confidence
- Network access in prose of documentationcode-reviewer/references/performance-patterns.md:391Low confidence
- Network access in prose of documentationcode-reviewer/references/performance-patterns.md:392Low confidence
- Network access in prose of documentationcode-reviewer/references/performance-patterns.md:393Low confidence
- Network access in prose of documentationcode-reviewer/references/performance-patterns.md:394Low confidence
- Network access in prose of documentationcode-reviewer/references/performance-patterns.md:395Low confidence
- Network access in prose of documentationcode-reviewer/references/performance-patterns.md:396Low confidence
- Network access in prose of documentationcode-reviewer/references/performance-patterns.md:397Low confidence
- Network access in prose of documentationcode-reviewer/references/performance-patterns.md:398Low confidence
- Network access in prose of documentationcode-reviewer/references/performance-patterns.md:399Low confidence
- Network access in prose of documentationcode-reviewer/references/performance-patterns.md:400Low confidence
- Network access in prose of documentationcode-reviewer/references/security-checklist.md:3Low confidence
- Access to secrets in prose of documentation: a variable, placeholder or call, not a stored valuecode-reviewer/references/security-checklist.md:156Low confidence
- Access to secrets in prose of documentation: a variable, placeholder or call, not a stored valuecode-reviewer/references/security-checklist.md:170Low confidence
- Network access in prose of documentationcode-reviewer/references/security-checklist.md:197Low confidence
- Network access in prose of documentationcode-reviewer/references/security-checklist.md:198Low confidence
- Network access in prose of documentationcode-reviewer/references/security-checklist.md:199Low confidence
- Network access in prose of documentationcode-reviewer/references/security-checklist.md:200Low confidence
- Network access in prose of documentationcode-reviewer/references/spring-boot-4-patterns.md:35Low confidence
- Network access in prose of documentationcode-reviewer/references/spring-boot-4-patterns.md:54Low confidence
- Network access in prose of documentationcode-reviewer/references/spring-boot-4-patterns.md:67Low confidence
- Network access in prose of documentationcode-reviewer/references/spring-boot-4-patterns.md:84Low confidence
- Network access in prose of documentationcode-reviewer/references/spring-boot-4-patterns.md:96Low confidence
- Access to secrets in prose of documentation: a variable, placeholder or call, not a stored valuecode-reviewer/references/spring-boot-4-patterns.md:106Low confidence
- Network access in prose of documentationcode-reviewer/references/spring-boot-4-patterns.md:136Low confidence
- Network access in prose of documentationcode-reviewer/references/spring-boot-4-patterns.md:137Low confidence
- Network access in prose of documentationcode-reviewer/references/spring-boot-4-patterns.md:138Low confidence
and 87 more
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Native | Manifest .claude-plugin/marketplace.json | .claude/skills/<skill-name>/ |
| Codex | Native | Manifest plugins/springboot-architecture/skills/spring-boot-team-harness/assets/project/AGENTS.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md plugins/springboot-architecture/skills/code-reviewer/SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md plugins/springboot-architecture/skills/code-reviewer/SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md plugins/springboot-architecture/skills/code-reviewer/SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md plugins/springboot-architecture/skills/code-reviewer/SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.