skill.toml
[meta]name = "code-reviewer" # required; the slug. lowercase, digits, '-'version = "0.1.0" # dotted integers; installs are keyed by itdescription = "..." # shown in the catalog, the console, and to the parenttags = ["code", "review"]
[runtime]model_hint = "small" # small | deep | auto (which model slot to use)tools = ["list_files", "read_file", "search"] # @tool names from tools/, or built-ins: list_files, # read_file, search, write_file, executerequire_tool = "read_file" # optional; see Guardrailsmax_steps = 10 # model calls per message, 1..50 (default 6)
[budget]tokens = 30000 # per message (default 20000, min 100)wall_seconds = 180 # per message (default 300)
[secrets]required = ["TRACKER_TOKEN"] # tenant must set these before a run can start
# optional: make the final answer a validated JSON object[response_schema]type = "object"required = ["reply"][response_schema.properties.reply]type = "string"Optional files next to skill.toml:
config_schema.json: the per-tenant settings schema. Use a different file name with[install] config_schema = "settings.json".examples.md: appended to the rendered prompt (few-shot examples).
Loading a bundle fails with a clear error if:
- a tool in
runtime.toolsis neither a built-in nor defined intools/ require_toolisn’t inruntime.toolsconfig_schema.jsonis not valid JSON Schema (draft 2020-12)prompt.mdreferences{{config.x}}wherexisn’t in the schema
Other sections in the file ([requires], [output], [graph], [triggers]) are accepted for compatibility with plnt’s older skill format and are not used by the platform runtime.