Thank you for your interest in contributing to the PDS Claude Code Skills marketplace! This document provides guidelines for contributing new skills, reporting bugs, and improving existing skills.
- Code of Conduct
- How Can I Contribute?
- Contributing a New Skill
- Reporting Bugs
- Suggesting Enhancements
- Development Guidelines
- Pull Request Process
This project follows NASA's open source code of conduct. By participating, you are expected to uphold professional and respectful behavior in all interactions.
The best way to contribute is by adding new skills that help automate PDS workflows! Before creating a new skill:
- Check existing skills in README.md to avoid duplication
- Open an issue using the "New Skill Request" template to discuss your idea
- Get feedback from maintainers before investing significant development time
Found a bug in an existing skill? Please:
- Check existing issues to see if it's already reported
- Open a new issue using the "Bug Report" template
- Include details:
- Which skill is affected
- Steps to reproduce the bug
- Expected vs. actual behavior
- Claude Code version and environment info
Have an idea to improve an existing skill?
- Open an issue describing the enhancement
- Explain the use case - why would this be valuable?
- Consider backwards compatibility - will existing users be affected?
-
Plan Your Skill
- Define the problem it solves
- Identify trigger keywords and user prompts
- Sketch the workflow and required tools
- Review CLAUDE.md for architectural guidance
-
Create the Skill Directory
# Use gerund form (action + -ing) in the marketplace skills directory mkdir -p static/marketplace/skills/<action>-<object> # Examples: generating-reports, validating-data, deploying-services
-
Write SKILL.md
--- name: your-skill-name description: Brief description that triggers the skill (1-2 sentences) --- # Your Skill Name ## Purpose Clear explanation of what this skill does and when to use it. ## Prerequisites List required tools, API tokens, or setup steps. ## Execution Steps Step-by-step instructions for Claude Code to autonomously execute this skill. ## Examples Show example user prompts and expected outputs.
-
Add Supporting Files (if needed)
scripts/- Node.js scripts for complex operationsresources/- YAML/JSON configuration filestemplates/- Output templates or examples
-
Test Your Skill
- Install locally:
mkdir -p .claude/skills && ln -s $(pwd) .claude/skills/test - Test with various user prompts
- Verify error handling and edge cases
- Ensure it works autonomously without manual intervention
- Install locally:
-
Update Documentation
- Add skill path to
.claude-plugin/marketplace.jsonin the appropriate plugin'sskillsarray - Add row to README.md "Available Plugins & Skills" section
- Update CLAUDE.md "Plugin Architecture" section
- Add entry to CHANGELOG.md under "Unreleased"
- Add skill path to
Your skill should:
- ✅ Be autonomous - Execute without requiring manual steps
- ✅ Handle errors gracefully - Provide clear error messages
- ✅ Be well-documented - Clear prerequisites and execution steps
- ✅ Follow naming conventions - Use gerund form (action + -ing)
- ✅ Include examples - Show typical user prompts
- ✅ Be tested - Verify it works in various scenarios
- ✅ Be PDS-relevant - Solve a real NASA PDS workflow problem
Don't create skills that:
- ❌ Duplicate existing skills
- ❌ Are too generic (not PDS-specific)
- ❌ Require extensive manual configuration
- ❌ Have security implications (credential exposure, destructive operations)
- ❌ Are better suited as general Claude Code features
-
Directory name:
<verb>-<noun>in gerund form- ✅
generating-release-notes - ✅
creating-pds-issues - ❌
release-notes-generator(noun form)
- ✅
-
Skill name (YAML): Match directory name exactly
-
Description: 1-2 sentences, focus on trigger keywords
your-skill-name/
├── SKILL.md # Required: Main skill definition
├── README.md # Optional: Extended documentation
├── scripts/ # Optional: Helper scripts
│ ├── main-script.mjs # Primary executable
│ └── README.md # Script documentation
├── resources/ # Optional: Config files
│ └── config.yaml
└── templates/ # Optional: Output templates
└── template.md
If your skill includes Node.js scripts:
- Use ES modules (
.mjsextension) - Target Node.js v18 or higher
- Include clear error messages
- Document environment variables
- Use standard libraries when possible (avoid heavy dependencies)
- Use clear, imperative language ("Execute X", "Check Y")
- Include code examples with syntax highlighting
- Provide complete commands (not partial snippets)
- Reference official documentation for external tools
- Keep instructions concise but comprehensive
-
Fork the repository and create a feature branch
git checkout -b feature/your-skill-name
-
Make your changes following the guidelines above
-
Test thoroughly - Verify your skill works as expected
-
Commit with clear messages
git commit -m "Add <skill-name> skill for <purpose> - Brief description of what the skill does - Key features or capabilities - Related to #<issue-number> if applicable"
-
Push and create a PR
git push origin feature/your-skill-name
- Use a clear PR title: "Add [skill-name] skill"
- Fill out the PR template completely
- Reference any related issues
-
Respond to feedback - Maintainers may request changes
-
Merge - Once approved, a maintainer will merge your PR
Maintainers will check:
- ✅ Skill follows naming conventions
- ✅ SKILL.md is clear and complete
- ✅ Documentation is updated (marketplace.json, README.md, CLAUDE.md, CHANGELOG.md)
- ✅ Skill is added to appropriate plugin group or new plugin created if needed
- ✅ Skill solves a real PDS workflow problem
- ✅ Code is clean and well-commented (if scripts included)
- ✅ No security concerns or credential exposure
- Questions about skill development? Review CLAUDE.md
- Need examples? Browse existing skills in README.md or
static/marketplace/skills/directory - Stuck on implementation? Open an issue with the "help wanted" label
- Want to discuss ideas? Tag maintainers in an issue
By contributing, you agree that your contributions will be licensed under the Apache License 2.0, matching the project's license.
All contributors are recognized in our release notes and commit history. Thank you for helping make PDS workflows more efficient! 🚀