An open API service indexing awesome lists of open source software.

https://github.com/asmuelle/incompliance-radar

AI-powered platform for tracking global compliance monitorships, DPAs, and NPAs
https://github.com/asmuelle/incompliance-radar

Last synced: 1 day ago
JSON representation

AI-powered platform for tracking global compliance monitorships, DPAs, and NPAs

Awesome Lists containing this project

README

          

# incomplianceRadar

AI-powered platform for tracking global compliance monitorships, Deferred
Prosecution Agreements (DPAs) and Non-Prosecution Agreements (NPAs). See
[`spec.md`](spec.md) for the full product concept.

Full-stack Rust: [Leptos](https://leptos.dev) (SSR + WASM) on
[Axum](https://github.com/tokio-rs/axum). LLM access is pluggable — run
entirely against a local model via [Ollama](https://ollama.com), or point it
at a frontier model (Anthropic).

Project docs: **[asmuelle.github.io/incompliance-radar](https://asmuelle.github.io/incompliance-radar/)**

## Status

Early-stage scaffold: a working full-stack app with SQLite-backed persistence
(seeded with fictional demo data on first run), a live LLM query panel, an
LLM-based extraction pipeline, a crawler that pulls real press releases from
the SEC and FCA and feeds them through it automatically, search/filtering by
industry, jurisdiction, violation type, and law firm/monitor, global
watch-rule alerts (industry/competitor watch — not per-user, this app has no
auth system), and a trend/benchmark dashboard (case and violation counts,
monitorship rate by industry, total sanctions by currency). See
[`CLAUDE.md`](CLAUDE.md) for the current architecture and what's next.

## Getting started

Prerequisites (or run `just install-tools` if you have
[`just`](https://github.com/casey/just) installed):

```bash
rustup target add wasm32-unknown-unknown
cargo install cargo-leptos
cargo install wasm-bindgen-cli --version
```

Run with a local model (default, requires [Ollama](https://ollama.com) running):

```bash
ollama pull llama3.1 # or any model you have; set OLLAMA_MODEL to match
cp .env.example .env
just watch # or: cargo leptos watch
```

Open http://127.0.0.1:3000.

To use a frontier model instead, set in `.env`:

```bash
LLM_BACKEND=anthropic
ANTHROPIC_API_KEY=sk-...
```

## Running the crawler

One pass across the configured regulator sources (SEC, FCA), extracting and
persisting any enforcement actions found:

```bash
just crawl # or: cargo run -p crawler --bin crawl
```

Not scheduled — invoke it periodically yourself (cron, a systemd timer, ...).
See [`CLAUDE.md`](CLAUDE.md) for connector details, rate-limit behavior, and
why there's no DoJ connector.

## Workspace layout

```
crates/domain/ Core compliance domain types (wasm-safe)
crates/llm/ LLM provider abstraction (Ollama + Anthropic)
crates/db/ Persistence (CaseRepository + AlertRepository traits, SQLite)
crates/extraction/ LLM-based structured extraction from raw filing text
crates/crawler/ Scheduled fetch jobs (SEC + FCA) feeding extraction
web/app/ Shared Leptos UI + server functions
web/frontend/ Wasm hydration entry point
web/server/ Axum server binary
docs/ GitHub Pages source (mdBook)
```

## Development

```bash
just --list # all available recipes
just test
just fmt
just clippy
just ci # everything CI runs, in the same order — catch failures before pushing
```

Equivalent raw `cargo` commands are in the `justfile` and in
[`CLAUDE.md`](CLAUDE.md) if you'd rather not install `just`.

## License

[MIT](LICENSE)