ari-trust-levels
Manage ARI's six-level trust system with risk multipliers
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Manage ARI's six-level trust system with risk multipliers
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
Discord slash commands, approval routing, channel policy, button interaction patterns for OpenClaw/ARI Discord integration
Obsidian vault integration patterns — vault-analyzer.ts, /ari-vault-* commands, morning briefing snippet, PARA structure, read-only enforcement
OpenClaw plugin development patterns — hooks, manifest structure, plugin SDK, APEX/CODEX enforcement
NOVA's P1 PayThePryce pipeline — market signal ingest, card detection, price monitoring, script generation, thumbnail generation, video assembly, approval gate
CHASE's P2 Pryceless Solutions pipeline — lead discovery, 5-criteria audit, LLM qualification, Prompt Forge 4-pass lock, demo generation, outreach approval gate
NOVA's thumbnail generation pipeline — Ideogram V3 via Fal.ai (primary) + DALL-E 3 fallback, 4-variant strategy, Pokemon TCG copyright rules,
| name | ari-trust-levels |
| description | Manage ARI's six-level trust system with risk multipliers |
| triggers | ["trust level","risk score","trust assessment","permission check"] |
Manage ARI's six-level trust system that determines risk multipliers and permission boundaries (ADR-005).
| Level | Multiplier | Description | Examples |
|---|---|---|---|
SYSTEM | 0.5x | Internal components | Kernel, EventBus |
OPERATOR | 0.6x | Authenticated operator | CLI commands, Dashboard |
VERIFIED | 0.75x | Verified sources | Known good inputs |
STANDARD | 1.0x | Default | New inputs |
UNTRUSTED | 1.5x | Unverified external | External API responses |
HOSTILE | 2.0x | Known malicious | Flagged sources |
function calculateRisk(
baseRisk: number,
trustLevel: TrustLevel
): number {
const multipliers = {
SYSTEM: 0.5,
OPERATOR: 0.6,
VERIFIED: 0.75,
STANDARD: 1.0,
UNTRUSTED: 1.5,
HOSTILE: 2.0
};
return baseRisk * multipliers[trustLevel];
}
Risk ≥ 0.8 triggers automatic blocking.
if (calculateRisk(baseRisk, trustLevel) >= 0.8) {
eventBus.emit('security:threat_blocked', { risk, source });
throw new SecurityError('Request blocked: risk threshold exceeded');
}
// Internal kernel operations
const kernelMessage = {
content: '...',
trustLevel: 'SYSTEM',
source: 'kernel:sanitizer'
};
// CLI commands from authenticated user
const cliMessage = {
content: command,
trustLevel: 'OPERATOR',
source: 'cli:user'
};
// External input - default trust
const externalMessage = {
content: input,
trustLevel: 'STANDARD',
source: 'gateway:request'
};
// External API response
const apiResponse = {
content: response,
trustLevel: 'UNTRUSTED',
source: 'external:api'
};
async function checkPermission(
agent: string,
tool: string,
trustLevel: TrustLevel
): Promise<boolean> {
// Layer 1: Agent allowlist
if (!isAgentAllowed(agent, tool)) return false;
// Layer 2: Trust level requirement
if (!meetsMinimumTrust(tool, trustLevel)) return false;
// Layer 3: Permission tier
if (!hasPermissionTier(agent, getToolTier(tool))) return false;
return true;
}
| Tier | Trust Required | Tools |
|---|---|---|
| READ | STANDARD | read_file, list_dir |
| WRITE | VERIFIED | write_file, edit_file |
| EXECUTE | OPERATOR | run_command |
| DESTRUCTIVE | SYSTEM | delete_file, system_command |
Trust can only be:
// Never auto-elevate trust
function canElevateTrust(requester: TrustLevel): boolean {
return requester === 'OPERATOR' || requester === 'SYSTEM';
}
All trust decisions are logged:
eventBus.emit('audit:log', {
action: 'trust_decision',
trustLevel,
risk: calculatedRisk,
allowed: riskAllowed,
source
});