Skip to main content

Financial compliance documentation linter. Accepts PDF, Word, Markdown. Vale rules + Python CLI for BSA/AML, SOX, PCI-DSS, GLBA, NCUA.

Project description

Comply — Financial Compliance Documentation Linter

The first open-source linting package for financial compliance documentation. Built on Vale.

The Problem

Credit unions and community banks maintain 200-500 compliance documents with 0-1 dedicated compliance staff. When regulators examine these documents, vague language, missing sections, inconsistent terminology, and outdated references are findings that lead to enforcement actions. No tool currently checks compliance documents for these issues before the examiner does.

What Comply Does

Comply is a Vale style package (FinCompliance) that catches compliance documentation issues deterministically:

  • Missing required elements — Does your BSA/AML policy address all five pillars?
  • Weak commitment language — "We will endeavor to comply" is not compliance
  • Vague regulatory references — "Per applicable regulations" fails examiner scrutiny
  • Prohibited phrases — "TBD", "under development", "budget permitting" in a compliance doc is a finding
  • Informal terminology — "customer info" instead of "customer information"
  • Inconsistent date formats — MM/DD/YY when your standard is YYYY-MM-DD
  • Abbreviation consistency — Expand on first use, abbreviate thereafter

Quick Start

# Install Vale
brew install vale  # macOS
# or: https://vale.sh/docs/vale-cli/installation/

# Clone this repo
git clone https://github.com/BipinRimal314/comply.git
cd comply

# Lint your compliance document
vale --config=.vale.ini path/to/your/bsa-policy.md

Supported Regulations

Regulation Rules Status
Common (cross-regulation) 11 rules Available
BSA/AML (Bank Secrecy Act / Anti-Money Laundering) 2 rules + CLI checks Available
SOX (Sarbanes-Oxley) 2 rules Available
PCI-DSS (Payment Card Industry) 2 rules Available
GLBA (Gramm-Leach-Bliley) 1 rule Available
NCUA (Credit Union specific) 1 rule Available

Example Output

tests/fail/weak-bsa-policy.md

 3:64   error    Risky language in BSA/AML document: 'when resources
                 permit'. Examiners interpret this as non-compliance.
 5:20   error    Risky language in BSA/AML document: 'under development'.
 5:42   error    Risky language in BSA/AML document: 'we plan to implement'.
 9:22   warning  Vague regulatory reference: 'per applicable regulations'.
                 Include specific section/part numbers.
 19:11  warning  Date format appears inconsistent. Use YYYY-MM-DD or
                 Month DD, YYYY consistently.

✖ 9 errors, 15 warnings and 2 suggestions in 1 file.

Architecture

Phase 1 (current): Pure Vale rules. Deterministic. No AI. No API keys. Runs offline.

Phase 2: CLI wrapper with document format conversion (PDF/Word → Markdown via MarkItDown).

Phase 3: AI augmentation via Claude API for substantive adequacy checks, cross-document consistency, and regulatory change impact analysis.

Phase 4: Regulatory change tracking. When a regulation updates, automatically identify which internal documents need revision.

Regulatory Requirements Library

regulatory-requirements/ contains machine-readable YAML definitions of regulatory requirements. This is the first open-source equivalent of NIST OSCAL for financial regulations. Currently covers BSA/AML (31 CFR Chapter X).

Contributing

We need help with:

  • Additional regulation rule packages (SOX, PCI-DSS, GLBA)
  • Testing against real compliance documents
  • Regulatory requirements YAML for additional frameworks
  • False positive reduction

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fincompliance-0.8.0.tar.gz (495.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fincompliance-0.8.0-py3-none-any.whl (93.2 kB view details)

Uploaded Python 3

File details

Details for the file fincompliance-0.8.0.tar.gz.

File metadata

  • Download URL: fincompliance-0.8.0.tar.gz
  • Upload date:
  • Size: 495.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for fincompliance-0.8.0.tar.gz
Algorithm Hash digest
SHA256 3d7f97a77bd43b5a11738ba6b6e02d6ce7e84d4837177bddd1fec202fdabec88
MD5 3d60837e6ef8df74d93f1fd31f283b22
BLAKE2b-256 dfc70442c736a4c5223305158b6bcb2a735f0f8a008575f06103b8bde35c5a71

See more details on using hashes here.

File details

Details for the file fincompliance-0.8.0-py3-none-any.whl.

File metadata

  • Download URL: fincompliance-0.8.0-py3-none-any.whl
  • Upload date:
  • Size: 93.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for fincompliance-0.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5380a8010e173ecac1a2a3b58d45ca137c9ec166db838dd484ba6012c08eebe6
MD5 c1aaeb2fad1ab2e7d8c5637d0f81ba11
BLAKE2b-256 e1485dac45d6cea34195ecd66b13b9e0842c94d854822337b6e85339a3b4469f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page