skills/vendix-validation/SKILL.md
Vendix validation patterns: global Nest ValidationPipe, DTO-first backend validation, class-validator/class-transformer usage, business-rule validation, and Angular reactive form validators. Trigger: When writing validation logic, DTOs, form validators, or request payload handling.
npx skillsauth add rzyfront/vendix vendix-validationInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Global validation is configured in apps/backend/src/main.ts with Nest ValidationPipe:
transform: truewhitelist: trueforbidNonWhitelisted: trueenableImplicitConversion: trueDesign APIs assuming DTO validation runs before controller methods.
class-validator decorators for shape, required fields, enums, lengths, arrays, and numeric bounds.class-transformer for type conversion: @Type(() => Number), nested DTOs, arrays, and targeted @Transform().Example patterns used in Vendix:
@IsOptional()
@Type(() => Number)
@IsInt()
store_id?: number;
@ValidateNested({ each: true })
@Type(() => LineItemDto)
items: LineItemDto[];
Use early returns/throws, but do not duplicate DTO validation unnecessarily:
Use VendixHttpException and domain error codes where available.
FormControl bindings.Validators for simple fields and custom validators for cross-field rules.vendix-error-handlingvendix-angular-formsvendix-backend-apidevelopment
Mobile app development rules for Vendix Expo/React Native project. Trigger: When editing, creating, or modifying any file under apps/mobile, or when developing mobile-specific features.
development
Feature gating by store subscription state: global store write guard, AI feature gate, Redis feature resolution, quota consumption, frontend paywall interceptor, banner, and subscription UI states. Trigger: When adding feature gates, paywalls, subscription-based access control, protecting store write operations, AI feature gates, or rollout flags.
testing
SaaS subscription billing for Vendix stores: plan pricing, invoices, Wompi platform payments, manual payments, partner commissions, payouts, proration, and dunning. Trigger: When creating SaaS invoices, working with partner rev-share, margin/surcharge pricing, invoice sequence allocation, partner payout batches, subscription payments, manual payments, or dunning flows.
development
Periodic quota counters with Redis, UTC period keys, Lua-based idempotent AI quota consumption, request-id deduplication, and post-success consumption. Trigger: When building quota counters, enforcing monthly/daily feature caps, or reusing AI quota patterns for uploads, emails, exports, or rate-limited features.