Back to list
Rzyfront

vendix-naming-conventions

by Rzyfront

Monorepo con docker config para buildear la aplicacion en desarrollo de forma rapida.

4🍴 1📅 Jan 19, 2026

SKILL.md


name: vendix-naming-conventions description: Project naming conventions. metadata: scope: [root] auto_invoke: "Writing Code (Naming)"

Vendix Naming Conventions

CRITICAL SKILL - ALWAYS ACTIVE - Las convenciones de nombres son la PRIORIDAD ABSOLUTA. CUALQUIER violación es un BUG CRÍTICO.

🚨 CRITICAL RULE - ZERO TOLERANCE

YOU MUST ENFORCE THESE NAMING CONVENTIONS WITHOUT EXCEPTION:

TypeConventionExample❌ WRONG
Variablessnake_caseuser_name, order_total, is_activeuserName, order-total
FunctionsCamelCasegetUserData(), calculateOrderTotal()get_user_data(), GetUserData()
ClassesPascalCaseUserService, OrderServiceuserService, user_service
InterfacesPascalCaseUserProfile, ApiResponseuserProfile, api_response
ConstantsSCREAMING_SNAKE_CASEMAX_RETRIES, DEFAULT_TIMEOUTmaxRetries, default_timeout
EnumsPascalCaseUserRole, OrderStatususerRole, order_status
Enum Valuessnake_caseADMIN, PENDINGAdmin, Pending
Fileskebab-caseuser.service.ts, order.controller.tsuserService.ts, Order.service.ts
Folderskebab-caseuser-management/, order-processing/userManagement/, order_processing/

metadata: scope: [root] auto_invoke: "Any Code Change"

📋 Detailed Rules

1. Variables - snake_case (MANDATORY)

✅ CORRECT:

const user_name = 'John';
const order_total = 99.99;
const is_active = true;
const client_info = { ip_address: '192.168.1.1' };
const product_list = [];

❌ WRONG:

const userName = 'John';           // ❌ camelCase
const orderTotal = 99.99;          // ❌ camelCase
const isActive = true;             // ❌ camelCase
const clientInfo = { ... };        // ❌ camelCase

WHY: Readability, team collaboration, automated tools, type inference.


2. Functions - CamelCase (MANDATORY)

✅ CORRECT:

function getUserData() { }
function calculateOrderTotal() { }
function validateStoreAccess(user_store_id?: number) { }
function generateSlug(text: string) { }
async function registerOwner(registerOwnerDto: RegisterOwnerDto) { }

❌ WRONG:

function get_user_data() { }        // ❌ snake_case
function CalculateOrderTotal() { }  // ❌ PascalCase
function ValidateStoreAccess() { }  // ❌ PascalCase

3. Classes - PascalCase (MANDATORY)

✅ CORRECT:

export class UserService { }
export class OrderService { }
export class RequestContextService { }
export class AuthGuard implements CanActivate { }
export class ProductListComponent { }

❌ WRONG:

export class userService { }       // ❌ camelCase
export class order_service { }     // ❌ snake_case
export class AUTH_GUARD { }        // ❌ SCREAMING_SNAKE_CASE

4. Interfaces - PascalCase (MANDATORY)

✅ CORRECT:

export interface UserProfile { }
export interface ApiResponse<T> { }
export interface AuthenticatedRequest extends Request { }
export interface CreateUserDto { }

❌ WRONG:

export interface userProfile { }     // ❌ camelCase
export interface API_response { }    // ❌ snake_case
export interface ICreateUserDto { }  // ❌ No 'I' prefix needed

5. Constants - SCREAMING_SNAKE_CASE (MANDATORY)

✅ CORRECT:

const MAX_RETRIES = 3;
const DEFAULT_TIMEOUT = 5000;
const API_BASE_URL = 'https://api.vendix.com';
const DB_CONNECTION_POOL_SIZE = 10;

❌ WRONG:

const maxRetries = 3;           // ❌ camelCase
const default_timeout = 5000;   // ❌ snake_case
const apiBaseUrl = '...';       // ❌ camelCase

