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.

Compare on GitHub

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.

Compare on GitHub

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.

Compare on GitHub

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.

Compare on GitHub

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.

Compare on GitHub

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.

Compare on GitHub

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.

Compare on GitHub

View on GitHubAdd to my skills

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>/
80GitHub stars
0stars in 7 days
7skills in this repository
106commits in 30 days

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

Oct 25, 2026Oct 25, 202680

30-day change not yet available: not enough history.

Individual skills in this repository

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 tokens

Always available to the agent

SKILL.md

1,532 tokens

When the skill is activated

Reference documents

23,963 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. Rules
  2. Before Step 1: say who wrote the code
  3. Step 1: Load only the references the review needs
  4. Step 2: Run the passes that match the request
  5. Boot 4 findings the model often misses
  6. Report format

Scripts executed separately

  • ../springboot-migration/scripts/scan_migration_issues.py

Files

  • ../../../../.claude-plugin/marketplace.jsonasset3,681 bytes
  • SKILL.mdcore6,582 bytes
  • references/architecture-patterns.mddoc7,566 bytes
  • references/domain-modeling.mddoc3,663 bytes
  • references/java-25-features.mddoc9,104 bytes
  • references/jpa-performance.mddoc8,196 bytes
  • references/jspecify-null-safety.mddoc4,749 bytes
  • references/performance-patterns.mddoc16,316 bytes
  • references/security-checklist.mddoc12,139 bytes
  • references/spring-boot-4-patterns.mddoc8,702 bytes
  • references/test-review.mddoc5,164 bytes
  • references/testing/boot4-test-toolkit.mddoc5,002 bytes
  • references/testing/traps.mddoc8,720 bytes
  • references/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 GitHub

Skills 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 shell

Automated 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:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/springboot-architecture/skills/creating-springboot-projects/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/springboot-architecture/skills/spring-boot-team-harness/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/springboot-architecture/skills/spring-boot-team-harness/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/springboot-architecture/skills/spring-boot-team-harness/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/springboot-architecture/skills/spring-boot-team-harness/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/springboot-architecture/skills/spring-boot-team-harness/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/springboot-architecture/skills/springboot-migration/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/springboot-architecture/skills/springboot-migration/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
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

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Dangerous shell operationline 73
    ls -t "$STAMPS"/session-* 2> /dev/null | tail -n +21 | while IFS= read -r old; do rm -f "$old"; done
  • Dangerous shell operationline 129
    rm -f "$FAILED"

plugins/springboot-architecture/skills/spring-boot-team-harness/assets/project/.claude/settings.json

  • Network accessline 1
    {   "$schema": "https://json.schemastore.org/claude-code-settings.json",
  • Network accessline 2
    "$schema": "https://json.schemastore.org/claude-code-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

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3

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
Signal confidence: 137 facts

and 87 more

Works with

  • 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.