be-crud

Generates CQRS CRUD scaffolds for Spring WebFlux entities with R2DBC or MyBatis persistence.

1|Updated Feb 19, 2026
One-click install
npx skills add https://github.com/ohmyhotelco/hare-cc-plugins --skill be-crud-ohmyhotelco
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: be-crud
Source: https://github.com/ohmyhotelco/hare-cc-plugins/tree/main/backend-webflux-plugin/skills/be-crud
Command: npx skills add https://github.com/ohmyhotelco/hare-cc-plugins --skill be-crud-ohmyhotelco

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Writing a new entity in a CQRS-style Spring WebFlux backend means hand-creating a dozen coordinated files — migration SQL, entity, repository or mapper, commands, queries, views, validators, exceptions, and web routes — each following strict project conventions. This Skill generates that entire scaffold deterministically from templates, in either manual mode or driven by a plan.json spec. ## Core Features & Use Cases - Dual persistence profiles: Generates R2DBC (reactive repository, UUID converters) or MyBatis (mapper interface, XML, type handlers) variants, plus functional or annotated web layers. - Spec-driven and manual modes: Reads entities, commands, queries, endpoints, and validation rules from plan.json, or accepts inline field definitions with flags like unique, max=N, and pattern=email. - Pipeline-safe bookkeeping: Uses progress files, demotion checks, and a lock file so regenerated scaffolds never silently destroy downstream pipeline state. - Use Case: Run be-crud Employee email:String:unique:pattern=email displayName:String:max=20 to produce a migration, entity, repository, command executor, query processors, router/handler, validator, and exceptions for the hr domain in one pass. ## Quick Start Ask the assistant to scaffold a new Employee entity with a unique email field and a display name limited to 20 characters using the be-crud skill.

Frequently Asked Questions about be-crud

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I generate a CRUD scaffold for a Spring WebFlux entity?▼

Run be-crud with the entity name and field definitions, for example `be-crud Employee email:String:unique:pattern=email displayName:String:max=20`. The skill generates the migration, entity, repository, commands, queries, views, web layer, validator, and exceptions following CQRS conventions.

What field types and flags does the CRUD generator support?▼

Manual mode accepts String, Integer, Long, Boolean, BigDecimal, LocalDate, LocalDateTime, LocalTime, and UUID. Flags include unique, nullable, max=N, and pattern=email|phone|url; max and pattern apply only to String fields and are rejected at parse time otherwise.

R2DBC vs MyBatis: which data profile should I choose?▼

R2DBC is the default and simplest reactive path, using ReactiveCrudRepository and a UUID conversion config. MyBatis suits modules with complex queries or existing MyBatis conventions, generating a mapper interface, XML statements, and a UUID type handler instead.

Can I scaffold all entities from a backend plan at once?▼

Yes, `be-crud --all <feature-name>` reads plan.json and processes entities in dependency order under a single lock. Entities whose progress files show later pipeline stages prompt a demotion check and are skipped if declined, without aborting the run.

Why does be-crud stop before generating any files?▼

It stops when the plugin config is missing, the project lacks required dependencies like spring-boot-starter-data-r2dbc or r2dbc-mysql 1.4.2+, or a fresh lock exists from another operation. It prints the exact dependency lines to add rather than emitting code that cannot compile.

What happens if I re-run the scaffold on an existing entity?▼

If a progress file shows a status beyond scaffolded, the skill warns that re-running resets pipeline history and asks for confirmation. It also prompts before overwriting any existing entity files, since hand-edited scaffolds count as user work.