> ## Documentation Index
> Fetch the complete documentation index at: https://lab.pollack.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Tools & Reference Projects

> All 23 MCP tools and 9 reference projects

## Tools (23)

All tools are deterministic — no LLM calls, no API keys needed. LLM calls run on your enterprise-approved CLI.

### Scaffolding

| Tool             | Description                                                                                                                                                 |
| ---------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `create_project` | Scaffold a new Spring Boot project. Parameters: `name`, `groupId`, `outputDir`, `template` (optional — selects reference project), `javaVersion` (optional) |
| `list_templates` | List all available reference projects with descriptions                                                                                                     |

### Dependencies

| Tool                | Description                                                                                                         |
| ------------------- | ------------------------------------------------------------------------------------------------------------------- |
| `add_dependency`    | Add a Maven dependency. Parameters: `projectDir`, `groupId`, `artifactId`, `version` (optional), `scope` (optional) |
| `remove_dependency` | Remove a Maven dependency. Parameters: `projectDir`, `groupId`, `artifactId`                                        |

### Configuration

| Tool                          | Description                                            |
| ----------------------------- | ------------------------------------------------------ |
| `set_java_version`            | Set the Java version in pom.xml                        |
| `add_actuator`                | Add Spring Boot Actuator for health checks and metrics |
| `add_security`                | Add Spring Security with sensible defaults             |
| `add_native_image`            | Configure GraalVM native image support                 |
| `remove_native_image`         | Remove native image configuration                      |
| `add_spring_format`           | Add Spring Java Format plugin                          |
| `add_basic_ci`                | Generate GitHub Actions CI workflow                    |
| `add_multi_arch_ci`           | Generate multi-architecture CI workflow                |
| `clean_pom`                   | Clean and normalize pom.xml                            |
| `add_devtools`                | Add Spring Boot DevTools for live reload               |
| `add_validation`              | Add Bean Validation (Hibernate Validator)              |
| `add_lombok`                  | Add Lombok for compile-time code generation            |
| `add_configuration_processor` | Add Configuration Processor for IDE metadata           |
| `add_mysql`                   | Add MySQL driver (runtime scope)                       |
| `add_postgresql`              | Add PostgreSQL driver (runtime scope)                  |
| `add_mariadb`                 | Add MariaDB driver (runtime scope)                     |

### Discovery

| Tool              | Description                                                         |
| ----------------- | ------------------------------------------------------------------- |
| `search_starters` | Search Spring Boot starters by keyword                              |
| `configure`       | Get/set Bud preferences (Java version, Boot version, groupId, etc.) |

### Analysis

| Tool              | Description                                                                      |
| ----------------- | -------------------------------------------------------------------------------- |
| `analyze_project` | Analyze an existing Spring Boot project — dependencies, structure, test coverage |

## Reference Projects (9)

Each reference project is a complete, working Spring Boot 4.1.0-M2 application — compiles, tests pass, follows production conventions. Bud uses these as starting points when your request matches a known pattern, then AI adapts them when you need domain-specific code.

### spring-boot-minimal

Bare Spring Boot application with main class and a single test. Use as a starting point when you want to add dependencies yourself.

### spring-boot-rest

REST API with `GreetingController`, `GreetingService`, `ProblemDetail` error handling, and `@WebMvcTest` slice tests.

### spring-boot-jpa

JPA application with `Customer` entity, `CustomerRepository`, `CustomerService`, `CustomerController`, `@DataJpaTest` repository tests, and `@WebMvcTest` controller tests. Uses H2 in-memory database.

### spring-boot-security

REST API with Spring Security. Public, authenticated, and admin endpoints. ProblemDetail 401/403 responses. `@WithMockUser` security tests.

### spring-boot-actuator

REST API with Actuator health checks and a custom `GreetingHealthIndicator`. Actuator endpoint tests verify health and info endpoints.

### spring-boot-scheduling

Scheduled background tasks with `@Scheduled` methods, error handling, and failure tracking. Tests verify scheduling behavior.

### spring-boot-batch

Spring Batch CSV-to-database processing with skip/retry policies and `JobCompletionListener`. Uses Spring Batch 6 package relocations for Spring Boot 4.

### spring-boot-web

Thymeleaf web application with `GreetingController` (`@Controller`, not `@RestController`), Thymeleaf HTML templates, static welcome page, and `@WebMvcTest` tests.

### spring-ai-app

Spring AI chatbot with `AssistantService`. Demonstrates Spring AI integration patterns.

## Preferences

Stored at `~/.config/bud/preferences.yml`:

```yaml theme={null}
javaVersion: "21"
bootVersion: "4.1.0-M2"
groupId: "com.example"
alwaysAdd: ["actuator", "devtools"]
preferDatabase: "postgresql"
```

Use the `configure` tool to get/set these values.
