Mallcop can't be bribed

External data passes through two airlocks before the AI ever sees it.

EXTERNAL - Untrusted
GitHub API
Event files (JSONL)
AWS / Azure / GCP
M365 / Okta
Cloud sources ship via the mallcop-connectors repo
AIRLOCK 1
Connectors
sanitize normalize cap lengths wrap markers
Structured Events
JSONL, git-tracked
AIRLOCK 2
Detectors
rule-based no LLM baseline compare
INTERNAL - Trusted
Findings (JSONL, git-tracked)
AI Agents
sees findings only
2 derivations removed from raw data
tool results re-sanitized
output schema-validated
hard policy limits enforced

The AI never reads the raw mail. It reads mallcop's notes, two derivations removed from the source. Outside data gets wrapped in markers that say "this is evidence, not instructions." When the AI asks for more info, those results get cleaned again on the way back. Its conclusions get schema-validated before anything happens.

What mallcop sees vs. what the AI sees

Data Type Mallcop Sees The AI Sees
Raw API responses Yes - full JSON Never
Usernames / emails Yes - sanitized, length-capped Wrapped in [USER_DATA] markers
Commit messages Yes - sanitized, length-capped Only if referenced in a finding
API keys / secrets Never stored Never
Event metadata Yes - structured Re-sanitized via tool results
Raw response body Stored in raw field raw field not exposed

Mallcop's logbook

Every patrol, finding, and decision is written to git and versioned. There is no hidden state, and no separate database you have to take on faith.

# When events were ingested
$ git log events/

# When findings were created, resolved, acknowledged
$ git log findings.jsonl

# What changed between runs
$ git diff findings.jsonl

# How "normal" evolved over time
$ git log baseline/

Fork the logbook and audit mallcop's decisions yourself.

Don't trust mallcop. Read the code.

Mallcop is MIT-licensed, and all of it is on GitHub: the cleaning logic, the airlock boundaries, the AI runtime, and the tool permissions. Read the playbooks that tell the AI how to think, inspect the schema validation, and confirm that permissions are enforced in code rather than just documented.

Not "trust us." "Check our work."

View on GitHub → Get Started