Specialized AI workflow plugins for NASA Planetary Data System in Claude Code
This repository is a Claude Code plugin marketplace for NASA's Planetary Data System (PDS) Engineering Node. It distributes 8 specialized AI agents that automate complex workflows within the Claude Code CLI environment. Each skill is installed individually from the @pds-agent-skills marketplace.
🔌 Marketplace: pds-agent-skills — GitHub workflows • SonarCloud security • Dependabot security
- What are Claude Code Skills?
- Available Skills
- Installation
- Troubleshooting
- Using Plugins
- Adding a New Skill
- Updating an Existing Skill
- Repository Structure
- Contributing
- Changelog
- License
- Support
Claude Code skills are reusable prompts that enable Claude Code to perform specialized tasks autonomously. Each skill is defined by a SKILL.md file containing:
- Detailed instructions for task execution
- Input/output specifications
- Style rules and algorithms
- Edge case handling
Skills help automate repetitive or complex workflows, making development more efficient and consistent across the PDS organization.
| Skill | Description | Use Cases |
|---|---|---|
| generating-release-notes | Generate structured GitHub release notes with breaking changes, categorization, and upload | Software releases, changelogs, version announcements |
| generating-accomplishments | Generate PDS accomplishment status reports from activity.json or live lasso-issues data, grouped by product team | Sprint reports, quarterly reports, annual accomplishments, status updates |
| creating-pds-issues | Create GitHub issues using NASA-PDS organizational templates | Bug reports, feature requests, tasks, vulnerabilities, release themes |
| creating-pds-pull-requests | Create GitHub pull requests with auto-detection of repo/branch, issue linking, reviewer assignment, and label management | Opening PRs, submitting code changes, linking issues to PRs, draft PRs |
| Skill | Description | Use Cases |
|---|---|---|
| sonarcloud-security-exporting | Export SonarCloud security issues for NASA PDS repositories to CSV | Security audits, vulnerability reports, data export |
| sonarcloud-security-triaging | Analyze security issues and suggest triage decisions with code context and explanations | Security review, making triage decisions, identifying false positives |
| sonarcloud-security-updating | Apply triage decisions to SonarCloud by bulk-updating security issue statuses and comments | Applying triage outcomes, bulk remediation, compliance tracking |
| dependabot-alerts-exporting | Export GitHub Dependabot dependency vulnerability alerts for NASA PDS repositories to JSON | Dependency audits, CVE exports, vulnerability reports |
| dependabot-alerts-triaging | Analyze Dependabot alerts and suggest triage decisions with exploitability assessment | CVE triage, dependency review, identifying false positives |
Total: 9 production-ready skills in the @pds-agent-skills marketplace
- Claude Code CLI: Install from claude.ai/code or via Homebrew:
brew install claude
- Claude Desktop: Download from claude.ai/download (plugins work in projects mode)
- For release notes upload: GitHub CLI (
gh) installed and authenticated
The easiest way to install and manage PDS plugins with automatic updates and version control.
Add the marketplace once:
/plugin marketplace add NASA-PDS/pds-agent-skillsInstall individual skills as needed:
# List available skills
/plugin list @pds-agent-skills
# GitHub workflow skills
/plugin install generating-release-notes@pds-agent-skills
/plugin install creating-pds-issues@pds-agent-skills
/plugin install creating-pds-pull-requests@pds-agent-skills
# Security skills (SonarCloud + Dependabot)
/plugin install sonarcloud-security-exporting@pds-agent-skills
/plugin install sonarcloud-security-triaging@pds-agent-skills
/plugin install sonarcloud-security-updating@pds-agent-skills
/plugin install dependabot-alerts-exporting@pds-agent-skills
/plugin install dependabot-alerts-triaging@pds-agent-skills
# Or install all 9 skills at once
/plugin install generating-release-notes@pds-agent-skills generating-accomplishments@pds-agent-skills creating-pds-issues@pds-agent-skills creating-pds-pull-requests@pds-agent-skills sonarcloud-security-exporting@pds-agent-skills sonarcloud-security-triaging@pds-agent-skills sonarcloud-security-updating@pds-agent-skills dependabot-alerts-exporting@pds-agent-skills dependabot-alerts-triaging@pds-agent-skillsUpdate to latest versions:
/plugin marketplace update pds-agent-skills
/plugin update generating-release-notes@pds-agent-skills generating-accomplishments@pds-agent-skills creating-pds-issues@pds-agent-skills creating-pds-pull-requests@pds-agent-skills sonarcloud-security-exporting@pds-agent-skills sonarcloud-security-triaging@pds-agent-skills sonarcloud-security-updating@pds-agent-skills dependabot-alerts-exporting@pds-agent-skills dependabot-alerts-triaging@pds-agent-skillsFor internal use, air-gapped environments, or testing before publishing:
Clone the repository first:
# Clone to a local directory
git clone https://github.com/NASA-PDS/pds-agent-skills.git ~/pds-plugins
# Or for internal use, clone from your internal git server
git clone https://git.your-org.com/pds/pds-agent-skills.git ~/pds-pluginsAdd the local marketplace:
# Option 1: Use absolute path (recommended)
/plugin marketplace add /Users/yourname/pds-plugins
# Option 2: Add from parent directory
cd ~
/plugin marketplace add pds-plugins
# Option 3: Use tilde expansion
/plugin marketplace add ~/pds-pluginsImportant: Run the /plugin marketplace add command from outside the marketplace directory, pointing to the directory that contains .claude-plugin/. Don't run it from inside the marketplace directory itself.
Install skills:
# List available skills (marketplace name will be auto-generated from path)
/plugin list @pds-plugins
# Install individual skills (same names, different marketplace suffix)
/plugin install generating-release-notes@pds-plugins
/plugin install sonarcloud-security-triaging@pds-plugins
# ... repeat for each skill as neededUpdate from local marketplace:
# Pull latest changes first
cd ~/pds-plugins
git pull
# Then update the marketplace in Claude Code
/plugin marketplace update pds-plugins
/plugin update generating-release-notes@pds-plugins creating-pds-issues@pds-plugins # ... etcFor private organizational repositories:
# Add private repository with authentication
/plugin marketplace add https://git.your-org.com/pds/pds-agent-skills.git
# Or use SSH
/plugin marketplace add git@github.com:your-org/pds-agent-skills.gitMake sure you're authenticated with your git provider (e.g., gh auth login for GitHub).
Benefits of Plugin Marketplace:
- ✅ One command to add marketplace
- ✅ Automatic version management
- ✅ Easy updates with
/plugin marketplace update - ✅ Install only the plugins you need
- ✅ Works with public, private, or local repositories
- ✅ Official Anthropic plugin system
For backwards compatibility or air-gapped environments, you can still manually install plugins.
Project-level skills are shared with your team via version control and automatically available when team members pull changes.
Install for a specific project:
# Navigate to your project directory
cd your-project
# Create the skills directory
mkdir -p .claude/skills
# Clone this repository into the skills directory
git clone https://github.com/NASA-PDS/pds-agent-skills.git .claude/skills/pds
# Commit to version control
git add .claude/skills/pds
git commit -m "Add PDS Claude Code skills"Or add as a git submodule (recommended for easier updates):
cd your-project
mkdir -p .claude/skills
git submodule add https://github.com/NASA-PDS/pds-agent-skills.git .claude/skills/pds
git commit -m "Add PDS Claude Code skills as submodule"Team members can then pull the changes, and skills become immediately available:
git pull
git submodule update --init --recursive # if using submodulesPersonal skills are available in all your projects, stored in your home directory.
Install globally:
# Create personal skills directory
mkdir -p ~/.claude/skills
# Clone this repository
git clone https://github.com/NASA-PDS/pds-agent-skills.git ~/.claude/skills/pdsUpdate personal skills:
cd ~/.claude/skills/pds
git pullDeprecated: Use the plugin marketplace method instead. Direct git references are kept for backwards compatibility only.
Symptoms:
/plugin install generating-release-notes@pds-agent-skills
⎿ Failed to load marketplace "claude-plugins-official" from source (github): Failed to parse
marketplace file at .../claude-plugins-official/.claude-plugin/marketplace.json: Invalid schemaCause: The official Claude plugins marketplace (claude-plugins-official) may have a corrupted or outdated schema that prevents plugin installation.
Solution 1: Remove and re-add the official marketplace
# Remove the corrupted marketplace
/plugin marketplace remove claude-plugins-official
# Try to re-add it (if this fails, proceed to Solution 2)
/plugin marketplace add anthropics/claude-plugins-officialSolution 2: Install skills without the official marketplace
The PDS skills can be installed independently without the official marketplace:
# Remove the corrupted marketplace
/plugin marketplace remove claude-plugins-official
# Install PDS skills directly (example — repeat for each skill)
/plugin install generating-release-notes@pds-agent-skills
/plugin install sonarcloud-security-triaging@pds-agent-skillsSolution 3: Manually clean up the marketplace directory
If the above solutions don't work:
# Remove the corrupted marketplace directory
rm -rf ~/.claude/plugins/marketplaces/claude-plugins-official
# Update your PDS marketplace
/plugin marketplace update pds-agent-skills
# Install PDS skills (example — repeat for each skill)
/plugin install generating-release-notes@pds-agent-skills
/plugin install sonarcloud-security-triaging@pds-agent-skillsSymptoms:
/plugin install generating-release-notes@pds-agent-skills
Error: Plugin not foundSolution: Ensure the marketplace is added and updated:
# Add the marketplace if not already added
/plugin marketplace add NASA-PDS/pds-agent-skills
# Update the marketplace to fetch latest skill catalog
/plugin marketplace update pds-agent-skills
# List available skills to verify
/plugin list @pds-agent-skills
# Install the skill
/plugin install generating-release-notes@pds-agent-skillsProblem: When adding from GitHub, the marketplace name is pds-agent-skills (derived from the repository name), not pds-claude-skills.
Solution: Always use pds-agent-skills as the marketplace identifier:
# Correct
/plugin install generating-release-notes@pds-agent-skills
# Incorrect (will fail)
/plugin install generating-release-notes@pds-claude-skillsTo confirm skills are installed correctly:
# Check installed skills
/plugin list
# Should show each installed skill, e.g.:
# ✓ generating-release-notes@pds-agent-skills
# ✓ creating-pds-issues@pds-agent-skills
# ✓ sonarcloud-security-triaging@pds-agent-skills
# ...
# View installation details
cat ~/.claude/plugins/installed_plugins.jsonIf issues persist:
- Check Claude Code version:
claude --version(requires v1.0.0+) - Review Claude Code logs:
~/.claude/logs/ - Open an issue in this repository with error details
- Contact PDS Engineering Node team
Once installed via the plugin marketplace, plugins are automatically available in Claude Code.
How it works:
- Install plugins from the marketplace (see Installation above)
- Open Claude Code in your project directory (CLI) or start a project in Claude Desktop
- Describe your task naturally — Claude will autonomously use relevant plugins based on your request
- Provide necessary inputs as described in each plugin's documentation
# Generate release notes for a specific version
claude "Generate release notes for NASA-PDS/doi-service version v1.6.0"
# Create a GitHub issue from a template
claude "Create a bug report issue in NASA-PDS/registry"
# Open a pull request for the current branch
claude "Create a PR for this branch, closes issue #42"The SonarCloud skills follow a three-step pipeline: export → triage → update.
Export all security issues for NASA PDS:
Export all SonarCloud security issues for nasa-pds to JSON in ~/security-audit
Triage the exported issues:
Help me triage the SonarCloud issues in ~/security-audit/sonarcloud-security-issues-20260418.json
Apply approved decisions to SonarCloud:
Apply the triage decisions from ~/security-audit/sonarcloud-security-triaged-20260418.json — dry run first
Run the full pipeline in one session:
Do a complete SonarCloud security audit and triage for NASA PDS.
Export all issues to JSON, triage them repository by repository, then apply approved decisions.
Save everything to ~/pds-security-audit.
Prerequisites for security-skills: Node.js v18+. SonarCloud skills require
SONARCLOUD_TOKEN; Dependabot skills requireGITHUB_TOKENwithsecurity_eventsscope. See the SonarCloud Skills Guide for setup instructions and a full list of example prompts.
# List installed skills
/plugin list
# List available skills in marketplace
/plugin list @pds-agent-skills
# Update a specific skill
/plugin update sonarcloud-security-triaging@pds-agent-skills
# Uninstall a skill
/plugin uninstall sonarcloud-security-triaging@pds-agent-skills📚 Detailed guides:
- SonarCloud Skills Guide — installation, example prompts, full workflow, troubleshooting
- Plugin Marketplace Installation Guide — local, private repo, and air-gapped install scenarios
This repository is registry-driven: contributors edit one source-of-truth file (static/data/registry.json), and the Claude Code plugin manifest (.claude-plugin/marketplace.json) is regenerated from it by the build. Do not edit marketplace.json by hand — it is a build artifact, and a CI check rejects any drift.
See CLAUDE.md for deeper development guidance, and the existing skills under static/marketplace/skills/ for examples.
Quick steps:
-
Create the skill folder —
static/marketplace/skills/<skill-name>/(use gerund form:generating-*,processing-*,creating-*). -
Add
SKILL.mdwith YAML frontmatter (name,description) and the full instructions. Include any supportingscripts/,resources/, ortemplates/as needed. -
Add an entry to the
skillsarray instatic/data/registry.json:{ "name": "<skill-name>", "displayName": "Human Readable Name", "description": "What it does and when to use it", "category": "development-workflow", "tags": ["github", "automation", "pds"], "example": "An example request a user might make", "lastUpdated": "YYYY-MM-DD" }Author only the semantic fields above. The build derives
type,skill_file_url, andzip_file_pathautomatically — do not write them by hand. Optional passthrough fields:dependencies,version,author,homepage,repository,license. Categories are defined in the same file undermetadata.categoryIcons; add a new"<category>": "<emoji>"entry there to introduce a category. -
Regenerate the manifest:
npm run prebuild
This runs
src/conf/generate-marketplace.js, which writes.claude-plugin/marketplace.jsonfrom the registry. Theregistry-checkCI workflow fails if the committed manifest drifts out of sync. -
Update CHANGELOG.md following Keep a Changelog.
-
Test locally —
npm run start(dev server) ornpm run build && npm run serve(production preview). -
Commit both
static/data/registry.jsonand.claude-plugin/marketplace.json, then submit a pull request.
For marketplace configuration: See docs/MARKETPLACE_SETUP.md.
The same registry-driven flow applies — edit static/data/registry.json (and the skill files), then regenerate.
Change a skill's behavior — edit files under static/marketplace/skills/<skill-name>/ (its SKILL.md, scripts, templates, resources). No further metadata work is needed unless the change affects how the skill is described.
Change how the skill appears in the catalog — edit that skill's entry in static/data/registry.json:
displayName— human-readable name shown on the catalog carddescription— short summary shown in the card and used for skill discoverycategory— where the skill appears in the category tree (e.g.development-workflow,security)tags— filter pills on the cardexample— example user request shown beneath the install instructionsdependencies,version,author,homepage,repository,license— optional metadata
Bump the timestamp — whenever a skill changes in any meaningful way, set its lastUpdated to today's date in YYYY-MM-DD format (e.g. "2026-05-22"). The catalog sorts and labels skills by this field, so an accurate timestamp keeps the marketplace's "what changed recently" view truthful.
Regenerate the manifest:
npm run prebuildRemove a skill — delete its folder under static/marketplace/skills/ and its entry from static/data/registry.json, then run npm run prebuild.
Update CHANGELOG.md and commit both static/data/registry.json and the updated .claude-plugin/marketplace.json.
pds-agent-skills/
├── .claude-plugin/
│ └── marketplace.json # Claude Code plugin manifest — GENERATED from static/data/registry.json
├── static/
│ ├── data/
│ │ └── registry.json # Hand-authored SOURCE OF TRUTH (marketplace identity + all skills)
│ ├── img/ # Logo, favicon, hero images
│ └── marketplace/
│ └── skills/ # All skill content (one folder per skill)
│ ├── creating-pds-issues/
│ │ ├── SKILL.md
│ │ ├── scripts/
│ │ └── resources/
│ ├── creating-pds-pull-requests/
│ │ ├── SKILL.md
│ │ └── scripts/
│ ├── generating-release-notes/
│ │ ├── SKILL.md
│ │ ├── templates/
│ │ └── resources/
│ ├── dependabot-alerts-exporting/
│ │ ├── SKILL.md
│ │ └── scripts/
│ ├── dependabot-alerts-triaging/
│ │ ├── SKILL.md
│ │ └── scripts/
│ ├── sonarcloud-security-exporting/
│ │ ├── SKILL.md
│ │ └── scripts/
│ ├── sonarcloud-security-triaging/
│ │ └── SKILL.md
│ ├── sonarcloud-security-updating/
│ │ ├── SKILL.md
│ │ └── scripts/
│ └── shared-resources/
│ └── pds-labels.yaml
├── src/
│ ├── conf/
│ │ └── generate-marketplace.js # Generates marketplace.json from registry.json
│ ├── components/ # Marketplace website (React/Docusaurus)
│ ├── pages/ # Website pages
│ └── css/ # Styles
├── docs/
│ ├── about/ # Marketplace "About" page (Docusaurus)
│ ├── contribute/ # "Contribute" docs (Docusaurus)
│ ├── faq/ # FAQ (Docusaurus)
│ ├── history/ # AI session histories
│ ├── MARKETPLACE_SETUP.md # GitHub configuration guide
│ ├── PLUGIN_MARKETPLACE_GUIDE.md # Comprehensive install guide
│ ├── SECURITY_SKILLS_GUIDE.md # Security skills usage guide
│ └── PRODUCTS_README.md # Product mapping documentation
├── .github/
│ ├── CODEOWNERS
│ ├── ISSUE_TEMPLATE/ # Issue templates
│ └── workflows/ # CI — secrets-detection, registry-check, Pages deploy
├── scripts/
│ └── detect_secrets_baseline.sh
├── docusaurus.config.js # Marketplace website configuration
├── package.json # Node dependencies for the website
├── sidebars.js # Website docs sidebar layout
├── CLAUDE.md # Developer guidance for Claude Code
├── CONTRIBUTING.md # Contribution guidelines
├── README.md # This file
└── CHANGELOG.md # Project changelog
Contributions are welcome! When adding new skills:
- Follow the skill structure outlined in CLAUDE.md
- Ensure comprehensive documentation in the
SKILL.mdfile - Test your skill with various inputs and edge cases
- Update the changelog following Keep a Changelog format
- Submit a pull request with a clear description of the skill's purpose
See CHANGELOG.md for a history of changes to this project.
Copyright (c) 2022 California Institute of Technology ("Caltech"). U.S. Government sponsorship acknowledged.
Licensed under the Apache License, Version 2.0. See LICENSE.md for details.
This repository is maintained by NASA's Planetary Data System Engineering Node.
For questions or issues:
- Open an issue in this repository
- Refer to Claude Code documentation
- Contact the PDS Engineering Node team