Module Structure
bud-core
The foundation. Reference project extraction, POM mutation (viamaven-model), JavaParser-based refactoring, project analysis, intent classification, and execution planning. Zero Spring framework dependencies β enforced by ArchUnit rules.
Key classes:
TemplateExtractorβ Extracts reference projects from classpath using JDK ClassLoader + manifest filesPomMutatorβ Read/write Maven POM files (add/remove dependencies, set versions, add plugins)JavaParserRefactorβ AST-based package rename for extracted projectsRecipeCatalogβ Composable recipes (actuator, security, CI, native image, etc.)StartersCatalogβ Searchable index of Spring Boot startersBootProjectAnalyzerβ Analyze existing projects for dependencies, structure, test strategyBudWorkflowβ Full pipeline orchestrator: normalize β classify β resolve β plan β execute β recipes β explainExecutionPlannerβ Routes resolved intents to CACHE, INITIALIZR, or EXPAND tiersTemplateSemanticCacheβ Subset-matching cache: intent capabilities β reference project capabilities
bud-mcp-server
Spring Boot 4.1.0-M2 application that wraps bud-core with 23@McpTool-annotated methods. Communicates via stdio JSON-RPC (MCP protocol). This is the tool layer β it has no AI, no LLM calls, no opinions about what to do. It just exposes deterministic operations.
bud-acp-server
The product. An ACP agent with two LLM roles:- Classifier (Sonnet via your approved CLI, ~$0.01/call) β Analyzes prompts via structured output JSON schema. Extracts capabilities, domain entities, best-fit reference project, and overlay level.
- Expander (Sonnet via your approved CLI, ~$0.19/call) β Generates domain-specific code for EXPAND-tier requests. Only invoked for business domain prompts.
Three-Tier Routing
When Bud receives a prompt, it classifies the intent and routes to one of three execution tiers:
The execution planner applies a 6-rule cascade to determine the tier. Rules are ordered so that domain prompts with entities (customer, order, inventory) always route to EXPAND, even if a reference project partially matches.
Protocol Stack
- ACP β IDE β BudAgent (session management, prompt/response)
- MCP β Claude Code β Bud MCP Server (tool discovery, tool invocation)
Enterprise Model
- No API key β Bud delegates all LLM calls to your enterprise-approved agentic CLI (Claude Code, Gemini CLI, Codex, etc.)
- No billing exposure β the CLI handles authentication and billing
- No compliance review β your IT department already approved the CLI
- Swap providers freely β change your CLI, Bud keeps working. No vendor lock-in on the AI side.
- Deterministic tools β the 23 MCP tools donβt call any LLM; scaffolding is pure code operations