3 KiB
3 KiB
Vault Action TOML Schema
This document defines the schema for vault action TOML files used in the PR-based approval workflow (issue #74).
File Location
Vault actions are stored in vault/actions/<action-id>.toml on the ops repo.
Schema Definition
# Required
id = "publish-skill-20260331"
formula = "clawhub-publish"
context = "SKILL.md bumped to 0.3.0"
# Required secrets to inject
secrets = ["CLAWHUB_TOKEN"]
# Optional
model = "sonnet"
tools = ["clawhub"]
timeout_minutes = 30
blast_radius = "low" # optional: overrides policy.toml tier ("low"|"medium"|"high")
Field Specifications
Required Fields
| Field | Type | Description |
|---|---|---|
id |
string | Unique identifier for the vault action. Format: <action-type>-<date> (e.g., publish-skill-20260331) |
formula |
string | Formula name from formulas/ directory that defines the operational task to execute |
context |
string | Human-readable explanation of why this action is needed. Used in PR description |
secrets |
array of strings | List of secret names to inject into the execution environment. Only these secrets are passed to the container |
Optional Fields
| Field | Type | Default | Description |
|---|---|---|---|
model |
string | sonnet |
Override the default Claude model for this action |
tools |
array of strings | [] |
MCP tools to enable during execution |
timeout_minutes |
integer | 60 |
Maximum execution time in minutes |
blast_radius |
string | (from policy.toml) | Override blast-radius tier for this invocation. Valid values: "low", "medium", "high". See docs/BLAST-RADIUS.md |
Secret Names
Secret names must be defined in .env.vault.enc on the ops repo. The vault validates that requested secrets exist in the allowlist before execution.
Common secret names:
CLAWHUB_TOKEN- Token for ClawHub skill publishingGITHUB_TOKEN- GitHub API token for repository operationsDEPLOY_KEY- Infrastructure deployment key
Validation Rules
- Required fields:
id,formula,context, andsecretsmust be present - Formula validation: The formula must exist in the
formulas/directory - Secret validation: All secrets in the
secretsarray must be in the allowlist - No unknown fields: The TOML must not contain fields outside the schema
- ID uniqueness: The
idmust be unique across all vault actions
Example Files
See vault/examples/ for complete examples:
webhook-call.toml- Example of calling an external webhookpromote.toml- Example of promoting a build/artifactpublish.toml- Example of publishing a skill to ClawHub
Usage
Validate a vault action file:
./vault/validate.sh vault/actions/<action-id>.toml
The validator will check:
- All required fields are present
- Secret names are in the allowlist
- No unknown fields are present
- Formula exists in the formulas directory