i am on version 2026.4.20; I want to create a custom skill in OpenClaw for a repetitive operational task — upgrading OpenClaw itself (pull latest image, rebuild container, pin source clone, verify plugins and cron jobs). Two consumers will use it: me via Claude Code interactively, and a Ditto agent (HostOps role) autonomously later.
A few things I'd like to understand before I draft it:
What is the structure of a custom skill — is it a markdown file, a config block in openclaw.json, or something else? Where does it live in the workspace?
Can a skill include both a checklist/procedure (steps to follow) and verification criteria (what a successful upgrade looks like)?
Can an agent reference a skill explicitly by name in its instructions, or does the skill get injected automatically based on context?
Are there any constraints I should know about — file size, frontmatter format, tool access declarations, etc.?