Skip to content

feat(marketplace): add the spring plugin - #270

Merged
amondnet merged 2 commits into
mainfrom
add/spring-plugin
Sep 14, 2026
Merged

amondnet merged 2 commits into
mainfrom
add/spring-plugin

Conversation

@amondnet

@amondnet amondnet commented Sep 14, 2026

Copy link
Copy Markdown
Contributor

What

Registers pleaseai/spring-plugin as spring@pleaseai.

It answers Spring questions from the reference documentation of the version a project actually declares, not the newest release: it reads the Spring Boot version out of build.gradle, build.gradle.kts or pom.xml, resolves it to a published documentation archive from pleaseai/spring-docs, and unpacks it once into a shared cache. Nothing is written into the user's project.

{
  "name": "spring",
  "category": "framework",
  "source": { "source": "github", "repo": "pleaseai/spring-plugin" }
}

Relevance signals

manifestDeps gates the suggestion on an actual Spring dependency — spring-boot in a pom.xml, org.springframework.boot in a Gradle build script or a version catalog — rather than on the presence of a build file, which every JVM project has. filesRead adds the Spring Boot config convention (application* under src/main/resources). There is no cli signal: gradle and mvn carry no Spring information.

The patterns were checked against real manifest shapes, including a pom.xml with only junit, a build.gradle with no Boot plugin, a Windows path, and package.json / mypom.xml.bak as negative controls.

About the generated artifacts

bun run plugins:multi-format was run as CONTRIBUTING requires. It writes three marketplace catalogs — included here — and also rewrites all 152 plugins/*/plugin.json files, adding a $schema key and bumping versions that had drifted from their sources (for example plugins/antfu/plugin.json goes 1.0.01.2.0).

That drift is pre-existing and unrelated to adding one entry, so those files are reverted and only the catalogs are committed. Worth regenerating deliberately in its own PR — happy to do that separately if you want it.

The two generated catalogs also carry a small pre-existing ordering change (shadcn-ui and tanstack swap positions) that the generator produces on its own; it is in the diff because the command produced it, not because this change asked for it. .cursor-plugin/marketplace.json lists only local-source plugins, so spring is absent from it by design, as firebase, ask and flutter are.

Checks

  • bun run lint — pass
  • bun run test — pass
  • .claude-plugin/marketplace.json parses; 103 → 104 entries, no existing spring name

Related

  • docs: document the Claude Code plugin install route spring-plugin#15 — documents this install route in the plugin's README and renames the plugin manifest to spring. This PR should land first: until the catalog lists spring, the install commands that PR documents do not resolve. (An earlier version of this description had the order backwards.)

Registers `pleaseai/spring-plugin`, which answers Spring questions from the
reference documentation of the version a project declares rather than the
newest release. It reads the Spring Boot version out of `build.gradle`,
`build.gradle.kts` or `pom.xml`, resolves it to a published documentation
archive, and unpacks it into a shared cache.

Relevance signals cover the two build tools and the files that carry a declared
version, so the suggestion fires on a Spring project rather than on any JVM one.

`.agents/plugins/marketplace.json` and `.cursor-plugin/marketplace.json` are the
output of `bun run plugins:multi-format`, as CONTRIBUTING requires. That command
also rewrites every `plugins/*/plugin.json`, adding a `$schema` key and bumping
versions that had drifted from their sources; none of that belongs to this
change, so those files are left as they were.
@vercel

vercel Bot commented Sep 14, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
claude-code-plugins Ready Ready Preview Sep 14, 2026 1:32am UTC

Request Review

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

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Code Review

This pull request updates the marketplace configurations across different agent plugins. Specifically, it registers several new AI plugins under the 'shunt' suite sourced from a Git repository, adds a new 'spring' plugin with detailed relevance signals for Java/Kotlin projects, and rearranges the order of existing plugins in the Cursor marketplace. There are no review comments, and the changes look correct and well-structured, so I have no feedback to provide.

@greptile-apps

greptile-apps Bot commented Sep 14, 2026

Copy link
Copy Markdown

RetriggerConfidence Score: 5/5

The PR appears safe to merge, with the Spring registration and generated host-specific outputs aligned with the repository’s distribution model.

Summary

  • Adds Spring discovery metadata based on build files, configuration files, and Gradle/Maven commands.
  • Generates the corresponding remote-source entry for the Codex-compatible agents catalog.
  • Intentionally omits Spring from Cursor because Cursor’s marketplace format supports only local plugin sources.
  • Synchronizes previously stale generated shunt entries and deterministic catalog ordering.

Reviews (1) · Last reviewed commit: "feat(marketplace): add the spring plugin"

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

All reported issues were addressed across 3 files

Architecture diagram
sequenceDiagram
    participant User as Claude User
    participant Client as Claude Client
    participant Market as Marketplace Catalog
    participant Plugin as Spring Plugin (pleaseai/spring-plugin)
    participant Proj as User's Spring Project
    participant Docs as Spring Docs Archive (pleaseai/spring-docs)
    participant Cache as Shared Documentation Cache

    Note over User,Cache: NEW: Spring Plugin Installation and Runtime Flow

    User->>Client: Ask Spring question
    Client->>Market: Search for spring plugin
    Market-->>Client: Return spring plugin metadata

    Note over Client,Proj: Plugin Activation (relevance signals)
    Client->>Proj: NEW: Detect Spring project files (build.gradle, build.gradle.kts, pom.xml)
    alt Spring project detected
        Client->>Plugin: Trigger Spring plugin
    else No Spring project detected
        Client->>Client: Do not activate plugin
    end

    Note over Plugin,Docs: Version Resolution
    Plugin->>Proj: Read declared Spring Boot version
    Proj-->>Plugin: Version (e.g., 3.2.5)

    Plugin->>Docs: CHANGED: Resolve version-specific documentation archive
    Docs-->>Plugin: Documentation archive URL
    Plugin->>Cache: Check if version docs cached
    alt Not cached
        Plugin->>Docs: Download documentation archive
        Docs-->>Plugin: Archive
        Plugin->>Cache: NEW: Unpack and store in shared cache (outside project)
    else Already cached
        Cache-->>Plugin: Use cached documentation
    end

    Plugin->>Cache: Load version-specific reference docs
    Cache-->>Plugin: Spring reference documentation

    Plugin->>Client: Provide Spring answer from correct version docs
    Client-->>User: Answer with accurate version-matched documentation

    Note over Proj: No changes written to user's project
Loading

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

Comment thread .claude-plugin/marketplace.json Outdated
@amondnet amondnet self-assigned this Sep 14, 2026
…ndency

The signals matched every Gradle and Maven project. `gradle`, `mvn`,
`**/build.gradle` and `**/pom.xml` say "this is a JVM project", not "this
project uses Spring", so the suggestion would have fired on any Java or Kotlin
repository.

Replaces them with `manifestDeps`, which tests manifest contents rather than
manifest existence: `spring-boot` in a `pom.xml`, `org.springframework.boot` in
a Gradle build script or a version catalog. The remaining `filesRead` patterns
keep only the Spring Boot config-file conventions, `application*` under
`src/main/resources`.
@codacy-production

Copy link
Copy Markdown

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

@sonarqubecloud

Copy link
Copy Markdown

@amondnet
amondnet merged commit 513e0cf into main Sep 14, 2026
12 checks passed
@amondnet
amondnet deleted the add/spring-plugin branch September 14, 2026 01:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant