Mallcop can't be bribed

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

EXTERNAL - Untrusted
Azure API
GitHub API
M365 API
AWS API
Vercel API
Container Logs
Supabase API
OpenClaw
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, every finding, every decision. Written down and versioned. No hidden state. No opaque database.

# 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 yourself. That's the whole point.

Don't trust mallcop. Read the code.

Mallcop is Apache 2.0. The cleaning logic, the airlock boundaries, the AI runtime, the tool permissions. All on GitHub. Read the playbooks that tell the AI how to think. Inspect the schema validation. Verify that permissions are enforced in code, not just documented.

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

View on GitHub → Get Started