Required. The minimum autonomy score required to invoke this skill without explicit CEO approval. Curia will not start if any skill omits this field.
Label
Minimum score
Use for
none
0
Read-only operations with no side effects — web search, reading email, summarizing
low
60
Internal state writes — memory, contacts, configuration
medium
70
Outbound communications — sending email, Signal messages
high
80
Calendar writes, commitments on behalf of the CEO
critical
90
Financial, destructive, or irreversible operations
A raw number (0–100) can be used for precision (e.g., 75 for a skill that should unlock just above “approval required” but below “spot-check”). Numbers outside [0, 100] produce a validation error at load time.
Array of environment variable names this skill needs access to via ctx.secret(). Only secrets declared here are accessible — the skill cannot read arbitrary environment variables.
Declares which privileged services this skill needs from the execution layer. Only known capability names are accepted — the loader validates against a fixed allowlist at startup and rejects unknown names.
Capability
Service provided
bus
Event bus access
agentRegistry
Agent registry for delegation
outboundGateway
Outbound message delivery (email, Signal)
heldMessages
Held message service
schedulerService
Job scheduling
entityMemory
Knowledge graph read/write
nylasCalendarClient
Calendar operations via Nylas
autonomyService
Autonomy score management
executiveProfileService
CEO writing voice profile
browserService
Playwright browser for web interaction
bullpenService
Inter-agent discussion threads
skillSearch
Search the skill registry
Services not listed here (contactService, entityContextAssembler, agentPersona) are universal — available to every skill without declaration.
Optional. When declared, the execution layer automatically assembles entity context before invoking the skill handler, injecting it into ctx.entityContext.
Field
Description
param
The input key containing contact/entity IDs to enrich
default
What to use when the input is not provided: "caller" (the message sender) or "agent" (the agent’s own contact)