📘 Context
A banking AI assistant needs a deterministic AML (Anti-Money Laundering) gate
to decide whether a wire transfer can be AUTHORIZED, ESCALATED, or BLOCKED before
execution.
This policy should act as a pre-execution screening layer for cross-border and
high-value transactions, enforcing FATF and FinCEN-aligned thresholds without
relying on model judgment.
🎯 The Goal
Write an AML transaction screening policy for a banking AI assistant.
Variables you can use:
transaction_amount (Float): USD value of the transaction.
transaction_type (Enum): "DOMESTIC", "CROSS_BORDER", "CRYPTO_OFFRAMP".
sender_kyc_verified (Boolean): Whether sender has completed KYC.
receiver_kyc_verified (Boolean): Whether receiver has completed KYC.
sender_risk_score (Integer): Risk rating 0-100.
receiver_country_sanctioned (Boolean): Whether receiver country is on sanctions list.
pep_match (Boolean): Whether sender or receiver is a Politically Exposed Person.
daily_volume_usd (Float): Sender's cumulative transaction volume that day.
compliance_officer_approved (Boolean): Whether human compliance reviewer signed off.
Requirements:
- BLOCK if
sender_kyc_verified is False.
- BLOCK if
receiver_country_sanctioned is True.
- BLOCK if
transaction_amount > 10000 and transaction_type == "CROSS_BORDER" and compliance_officer_approved is False.
- ESCALATE if
pep_match is True.
- ESCALATE if
transaction_amount > 50000.
- ESCALATE if
sender_risk_score > 75.
- BLOCK if
daily_volume_usd > 100000 and compliance_officer_approved is False.
📚 Resources
- Start here:
docs/getting-started.md
- Check syntax:
quickstart/01_hello_world.csl
- See how examples are structured:
examples/community/
✅ Definition of Done
Submit a PR with: examples/community/finance_aml_screening.csl
📘 Context
A banking AI assistant needs a deterministic AML (Anti-Money Laundering) gate
to decide whether a wire transfer can be AUTHORIZED, ESCALATED, or BLOCKED before
execution.
This policy should act as a pre-execution screening layer for cross-border and
high-value transactions, enforcing FATF and FinCEN-aligned thresholds without
relying on model judgment.
🎯 The Goal
Write an AML transaction screening policy for a banking AI assistant.
Variables you can use:
transaction_amount(Float): USD value of the transaction.transaction_type(Enum): "DOMESTIC", "CROSS_BORDER", "CRYPTO_OFFRAMP".sender_kyc_verified(Boolean): Whether sender has completed KYC.receiver_kyc_verified(Boolean): Whether receiver has completed KYC.sender_risk_score(Integer): Risk rating 0-100.receiver_country_sanctioned(Boolean): Whether receiver country is on sanctions list.pep_match(Boolean): Whether sender or receiver is a Politically Exposed Person.daily_volume_usd(Float): Sender's cumulative transaction volume that day.compliance_officer_approved(Boolean): Whether human compliance reviewer signed off.Requirements:
sender_kyc_verifiedis False.receiver_country_sanctionedis True.transaction_amount > 10000andtransaction_type == "CROSS_BORDER"andcompliance_officer_approvedis False.pep_matchis True.transaction_amount > 50000.sender_risk_score > 75.daily_volume_usd > 100000andcompliance_officer_approvedis False.📚 Resources
docs/getting-started.mdquickstart/01_hello_world.cslexamples/community/✅ Definition of Done
Submit a PR with:
examples/community/finance_aml_screening.csl