= "finance-eu"
= "1.0.0"
= "EU financial services: strict redaction plus IBAN/card/VAT patterns, no web fetches, 1-year audit expectation"
= "strict-redaction"
[]
# Web fetches are an exfiltration sink for regulated codebases; shell output
# compression still works, raw passthrough is reviewed case by case.
= ["ctx_url_read"]
= 12000
= 365
[]
# IBAN (two letters, two check digits, 11-30 alphanumerics).
= '\b[A-Z]{2}\d{2}[A-Z0-9]{11,30}\b'
# Payment card numbers (13-19 digits, optionally space/dash grouped).
= '\b\d{4}[ -]?\d{4}[ -]?\d{4}[ -]?\d{1,7}\b'
# EU VAT identifiers (country prefix + 8-12 chars).
= '\b(ATU|BE0|BG|CY|CZ|DE|DK|EE|EL|ES|FI|FR|HR|HU|IE|IT|LT|LU|LV|MT|NL|PL|PT|RO|SE|SI|SK)[0-9A-Z]{8,12}\b'
# SWIFT/BIC codes in payment contexts.
= '\b[A-Z]{4}(AT|BE|BG|CH|CY|CZ|DE|DK|EE|ES|FI|FR|GB|GR|HR|HU|IE|IT|LI|LT|LU|LV|MT|NL|NO|PL|PT|RO|SE|SI|SK)[A-Z0-9]{2}([A-Z0-9]{3})?\b'
[]
# Inbound DLP (GL #675): scrub personal data from tool output before it reaches
# the model; treat prompt-injection in fetched/searched content as an integrity
# attack and refuse it (DORA/GDPR data-minimisation posture).
= "redact"
= "block"
[]
# Output DLP (GL #676): the agent must never write or run anything carrying a
# detected secret or personal identifier (e.g. an IBAN pasted into a commit or a
# `psql` one-liner), and its write/action rate is bounded.
= true
= 120