spring-boot-feature-creationlisted
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