This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
A collection of OpenClaw skills following the AgentSkills spec. Each skill is a self-contained directory that teaches the OpenClaw agent how to perform a specific domain task.
skills/<skill-name>/
├── SKILL.md # Required — YAML frontmatter (name, description) + markdown instructions
├── scripts/ # Optional — executable code for deterministic reliability
├── references/ # Optional — documentation loaded into context as needed
└── assets/ # Optional — files used in output (templates, icons, etc.)
Key design rules:
- SKILL.md frontmatter
descriptionis the primary trigger — it determines when the agent activates the skill. Put all "when to use" info here, not in the body. - Body < 500 lines — move detailed reference material into
references/files and link from SKILL.md. - Progressive disclosure — metadata always loaded (~100 words), body loaded on trigger (<5k words), references loaded as needed.
- Scripts auto-re-exec under venv — if a
.venv/bin/python3exists relative to the skill dir, scripts re-exec themselves under it automatically (shebang can't use~).
After modifying any skill, rebuild its tar.gz archive:
rm -f skills-tars/<skill-name>.tar.gz
tar czf skills-tars/<skill-name>.tar.gz \
--exclude='__pycache__' --exclude='*.pyc' --exclude='*.pyo' \
--exclude='.venv' --exclude='*.swp' --exclude='*.swo' \
-C skills <skill-name>Verify: tar tzf skills-tars/<skill-name>.tar.gz
Skills that require external API credentials should:
- Never ask the user to manually edit files
- Collect credential values in chat and write the file programmatically
- Provide a
check-credscript command to verify credential status - Include setup/update/delete flows in
references/config.md - When credentials are missing, print
[SETUP NEEDED]with a brief explanation pointing the agent to the reference doc
Skills that deal with dates/times should:
- Read timezone from a config file (e.g.
google-config.json), not hardcode it - During initial setup, ask the user for their timezone — provide a default (e.g.
Asia/Dubai) - Provide a
show-configscript command to display current timezone - Support changing timezone without re-entering credentials
- Always respond in Chinese-simplified
- Code, scripts, and documents must be written in English