skills/vendix-currency-formatting/SKILL.md
Currency formatting patterns: custom Vendix CurrencyPipe, CurrencyFormatService, money inputs with [currency], format_style enum, Decimal string handling, and avoiding hardcoded money formatting. Trigger: When displaying or inputting money/currency values.
npx skillsauth add rzyfront/vendix vendix-currency-formattingInstall 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.
apps/frontend/src/app/shared/pipes/currency/currency.pipe.tsapps/frontend/src/app/shared/components/input/input.component.tsapps/frontend/src/app/shared/directives/currency-input.directive.tscurrencies model and currency_format_style_enum.CurrencyPipe / CurrencyFormatService for money display.CurrencyPipe from @angular/common; do not confuse it with the custom pipe named currency.Number(value) || 0 when doing calculations; the service accepts strings but the custom pipe transform currently expects numbers/null/undefined.$ for display. Prefix slots may show a symbol in inputs only when consistent with currency config or existing component behavior.number pipe for money.Configured currencies support:
comma_dot: 1,234.56dot_comma: 1.234,56space_comma: 1 234,56Currency config includes symbol position and decimal places.
CurrencyFormatService loads currency from tenant domain config first, then falls back to store settings and active public currencies. It exposes signal/computed state used by the impure custom pipe.
Useful methods:
format(amount, decimals?)formatCompact(amount)formatChartAxis(value)Use shared input currency mode:
<app-input [currency]="true" formControlName="base_price"></app-input>
[currency] uses text input mode, live separators, raw numeric CVA value, currencyDecimals, and optional negative support.
vendix-product-pricingvendix-calculated-pricingvendix-angular-formsdevelopment
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.