.cursor/skills/nazim-finance/SKILL.md
Finance module patterns for Nazim. Use when working on accounts, categories, projects, donors, entries, reports, fees, or currencies. Covers useFinance hooks, finance structure, reports, fees, multi-tenancy, types and mapper.
npx skillsauth add AHMADJAN-New/nazim-web nazim-financeInstall 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.
Finance covers general ledger (accounts, income/expense categories, projects, donors, entries), reports, and fees. Follow multi-tenancy and API/domain type patterns.
type: 'cash' | 'fund'isRestrictedstatus: 'planning' | 'active' | 'completed' | 'cancelled'type: 'individual' | 'organization'useFinanceBaseCurrency() — base currency for display (from useCurrencies)useFinanceAccounts(params?), useCreateFinanceAccount, useUpdateFinanceAccount, useDeleteFinanceAccountuseIncomeCategories(params?), useCreateIncomeCategory, useUpdateIncomeCategory, useDeleteIncomeCategoryuseExpenseCategories(params?), useCreateExpenseCategory, useUpdateExpenseCategory, useDeleteExpenseCategoryuseFinanceProjects(params?), useCreateFinanceProject, useUpdateFinanceProject, useDeleteFinanceProjectuseDonors(params?), useCreateDonor, useUpdateDonor, useDeleteDonoruseIncomeEntries(params?), useCreateIncomeEntry, useUpdateIncomeEntry, useDeleteIncomeEntryuseExpenseEntries(params?), useCreateExpenseEntry, useUpdateExpenseEntry, useDeleteExpenseEntryuseFinanceDashboard, useDailyCashbook, useIncomeVsExpenseReport, useProjectSummaryReport, useDonorSummaryReport, useAccountBalancesReportQuery keys include profile?.organization_id, profile?.default_school_id where applicable. Mutations invalidate related query keys (e.g. finance-dashboard, income-entries, daily-cashbook).
Fees are in a separate area: FeeDashboard, FeeStructuresPage, FeeAssignmentsPage, FeePaymentsPage, FeeExceptionsPage, FeeReportsPage. Use fee-specific hooks (e.g. useFees, useFeeStructures) from the API client; same multi-tenancy rules apply.
useCurrencies({ isActive: true }) — list active currenciesuseFinanceBaseCurrency() — base currency for finance (first base active or first active)['finance-accounts', profile?.organization_id, profile?.default_school_id ?? null, params]profile?.organization_id; school-scoped where applicabletools
Toast notifications for Nazim. Use when showing success/error/info messages. ALWAYS use showToast from @/lib/toast with translation keys; never toast from sonner directly. RTL positioning is automatic.
tools
Enforces status badge patterns for Nazim UI. Use when displaying status in tables, cards, or dialogs. Covers Badge variants, semantic colors, statusBadgeVariant, statusOptions with color.
development
Enforces mobile-first responsive patterns for Nazim UI. Use when building pages, tables, forms, charts, or buttons. Covers page container, FilterPanel, tabs, grids, tables, charts, cards, buttons.
development
PDF and Excel report generation for Nazim. Use when adding or changing reports. Backend uses ReportService and ReportConfig; frontend uses useServerReport. Covers branding, DateConversionService, RTL, acceptance criteria.