Creates RPC-style endpoint following layered architecture (Controller → Manager → Repository). Use when creating new API endpoints or CRUD operations.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Design RPC-style APIs with layered architecture (Controller → Manager → Repository). Use when creating new API endpoints, designing API contracts, or reviewing API patterns.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
설치 방법 보기설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.
GET /api/v1/employees # List (plural)
GET /api/v1/employee # Get one (?id=xxx)
POST /api/v1/employee # Create
POST /api/v1/employee/update # Update (?id=xxx)
POST /api/v1/employee/delete # Soft delete (?id=xxx)
POST /api/v1/employee/restore # Restore (?id=xxx)
POST /api/v1/sync/employees # Action
@QueryValue, never @PathVariable/employee not /employees/{id}/employees/delete, /restore, /syncController → thin, just delegates
↓
Manager → business logic, transactions, Either returns
↓
Repository → data access only, no business logic
.throwOrValue()Either<ClientException, T>transaction(db.primary) { }db.replica for reads, db.primary for writesdeletedAt.isNull()The core controller delegation pattern:
@Get("/employee")
suspend fun getEmployee(@QueryValue id: UUID): EmployeeResponse {
return employeeManager.findById(id).throwOrValue()
}
companion object { fun from(entity) } in module-client/response/{domain}/EmployeeListResponse with items, total, page, limit, hasMoreClientError.NOT_FOUND.asException().left() from managers, never throw@Factory class with @Singleton method, wire repos + db into managerSee code-patterns.md for complete controller, response model, pagination, error handling, and factory bean templates.
@QueryValue params MUST have explicit snake_case names. The frontend axios interceptor sends project_id but Micronaut matches the literal param name. Write @QueryValue("project_id") projectId: UUID, not bare @QueryValue projectId: UUID.@Put, @Delete, or @Patch. This is RPC-style — all mutations are @Post. The only @Get is for reads.private val fooRepository: FooRepository in a controller, move it to the manager.andWhere {} not second .where {}. Calling .where {} twice replaces the first condition. Use .andWhere {} to chain.@ExecuteOn(TaskExecutors.IO). Without it, suspend functions may hang or run on the wrong thread pool. Every controller needs it.아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.
로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.
Creates RPC-style endpoint following layered architecture (Controller → Manager → Repository). Use when creating new API endpoints or CRUD operations.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Write blog posts, guides, tutorials, and long-form content. Sounds like a real person, not AI. Use when the user wants polished written content.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Run a structured brainstorm session for startup ideas. Takes a theme or problem and generates ideas with quick gut-checks. Use when the user wants to explore a space or generate new ideas.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Run real browser QA with Playwright. Use when testing a frontend feature, verifying UI before PR, smoke testing after deploy, or investigating reported visual bugs.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
CI/CD pipeline patterns for GitHub Actions, PR automation, and deployment workflows. Use when setting up CI, fixing broken pipelines, automating PR checks, or configuring deployment.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Deep competitor analysis. Tear apart a specific competitor or compare multiple competitors. Use when the user names a competitor or asks "who else is doing this?"
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.