Use this checklist before approving a skill MR. It is organized by priority so reviewers can triage quickly.
- Frontmatter has
---delimiters — YAML metadata must be wrapped in---markers for the skill engine to parsename,description, and other fields correctly. -
descriptionis concise (aim for 80–150 words) — The description field is always-in-context and used for agent routing, not as a feature spec. Trigger phrases belong here; detailed routing tables go in the body. - File size is under 500 lines — If the skill exceeds 500 lines, consider a layered architecture (guideline, not a hard gate):
SKILL.md(~300 lines): core workflow, always loadedreferences/cli-commands.md: detailed CLI parameter tablesreferences/edge-cases.md: boundary conditions and error handlingreferences/examples.md: input/output examples
- Standard directory structure — Skills should follow:
SKILL.md(required) — core instructionsscripts/— executable code for deterministic/repetitive tasksreferences/— docs loaded into context as neededassets/— templates, icons, fonts
- Domain variant pattern — Multi-scenario skills should split references per variant, so the agent only loads the relevant one:
skill-name/ ├── SKILL.md (workflow + selection) └── references/ ├── variant-a.md └── variant-b.md
- No phantom tool references — Every MCP tool or CLI command listed must actually exist and be registered. Cross-check against the real tool registry or CLI help output before approving.
- Cross-skill references have fallbacks — If the skill references other skills (e.g.
okx-cex-portfolio,okx-cex-market), note them as optional dependencies and describe fallback behavior when those skills are not installed.
- Confirmation logic is proportional — WRITE operations should require confirmation. However, if the user's original instruction contains complete parameters and clear execution intent, the summary and execution can be merged into one step. Avoid forcing a redundant confirmation round for explicit commands like "buy 100 USDT of BTC".
- Language follows the user — If the user writes in Chinese, respond in Chinese; if in English, respond in English. Do not hardcode confirmation templates or response phrases in a single language.
- Explain why, not just what — Prefer explaining the reasoning behind a rule rather than issuing a bare directive. For example: instead of "ALWAYS use
lendingRatefrom this endpoint", explain thatrateis the market threshold for fund matching andlendingRateis the actual settled yield — so displayingrateas APY misleads the user. - No excessive repetition — Each concept (e.g. "demo mode not supported") should be explained in detail once and briefly referenced elsewhere. Repeating the same warning in three sections adds noise without adding clarity.
- ALWAYS/NEVER used sparingly — Reserve all-caps directives for genuine safety constraints (e.g. live trading guards). For style and formatting preferences, use normal casing and explain the rationale instead.
- Use theory of mind — Write skills that are general, not overfitted to specific examples. Explain the reasoning so the model can generalize to unseen scenarios.