← ClaudeAtlas

spring-boot-feature-creationlisted

Guides the creation of complete Spring Boot features following a structured, layer-by-layer workflow: entity, repository, service, controller, and tests. Applies Kotlin idioms, Bean Validation, and MockK test patterns throughout.
lgzarturo/codeconductor · ★ 0 · AI & Automation · score 76
Install: claude install-skill lgzarturo/codeconductor
# Spring Boot Feature Creation When asked to create a feature, follow these steps **in order**. Do not skip steps or combine layers. Each layer has a single responsibility. **When to ask questions:** Only ask when there is genuine ambiguity in business logic — for example, what happens when a duplicate is found, or whether soft delete is required. Do not ask about technical choices (naming, package structure, framework configuration) — apply the conventions in this skill. --- ## Step 1 — Entity + Repository Create the JPA entity and its repository before any other layer. ### Entity ```kotlin @Entity @Table( name = "orders", indexes = [Index(columnList = "customer_id")] ) class Order( @Id @GeneratedValue(strategy = GenerationType.UUID) val id: UUID = UUID.randomUUID(), @Column(name = "customer_id", nullable = false) val customerId: UUID, @Column(name = "status", nullable = false) @Enumerated(EnumType.STRING) var status: OrderStatus = OrderStatus.PENDING, @Column(name = "total_amount", nullable = false) var totalAmount: BigDecimal, @Column(name = "created_at", nullable = false, updatable = false) @CreatedDate val createdAt: Instant = Instant.now(), @Column(name = "updated_at", nullable = false) @LastModifiedDate var updatedAt: Instant = Instant.now() ) enum class OrderStatus { PENDING, CONFIRMED, CANCELLED } ``` Rules: - `@Table` with explicit `name` — never rely on inferred table names - `@C