Skill Workshop is OpenClaw’s governed path for creating and updating workspace skills. Agents and operators do not write activeDocumentation Index
Fetch the complete documentation index at: https://docs2.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
SKILL.md files directly through this
path. They create a proposal first. A proposal is a pending draft containing
the proposed skill content, target binding, scanner state, hashes, support-file
metadata, and rollback metadata. It becomes a live skill only when applied.
Skill Workshop writes workspace skills only. It does not mutate bundled,
plugin, ClawHub, extra-root, managed, personal-agent, or system skills.
How it works
- Proposal first: generated skill content is stored as
PROPOSAL.md, notSKILL.md. - Apply is the only live write: create, update, and revise do not change active skills.
- Workspace scoped: creates target the workspace
skills/root. Updates are allowed only for writable workspace skills. - No clobber: create fails if the target skill already exists.
- Hash bound: update proposals bind to the current target hash and become stale if the live skill changes before apply.
- Scanner gated: apply reruns scanning before writing.
- Recoverable: apply writes rollback metadata before changing live files.
- Consistent surfaces: chat, CLI, and Gateway all call the same Skill Workshop service.
Lifecycle
pending proposals can be revised, applied, rejected, or quarantined.
Chat
Ask the agent for the skill you want. The agent callsskill_workshop and
returns a proposal id.
Create:
apply, reject, and quarantine show an
approval prompt before they run. Set skills.workshop.approvalPolicy to
"auto" to skip the prompt for trusted environments.
CLI
Create a new skill proposal:Proposal content
While pending, the proposal is stored asPROPOSAL.md with proposal-only
frontmatter:
SKILL.md and removes proposal-only
fields: status, proposal version, and proposal date.
Support files
Use--proposal-dir when the proposed skill needs files beside PROPOSAL.md:
PROPOSAL.md. Support files must be under:
assets/examples/references/scripts/templates/
SKILL.md only on apply.
Rejected support-file paths include absolute paths, hidden path segments, path
traversal, overlapping paths, executable files from proposal directories,
non-UTF-8 text, null bytes, and files outside the standard support folders.
Agent tool
The model usesskill_workshop:
skill_workshop for generated skill work. They must not create
or change proposal files through write, edit, exec, shell commands, or
direct filesystem operations.
Approval and autonomy
autonomous.enabled: allows OpenClaw to create pending proposals from durable conversation signals after successful turns. Default:false.approvalPolicy: "pending": requires an approval prompt before agent-initiatedapply,reject, orquarantine.approvalPolicy: "auto": skips that approval prompt. The agent must still call the action.maxPending: caps pending and quarantined proposals per workspace.maxSkillBytes: caps proposal body size. Default:40000.
Gateway methods
operator.read. Mutating methods require
operator.admin.
Storage
~/.openclaw.
proposal.json: canonical proposal record.proposals.json: fast listing index, rebuildable from proposal folders.PROPOSAL.md: pending skill proposal.rollback.json: recovery metadata written before apply changes live files.
Limits
- Description: 160 bytes.
- Proposal body:
skills.workshop.maxSkillBytes(default 40,000). - Support files: 64 per proposal.
- Support file size: 256 KB each, 2 MB total.
- Pending and quarantined proposals:
skills.workshop.maxPendingper workspace (default 50).
Troubleshooting
| Problem | Resolution |
|---|---|
Skill proposal description is too large | Shorten description to 160 bytes or less. |
Skill proposal content is too large | Shorten the proposal body or raise skills.workshop.maxSkillBytes. |
Target skill changed after proposal creation | Revise the proposal against the current target, or create a new proposal. |
Proposal scan failed | Inspect scanner findings, then revise or quarantine the proposal. |
Support file paths must be under one of... | Move support files under assets/, examples/, references/, scripts/, or templates/. |
| Proposal does not show in list | Check the selected --agent workspace and OPENCLAW_STATE_DIR. |
Related
- Skills for load order, precedence, and visibility
- Creating skills for hand-written
SKILL.mdbasics - Skills config for the full
skills.workshopschema - Skills CLI for
openclaw skillscommands