skills/vendix-date-timezone/SKILL.md
Date and timezone handling patterns: UTC-safe date-only display, form date strings, chart labels, date range queries, print formatting, and off-by-one day prevention. Trigger: When displaying dates, formatting date labels, using DatePipe/toLocaleDateString, querying date ranges, or adding DateTime fields.
npx skillsauth add rzyfront/vendix vendix-date-timezoneInstall 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.
new Date('2026-04-12') is UTC midnight. In Colombia (UTC-5), local date formatting can show the previous day. Date-only backend values must be displayed in UTC.
apps/frontend/src/app/shared/utils/date.util.ts exposes:
formatDateOnlyUTC(value)toLocalDateString(date?)toUTCDateString(date)getDefaultStartDate()getDefaultEndDate()formatChartPeriod(period, granularity)Use these utilities for new code. Some legacy modules still use DatePipe or raw toLocaleDateString(); do not copy those patterns for date-only fields.
timeZone: 'UTC' or formatDateOnlyUTC().YYYY-MM-DD strings.toLocalDateString() for local today defaults.toUTCDateString() when converting backend date-only values to input strings.formatChartPeriod() for chart labels instead of private component formatters.es-CO for Colombian-facing display, but keep existing utility behavior unless changing it intentionally; formatChartPeriod() currently uses locale es.getUTCMonth, getUTCDate, etc.) for date math.new Date(dateOnly).toLocaleDateString() without timezone.DatePipe for date-only values without UTC handling.new Date('2026-04-12T00:00:00') without Z when UTC was intended.vendix-angular-formsvendix-frontend-data-displayvendix-prisma-schemadevelopment
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.