Files
openclaudia__openclaudia-sk…/CONTRIBUTING.md
T
Quanlai Li b9ebf27f1f Document allowed-tools field, fix CLI double-clone, add descriptions to list
- Document allowed-tools YAML frontmatter field in CONTRIBUTING.md
- Fix install --all cloning repo twice (now clones once and reuses)
- Show skill descriptions from YAML frontmatter in list command
- Delete merged skill/linkedin-ads branch

Closes #3, #4, #5, #6

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 17:14:01 -08:00

122 lines
4.1 KiB
Markdown

# Contributing to OpenClaudia
Thanks for your interest in contributing! OpenClaudia is an open-source marketing toolkit for AI coding agents, and we welcome contributions of all kinds.
## Ways to Contribute
- **New skills** — add a marketing skill that solves a real problem
- **Bug fixes** — fix issues in existing skills
- **Documentation** — improve README, skill descriptions, or examples
- **API integrations** — connect skills to new marketing APIs
- **Translations** — help make skills work in more languages
## Creating a New Skill
### 1. Pick a skill idea
Check [open issues](https://github.com/OpenClaudia/openclaudia-skills/issues) for requested skills, or propose your own. If you're unsure whether your idea fits, open an issue to discuss first.
### 2. Create the skill directory
```
skills/
your-skill-name/
SKILL.md # Required — the skill definition
```
Skill names should be lowercase, hyphenated, and descriptive: `seo-audit`, `write-blog`, `email-sequence`.
### 3. Write the SKILL.md
Every skill is a single `SKILL.md` file with YAML frontmatter and detailed instructions:
```markdown
---
name: your-skill-name
description: One-line description of what this skill does (shown in skill list)
allowed-tools: Bash
---
# Your Skill Name
Detailed instructions that the AI agent will follow when this skill is invoked.
## When to use this skill
Describe the trigger phrases and use cases.
## What this skill does
Step-by-step instructions for the agent:
1. Gather input from the user
2. Call APIs or read files
3. Generate output
4. Write results to disk or take action
## API Requirements (if any)
List any API keys needed and how to configure them.
```
### Frontmatter fields
| Field | Required | Description |
|-------|----------|-------------|
| `name` | Yes | Skill name (lowercase, hyphenated). Becomes the slash command: `/your-skill-name` |
| `description` | Yes | One-line description shown in `npx openclaudia list` |
| `allowed-tools` | No | Comma-separated list of tools the skill needs access to (e.g., `Bash`, `Read`, `Write`). Use this when your skill needs to run shell commands (curl, API calls) or perform file operations. If omitted, the skill can only generate text responses. |
**When to use `allowed-tools`:**
- `Bash` — skill makes API calls via curl, runs CLI tools, or executes shell commands
- `Read` — skill needs to read files from the user's project
- `Write` — skill creates or modifies files
Example: a skill that sends emails via the Resend API needs `allowed-tools: Bash` to execute curl commands.
### 4. Skill authoring guidelines
- **Be specific** — the more precise your instructions, the better the agent performs
- **Include examples** — show the agent what good output looks like
- **Handle errors** — tell the agent what to do when an API key is missing or a request fails
- **Keep it focused** — one skill should do one thing well
- **Test it** — run your skill in Claude Code before submitting
### 5. Submit a pull request
1. Fork the repo
2. Create a branch: `git checkout -b skill/your-skill-name`
3. Add your skill directory under `skills/`
4. Update the README if your skill adds a new category
5. Open a PR with:
- What the skill does
- How you tested it
- Any API keys required
## Code Review Standards
We review PRs for:
- **Correctness** — does the skill do what it claims?
- **Clarity** — are the instructions clear and unambiguous?
- **Safety** — does the skill avoid destructive actions without user confirmation?
- **Privacy** — does the skill avoid sending user data to unexpected third parties?
## Reporting Issues
Found a bug or have a feature request? [Open an issue](https://github.com/OpenClaudia/openclaudia-skills/issues/new) with:
- Skill name (if applicable)
- What you expected to happen
- What actually happened
- Your environment (OS, Claude Code version)
## Community
- **GitHub Issues** — bug reports and feature requests
- **GitHub Discussions** — questions and ideas
- **Twitter/X** — [@Claudia1569302](https://x.com/Claudia1569302)
## License
By contributing, you agree that your contributions will be licensed under the [MIT License](LICENSE).