6. Enums - PascalCase (values: snake_case)

✅ CORRECT:

enum UserRole {
  ADMIN = 'admin',
  USER = 'user',
  SUPER_ADMIN = 'super_admin',
}

enum OrderStatus {
  PENDING = 'pending',
  PROCESSING = 'processing',
  COMPLETED = 'completed',
}

❌ WRONG:

enum userRole { }              // ❌ camelCase
enum user_role { }             // ❌ snake_case
enum UserRole {
  Admin = 'admin',             // ❌ PascalCase values
  SuperAdmin = 'super_admin',  // ❌ Inconsistent
}

7. Files - kebab-case (MANDATORY)

✅ CORRECT:

user.service.ts
order.controller.ts
auth.guard.ts
product-list.component.ts
request-context.service.ts
domain-resolver.middleware.ts

❌ WRONG:

userService.ts           // ❌ camelCase
order.service.ts         // ❌ Mixed case
Auth.Guard.ts            // ❌ PascalCase
productList.component.ts // ❌ camelCase

8. Folders - kebab-case (MANDATORY)

✅ CORRECT:

user-management/
order-processing/
auth-module/
product-list/
shared-components/
domain-resolver/

❌ WRONG:

userManagement/       // ❌ camelCase
order_processing/     // ❌ snake_case
AuthModule/           // ❌ PascalCase
sharedComponents/     // ❌ camelCase

🔍 Special Cases

Database Tables - snake_case

model users { }                    // ✅ CORRECTO
model product_variants { }         // ✅ CORRECTO
model sales_order_items { }        // ✅ CORRECTO
model Users { }                    // ❌ WRONG
model ProductVariants { }          // ❌ WRONG
model salesOrderItems { }          // ❌ WRONG

Database Columns - snake_case

model users {
  id               Int       // ✅ CORRECTO
  organization_id  Int       // ✅ CORRECTO
  main_store_id    Int?      // ✅ CORRECTO
  created_at       DateTime  // ✅ CORRECTO
}

API Endpoints - kebab-case

// ✅ CORRECTO
@Controller('user-management')
@Get('user-profile')
@Post('create-order')

// ❌ WRONG
@Controller('userManagement')  // ❌ camelCase
@Get('userProfile')            // ❌ camelCase

Component Selectors - kebab-case with app- prefix

// ✅ CORRECTO
@Component({
  selector: 'app-user-profile',
  selector: 'app-product-list',
  selector: 'app-order-summary',
})

// ❌ WRONG
selector: 'userProfile'         // ❌ camelCase
selector: 'appUserProfile'      // ❌ camelCase without hyphen
selector: 'user-profile'        // ❌ Missing app- prefix

🎯 Quick Checklist

Before committing code, verify:

  • All variables use snake_case
  • All functions use CamelCase
  • All classes use PascalCase
  • All interfaces use PascalCase
  • All constants use SCREAMING_SNAKE_CASE
  • All files use kebab-case
  • All folders use kebab-case
  • All enum values use snake_case
  • All DB tables use snake_case
  • All DB columns use snake_case
  • All component selectors use app-kebab-case

🔴 YOUR RESPONSIBILITY

YOU MUST:

  1. Double-check variable names BEFORE writing code
  2. Immediately fix ANY naming violation you encounter
  3. Flag violations as CRITICAL bugs
  4. Reinforce conventions in every interaction
  5. NEVER compromise naming conventions for ANY reason

TREAT NAMING VIOLATIONS AS CRITICAL BUGS THAT REQUIRE IMMEDIATE ATTENTION


  • vendix-development-rules - General development rules
  • vendix-build-verification - Build verification workflow
  • vendix-backend-domain - Backend naming patterns
  • vendix-frontend-component - Frontend component patterns

Score

Total Score

50/100

Based on repository quality metrics

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

0/10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

3ヶ月以内に更新がある

0/10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

0/5

Reviews

💬

Reviews coming soon