agentsclimarketplace

Business domain grouping

Skill jjromero88/jjromero-skills-dev/business-domain-grouping

Clean Architecture para .NET + SQL Server + Angular, destilada de años de experiencia real en decenas de proyectos en producción.

Install
npx -y skills add jjromero88/jjromero-skills-dev --skill business-domain-grouping

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • 18 days oldThe repository was created 18 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Método de agrupación lógica de entidades de negocio — cómo derivar carpetas de negocio desde los esquemas de BD, y aplicarlas consistentemente en backend (.NET) y frontend (Angular). Consúltala junto con sql-database-patterns/dotnet-clean-architecture/angular-feature-architecture para saber en qué carpeta de negocio va cada entidad nueva.

SKILL.md

4.3 KB, ~1.2k tokens by cl100k_base, as published. Nobody here has run it

Business Domain Grouping

⚠️ Skill personal, transversal a BD/backend/frontend.

Un proyecto puede tener 100+ entidades de negocio. Sin agrupación lógica consistente, es difícil navegar el código. Esta skill define el MÉTODO para derivar carpetas de negocio ("cores") a partir de los esquemas de BD — para que BD, backend y frontend usen el mismo vocabulario. Reaplica este método en cada proyecto nuevo; no reutilices nombres de core de un proyecto anterior si el dominio de negocio es distinto.

Regla de decisión

  1. Cada esquema de BD (ver sql-database-patterns) se convierte en una carpeta de negocio con el mismo nombre conceptual, en el idioma del proyecto.
  2. Si un esquema agrupa dos responsabilidades de negocio claramente distintas, se parte en dos carpetas en vez de una — el límite técnico del esquema no obliga a una única carpeta. Ejemplo del criterio: un esquema de seguridad que mezcla "cuentas de usuario/autenticación" con "configuración de roles y permisos (RBAC)" son dos preocupaciones distintas — una carpeta para cada una, aunque vivan en el mismo esquema. Mismo criterio para un esquema de "datos maestros" que mezcla entidades propias de un módulo con catálogos genéricos reutilizados por varios módulos — se separan. Esta decisión se toma desde el principio, al crear la tabla catálogo/maestra — no solo como corrección posterior cuando ya quedaron mezcladas (ver sql-database-patterns, "Esquemas por módulo de negocio", para el criterio de transversal-vs-específico y el esquema cat dedicado).
  3. La carpeta de negocio ({Core}) NUNCA afecta el namespace/paquete — solo organiza carpetas físicas.

Dónde aplica esta agrupación

  • BD: el esquema mismo (sql-database-patterns) — 1:1 con el core salvo cuando la regla 2 aplica.
  • Backend: Persistence/Repositories/{Core}/, Application/Services/{Core}/, Application/Interfaces/{Repository,Service}/{Core}/, Application/DTOs/{Core}/, Validator/Validators/{Core}/ (dotnet-clean-architecture).
  • Frontend: carpeta de feature de primer nivel (features/{core}/) — ver angular-feature-architecture.

Excepción: Mapper/Profiles es plano

Los perfiles de AutoMapper (Mapper/Profiles/{Entidad}Profile.cs) NO se agrupan por core — quedan planos por entidad, sin excepción.

Ejemplo aplicado (sistema de ventas)

Así se aplicaría el método en un sistema de ventas típico, con esquemas seg (seguridad), ven (ventas), inv (inventario), fac (facturación), cat (catálogo):

CarpetaEsquema(s)Por qué se separó así
Authseg (subset)Cuentas de usuario y autenticación — distinto de la configuración RBAC
Seguridadseg (subset)Roles, permisos, perfiles (RBAC)
Ventasven1:1 — pedidos, líneas de pedido, clientes
Inventarioinv1:1 — productos, stock, almacenes
Facturacionfac1:1 — facturas, pagos
Catalogocat1:1 — catálogos genéricos (unidades de medida, monedas, categorías)

seg se parte en dos carpetas (regla 2 — autenticación vs. RBAC son responsabilidades distintas aunque vivan en el mismo esquema); ven/inv/fac/cat quedan 1:1 con su esquema (regla 1). Un gap típico en frontend: si no se aplica el método completo ahí, Catalogo termina anidado dentro de otro feature (ej. dentro de Ventas) en vez de tener su propia carpeta de feature — aplica el método completo también en frontend, no lo simplifiques a mitad de camino.

Agregar una entidad nueva: elegir su core

  1. ¿A qué esquema de BD pertenece la tabla?
  2. ¿Ese esquema agrupa una sola responsabilidad de negocio, o dos claramente distintas? Si es una sola → la carpeta = el esquema. Si son dos → decide a cuál de las dos pertenece la entidad nueva, o si amerita partir el esquema en dos carpetas (regla de decisión, arriba).

Gives 0 of the 12 instructions most databases sql skills give in ~1.2k tokens

Counted across 589 of the 662 authors here whose files we hold, read 2026-08-06

  • use parameterized queriesin 36 of 589, across 32 files
  • use timestamptz for timestampsin 30 of 589, across 12 files
  • create indexes concurrentlyin 29 of 589, across 23 files
  • index foreign keysin 28 of 589, across 17 files
  • use numeric type for moneyin 25 of 589, across 8 files
  • select only required columnsin 24 of 589, across 19 files
  • use cursor pagination instead of OFFSETin 23 of 589, across 15 files
  • add indexes manually on foreign key columnsin 22 of 589, across 11 files
  • read individual rule files for detailed explanationsin 18 of 589, across 4 files
  • configure connection poolingin 18 of 589, across 16 files
  • put equality columns before range columns in indexesin 17 of 589, across 9 files
  • normalize to third normal formin 17 of 589, across 8 files

Said here and by no other author read

  • derive business folders from database schemas
  • use the same vocabulary across backend and frontend
  • reapply this method on every new project
  • split schemas with two distinct business responsibilities
  • separate generic catalogs from module-specific master data
  • keep AutoMapper profiles flat by entity without exception

Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.