.gemini/skills/financial-integrity/SKILL.md
Patterns for provable financial accuracy and invariant testing
npx skillsauth add captjay98/gemini-livestockai Financial IntegrityInstall 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.
In the "Action Era", LivestockAI agents may autonomously propose sales or analyze profit. Trust is our currency. Calculations must be mathematically provable.
All financial storage and calculation must treat money as an integer (minor units) or high-precision decimal.
NEVER use standard generic number floating point math for money.
Database:
DECIMAL(19, 4) for unit prices (allows for precise small-unit costs like feed per gram).
DECIMAL(19, 2) for final transaction amounts (invoices, payments).
TypeScript:
Always use decimal.js via the project's currency utilities.
// ❌ Dangerous
const total = 0.1 + 0.2 // 0.30000000000000004
// ✅ Safe
import { add } from '~/features/settings/currency'
const total = add(0.1, 0.2) // Decimal(0.3)
Use fast-check to prove financial laws hold true for all inputs.
Profit = Revenue - (COGS + Expenses)
test('Profit Invariant', () => {
fc.assert(
fc.property(fc.integer(), fc.integer(), (revenue, cost) => {
const profit = calculateProfit(revenue, cost)
// Profit + Cost must always exactly equal Revenue
return profit.add(cost).equals(revenue)
}),
)
})
When splitting a cost across N batches, the sum of parts must equal the total. Watch out for rounding leftovers.
Pattern: The "Penny Allocate" Algorithm If splitting $100 among 3 batches: Batch 1: $33.33 Batch 2: $33.33 Batch 3: $33.34 (Takes the remainder)
Financial records (invoices, sales, expenses) should be "Append-Only" to the user.
If a mistake is made:
Always store exchangeRate and currencyCode at the time of transaction.
Never calculate historical value using current exchange rates.
financial-calculations - The specific library calls implementationproperty-testing - The value verification methoddata-ai
Input validation patterns with Zod in LivestockAI server functions
testing
Unit testing patterns with Vitest in LivestockAI
tools
Server → Service → Repository pattern for feature organization
data-ai
Server-side rendering and server functions with TanStack Start in LivestockAI