Skill Creator
Workflow
-
Establish the contract.
- Read the existing skill and its resources, or collect concrete requests for a new skill.
- Separate actual workflow branches from synonyms for the same branch.
- Done when: every branch has a concrete trigger, expected outcome, and persistence target.
-
Choose invocation.
- Model-discoverable: write a model-facing
description; omitdisable-model-invocation. - Manual-only: set
disable-model-invocation: true; write a human-facing summary. - Direct tool command: add
command-dispatch: tool,command-tool, andcommand-arg-modeonly when the command bypasses the model. - Done when: frontmatter matches how the skill will actually be reached.
- Model-discoverable: write a model-facing
-
Structure the skill.
- Map shared ordered procedure to
SKILL.md; end every step with a checkable completion criterion and finish with verification. - Keep routing conditions in
description; start the body with execution. - Map branch-only detail to
references/, deterministic helpers toscripts/, output resources toassets/, and optional UI metadata toagents/. - Done when: every planned resource has one purpose and a direct pointer from
SKILL.md.
- Map shared ordered procedure to
-
Draft and persist.
- Live workspace skill: use
skill_workshopto create or revise a pending proposal; keep live files unchanged until apply. - Repository-owned skill source: use the repository's normal edit and review workflow.
- Done when: the proposal or source diff implements every branch from step 1 and contains every resource from step 3.
- Live workspace skill: use
-
Validate.
- Run
python {baseDir}/scripts/quick_validate.py <skill-directory>and execute every touched helper's focused test. - Done when: frontmatter passes, resource pointers resolve, and every touched helper passes its focused test.
- Run
Frontmatter
Required: name, description.
OpenClaw also supports metadata, homepage, license, allowed-tools, user-invocable, disable-model-invocation, command-dispatch, command-tool, and command-arg-mode. Add optional fields only when they change runtime behavior or discovery.