Domain packsLive
Checks that know your domain, backed by tests.
Generic review misses domain mistakes: VAT applied twice, a migration that locks a hot table, a query that forgets the tenant. Packs combine deterministic checks with a focused prompt, and each ships with seeded test cases.
VAT applied twice on discounted lines
const gross = applyVat(applyVat(net - discount));
Discounted lines are taxed at 20% twice: 1,000p becomes 1,440p.
How it works
Step by step.
Money, migrations, tenancy, PII and architecture checks.
- 01EnableTurn packs on per organisation, repo or path in Policies.
- 02CheckDeterministic checks run first: cheap, exact and repeatable.
- 03FocusA focused prompt reads the matching code with the pack's rules in mind.
- 04TagFindings carry the pack name, so you can filter and measure them.
In detail
What it does, exactly.
- Each pack is tested against seeded examples, so its behaviour is known before it reads your code.
- Packs are scoped by path, so the money rules read the billing code, not the docs.
- On GitHub
- Findings tagged with their pack
- In the dashboard
- Policies: packs per org, repo and path
money
Integer pence, VAT once per band, rounding rules.
migrations
Lock safety, batching, CONCURRENTLY, and a way back.
tenancy-auth
Tenant scoping, IDOR, and auth applied where routes are mounted.
pii
Personal data in logs and responses, retention, GDPR deletion.
architecture
Your layering rules, from .forseti/architecture.yml.
Your own packs
A name plus plain-English rules, stored with your team's learnings.
Put Forseti on your next pull request.
Connect GitHub in four clicks. Your first review starts by itself on your latest small open PR, priced before it runs.