**Never hardcode API keys, tokens, or credentials in any file.**
If your skill involves calling an external API, instruct the agent to read credentials from environment variables. Follow the pattern established by existing skills:
```python
API_KEY = os.getenv("MINIMAX_API_KEY")
if not API_KEY:
raise SystemExit("ERROR: MINIMAX_API_KEY is not set.\n export MINIMAX_API_KEY='your-key'")
```
Your `SKILL.md` should document the required environment variables as a prerequisite. See `frontend-dev/references/env-setup.md` for a good example.
### README Sync
When adding a new skill, update both `README.md` and `README_zh.md` to include your skill in the skill table. Community-submitted skills should set the Source column to `Community`.
## Guidelines
The following are not hard blockers, but PRs that follow these guidelines will be reviewed and merged faster.
### 1. Skill Scope — Avoid Overlap
Before creating a new skill, check existing skills for functional overlap. If your feature could be an extension of an existing skill, prefer extending over creating a new one.
In your PR description, briefly explain how your skill differs from related existing skills. For example, if you are adding a voice synthesis skill, clarify how it relates to the TTS capabilities already in `frontend-dev`.
### 2. File Size Awareness
Skills are loaded into the agent's context window. Every token counts.
- Keep individual `.md` files focused and concise
- If a reference document grows very large, split it into logical parts (see `minimax-docx/references/openxml_encyclopedia_part{1,2,3}.md` for an example)
- Avoid embedding large data blobs (base64 images, full API response dumps) directly in Markdown files
- Prefer linking to external resources over inlining lengthy content
### 3. Script Standards
If your skill includes helper scripts (typically in a `scripts/` directory):
- Include a shebang line (e.g., `#!/usr/bin/env python3`)
- Provide a `requirements.txt` listing all dependencies
- Handle errors gracefully — fail with a clear message rather than a raw traceback
- Document script usage in `SKILL.md` or a reference file
### 4. Language and Encoding
- Skill names and file names: ASCII only, `kebab-case`