$npx -y skills add Amplicode/spring-skills --skill spring-exploreExplores a Spring Boot application and builds primary context: tech stack, module structure, domain entities, REST endpoints. Triggers on explicit requests: "explore project", "describe project", "project overview", "what is this project", "project structure", "tech stack", "give
| 1 | # Preflight: Spring MCP |
| 2 | |
| 3 | This skill is part of the **Spring Agent Toolkit** and is designed to work with the **Spring MCP server** (provided by the Amplicode IntelliJ plugin). Before doing anything else, check your tool list for any Spring MCP tool — they are exposed under the `amplicode` MCP server (e.g. `get_project_summary`, `list_module_dependencies`, `get_entity_details`); harnesses that flatten MCP tools into the tool list use the `mcp__amplicode__` prefix on the same names. |
| 4 | |
| 5 | - **If at least one Amplicode tool is available** — MCP is connected. Proceed with the skill below. |
| 6 | - **If none are available** — stop and invoke the **`amplicode-install`** skill (bundled with the Spring Agent Toolkit). It installs the Amplicode plugin and walks the user through the **«Настроить Spring Agent»** welcome-screen button + MCP-client restart. After it completes, the MCP tools become available — resume this skill. |
| 7 | - If `amplicode-install` is not registered in your skill list, tell the user (in their language): *"This skill needs the Amplicode IntelliJ plugin and its MCP server. Install it from https://amplicode.ru/marketplace into IntelliJ IDEA Ultimate/Community or GigaIDE, open any project, click «Настроить Spring Agent» on the Amplicode welcome screen, then restart your MCP client."* |
| 8 | |
| 9 | --- |
| 10 | |
| 11 | # Explore Application |
| 12 | |
| 13 | Collects primary project context in steps 0–6. Execute steps sequentially — |
| 14 | each one builds on the results of the previous. |
| 15 | |
| 16 | **Important:** if context has already been collected in the current conversation, do not repeat |
| 17 | the exploration — use what is already known. |
| 18 | |
| 19 | --- |
| 20 | |
| 21 | ## Step 0 — Predict involvement from the user's request |
| 22 | |
| 23 | Tell the user: `Step 0/6: Analyzing request...` |
| 24 | |
| 25 | **Do NOT call any tools in this step.** |
| 26 | |
| 27 | Read the user's request and reason about what the implementation likely involves. |
| 28 | Without calling any tools, make educated guesses based on naming conventions, domain language, |
| 29 | and typical Spring Boot patterns: |
| 30 | |
| 31 | - **Entities** — what domain objects are likely involved? (e.g. "create order" → `Order`, `OrderItem`) |
| 32 | - **Repositories** — which repositories probably exist for those entities? |
| 33 | - **Services** — what service classes are likely needed? |
| 34 | - **Controllers** — what REST controllers probably handle this area? |
| 35 | - **Other beans/components** — mappers, validators, event listeners, configs, etc. |
| 36 | - **Files** — what non-Java files are likely relevant? (e.g. DB migration scripts, `application.properties`, Liquibase changelogs, HTML templates). Do not list Java classes here — they belong to the categories above. |
| 37 | |
| 38 | Build a preliminary gap list containing only what is genuinely required: |
| 39 | |
| 40 | ``` |
| 41 | ### Predicted involvement: |
| 42 | - Entities: Order, OrderItem, Customer |
| 43 | - Repositories: OrderRepository, CustomerRepository |
| 44 | - Services: OrderService |
| 45 | - Controllers: OrderController |
| 46 | - Other: OrderMapper |
| 47 | - Files: src/main/resources/db/migration/V1__create_orders.sql, application.properties |
| 48 | ``` |
| 49 | |
| 50 | This prediction drives steps 1–5 — skip anything irrelevant to the task. |
| 51 | |
| 52 | --- |
| 53 | |
| 54 | ## Step 1 — Define exploration goal and select paths |
| 55 | |
| 56 | Tell the user: `Step 1/6: Selecting exploration paths...` |
| 57 | |
| 58 | **Do NOT call any tools in this step.** |
| 59 | |
| 60 | Read the current conversation context — the user's request, any prior exploration results, remaining gaps — and formulate the key exploration goal in one sentence. Show it to the user: |
| 61 | |
| 62 | ``` |
| 63 | ### Exploration goal: |
| 64 | Understand the Order aggregate structure and verify what repositories and mappers already exist. |
| 65 | ``` |
| 66 | |
| 67 | Using this goal, go through each exploration path below and explicitly decide: **include** or **skip**, with a one-line reason. Do this for every path — do not skip the evaluation itself. |
| 68 | |
| 69 | **Project structure** |
| 70 | - **Fetch project summary** — include if the tech stack, Spring Boot version, or module structure are needed. Skip if the task is narrowly scoped to specific classes. |
| 71 | - **Detect persistence stack** — include if any entity-touching path below is selected AND the stack (JPA vs JDBC) is not yet known from the conversation. Call `list_module_dependencies`: dependency on `spring-boot-starter-data-jpa` / `hibernate` → JPA; `spring-boot-starter-data-jdbc` / `spring-data-jdbc` → JDBC; neither → no supported persistence layer, skip entity-touching paths. |
| 72 | - **List domain entities** — include ONLY if the domain area is completely unknown and you cannot predict which entities are involved. If entities are already named in the request or predictable from context — skip. Do NOT use to get entity structure or resolve FQNs. |
| 73 | - **List REST endpoints** — include only if you need to |