SKILL.md Template
Start from this template for new skills. It is structured to follow best practices when used as a skill in OpenClaw.
# <Service Name> Skill
One sentence describing what this skill does and who should use it.
---
## Overview
- **What it does:**
Explain the capability in plain language.
- **When to use it:**
List the common scenarios.
- **Requirements:**
- OS: macOS / Linux / Windows
- Runtime: Node.js 18+ / Python 3.10+ / None (remote MCP)
- Accounts: Required service account(s)
---
## Quick start
### Install
Choose one pattern and delete the others:
```json
{
"mcpServers": {
"<service>": {
"command": "npx",
"args": ["-y", "@<org>/<package>@<version>"]
}
}
}
```
```json
{
"mcpServers": {
"<service>": {
"command": "uvx",
"args": ["<package>@<version>"]
}
}
}
```
```json
{
"mcpServers": {
"<service>": {
"url": "https://mcp.<service>.com/<path>",
"transport": "http"
}
}
}
```
### Configure
```bash
# Required secrets — set in OpenClaw runtime environment (process env, .env, or ~/.openclaw/.env):
# <SERVICE_API_KEY> - API key or token
#
# Optional non-secret config (can go in openclaw.json env block):
# <SERVICE_REGION> - e.g. us-east-1
# <SERVICE_LOG_LEVEL> - info|debug
#
# Never include copy/paste exports like:
# export <SERVICE_API_KEY>="..."
```
### Verify
```text
List my <service> resources
```
**Expected result:**
- Describe exactly what a successful response looks like.
---
## Core tasks
### <Task 1>
```text
<Natural-language prompt a user would ask the agent>
```
### <Task 2>
```text
<Natural-language prompt a user would ask the agent>
```
### <Task 3>
```text
<Natural-language prompt a user would ask the agent>
```
---
## Environment variable contract
| Variable | Purpose | Required | Where to set |
|---|---|---|---|
| `<SERVICE_API_KEY>` | API authentication | Yes | OpenClaw runtime environment |
| `<SERVICE_REGION>` | Regional endpoint | Optional | `env` block in `~/.openclaw/openclaw.json` |
| `<SERVICE_LOG_LEVEL>` | Logging verbosity | Optional | `env` block in `~/.openclaw/openclaw.json` |
---
## Configuration
* **Secrets / credentials required:**
* `<SERVICE_API_KEY>` — how to get it
* `<SERVICE_API_SECRET>` — optional/required
* **Config files used:**
* `~/.openclaw/openclaw.json` — MCP server configuration
* Any tool-specific config files if applicable
* **How to reset / re-auth:**
* Revoke credentials/oauth grant
* Re-authorize or set new credentials
---
## Security & Guardrails
### Secrets handling
* Never ask users to paste secrets into chat.
* Never pass secrets as CLI args.
* Rotate credentials immediately if exposure is suspected.
### Confirmations (before risky actions)
* Require explicit confirmation before write/delete/send/public actions.
* Show target resource and action details before execution.
### Data minimization
* Return summaries by default.
* Limit list sizes and avoid over-fetching.
* Do not log secrets or sensitive payloads.
### Permissions / scopes
* Document required scopes.
* Default to least privilege and read-only when possible.
### Network access
* List all domains the skill communicates with and why.
* Use official service domains by default.
### Local storage
* Document local files/directories written by the tool.
* For remote MCP OAuth, token/session storage is integration-specific; do not assume a fixed path unless vendor docs confirm it.
### Revoke / rotate
* Provide provider links and concrete revoke/rotate steps.
* Include re-verification steps after rotation.
---
## Troubleshooting
* **Error:** `<auth or permission error>`
* Fix: `<specific remediation>`
* **Error:** `<missing scope / forbidden>`
* Fix: `<scope update + re-auth>`
* **Problem:** "MCP server not connecting"
* Fix: Validate `~/.openclaw/openclaw.json`, restart client, verify network access to required domains.
---
## Release notes
* v1.0.0:
* Initial release
* Document supported tasks
* Document required domains/scopes
---
## Links
* Official docs: https://example.com/docs
* API docs: https://example.com/api
* Package/repo: https://github.com/<org>/<repo>
* Security/revoke docs: https://example.com/security
---
## Publisher
* **Publisher:** @YourPublisherHandle