How action_risk connects to autonomy
Every skill declares anaction_risk level in its manifest. This field establishes the minimum autonomy score at which that skill can be invoked.
| action_risk value | Minimum score | Skill examples |
|---|---|---|
none | 0 | Web search, reading email, summarizing content |
low | 60 | Writing to memory, updating contacts |
medium | 70 | Sending email, sending Signal messages |
high | 80 | Creating calendar events, making commitments on your behalf |
critical | 90 | Financial actions, bulk deletions, irreversible operations |
Hard execution gates
The execution layer enforcesaction_risk thresholds at invocation time — not just through prompt guidance, but as a hard gate in the runtime. When the live autonomy score is below a skill’s declared floor, the skill is blocked before it runs.
A blocked invocation:
- Emits an
autonomy.skill_blockedaudit event (skill name, required score, actual score) - Returns an advisory failure to the coordinator describing what score is needed
- Triggers an approval request so you can decide whether to allow the specific action
OutboundGateway.send() has an independent gate: direct sends are blocked when the score is below 70. Drafts are always available as the fallback — Curia can still compose and save a draft even when it cannot send.
CEO-bound and system messages are exempt from the outbound gate. Messages addressed to you (the CEO) and internal infrastructure notifications (such as approval request alerts) bypass the autonomy gate at the gateway level. The gate governs autonomous communication with external parties — gating agent-to-principal messages would cause Curia to go silent at low scores and prevent it from delivering the very notifications you need to act on blocked requests. All other checks (content filter, PII redaction, blocked-contact) still apply.
Principal bypass
When you send a direct instruction to Curia (via Signal, email, CLI, or any channel), the task is marked as principal-originated. Both execution gates — theaction_risk floor check and the outbound send gate — are skipped for the duration of that task.
The rationale: the autonomy score governs autonomous behavior (scheduled jobs, agent-initiated actions). When you explicitly tell Curia to do something, you are the authorization. A low autonomy score should not prevent you from issuing a direct command.
This bypass applies only to tasks that trace back to a message from you. Scheduled jobs, agent-to-agent delegations, and other autonomous work are still subject to the full gate logic regardless of autonomy score.
The bypass is logged at every invocation — you can see principal-originated gate skips in the audit log.
Approval requests
When a skill is blocked by a hard gate, Curia does not silently fail. Instead, it creates an approval request and notifies you so you can decide whether to allow the specific action. See Approval workflow for the full picture — how requests are created, how to approve or deny them, and how the lifecycle (expiry, daily digest) works.Score history
Every change to the autonomy score is written to an append-only history record in Postgres. No entry is ever updated or deleted. The history records:- The new score and band
- The previous score
- Who made the change (
ceoorsystemfor automatic adjustments) - An optional reason you provided
- The timestamp
get-autonomy skill also surfaces the trend direction (improving / declining / stable), lastSetBy, and the count of scored actions.
Automatic score adjustment
The autonomy scoring pass runs as part of the dream engine and evaluates Curia’s recent actions to nudge the score based on performance:- Competence (45%) — task success rate, accuracy of information retrieved, follow-through on commitments
- Commitment (35%) — reliability on recurring tasks, consistency with stated preferences
- Compatibility (20%) — alignment with your communication style and decision patterns
Approval workflow
How blocked actions become approval requests, and how to act on them.
Audit & logging
The append-only audit trail that records all system actions.