Skip to content

Commit 0752c04

Browse files
authored
Merge pull request #2 from NASA-PDS/create-pds-issue-skill
Add creating-pds-issues skill
2 parents 74a527e + 974fbd7 commit 0752c04

25 files changed

+2970
-125
lines changed

CHANGELOG.md

Lines changed: 57 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,65 @@
11
# Changelog
22

3-
All notable changes to this project will be documented in this file.
3+
All notable changes to this project will be documented in this file.
44

55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8-
## [X.Y.Z] - 2022-MM-DD
8+
## [Unreleased]
99

10-
### Added
10+
### Added
1111

12-
-
13-
-
14-
-
12+
- **creating-pds-issues** skill - Creates GitHub issues in NASA-PDS repositories using official templates
13+
- 6 template types: Bug, I&T Bug, Feature Request, Task, Vulnerability, Release Theme
14+
- Auto-detection of current repository from git remote (origin → upstream fallback)
15+
- Security-first with comprehensive PII/credential sanitization guidance
16+
- Template caching (7-day refresh) to minimize GitHub API calls
17+
- Configurable assignee via `PDS_ISSUE_ASSIGNEE` environment variable
18+
19+
### Removed
20+
21+
- **pds-status-reporter** skill - Moved to separate repository for focused development
22+
- Product mapping configuration (`pds-products.yaml`) removed from shared resources
23+
24+
### Changed
25+
26+
- Updated skills count badge from 3 to 2
27+
- Reorganized repository structure without pds-status-reporter references
28+
- Updated all documentation (README.md, SKILLS_CATALOG.md, CLAUDE.md) to reflect current skill set
29+
30+
## [1.0.0] - 2024-11-06
31+
32+
### Added
33+
34+
- **SKILLS_CATALOG.md** - Comprehensive browsable catalog of all available skills with:
35+
- Detailed descriptions and use cases for each skill
36+
- Organization by category, use case, and work stream
37+
- Status indicators for skill maturity
38+
- Quick install instructions
39+
- Shared resources documentation
40+
- **MARKETPLACE_SETUP.md** - Complete guide for configuring repository as a discoverable skills marketplace
41+
- GitHub topics and discoverability configuration
42+
- Repository settings recommendations
43+
- Issue template examples
44+
- Promotion and maintenance strategies
45+
- **Marketplace badges** in README.md:
46+
- Skills count badge
47+
- License badge
48+
- Claude Code compatibility badge
49+
- **Skills catalog link** prominently featured in README.md
50+
- **Skills overview table** in README.md for quick reference
51+
- **generating-release-notes** skill - Generates structured GitHub release notes with breaking change detection, categorization, and upload
52+
- **Shared resources** for cross-skill use:
53+
- `shared-resources/pds-labels.yaml` - Canonical PDS label definitions
54+
55+
### Changed
56+
57+
- Transformed repository into browsable skills marketplace
58+
- Updated README.md with catalog-first approach and marketplace badging
59+
- Reorganized available skills section for better discoverability
60+
61+
### Infrastructure
62+
63+
- Repository structure designed for Claude Code automatic skill discovery
64+
- Support for both project-level (`.claude/skills/`) and personal (`~/.claude/skills/`) installations
65+
- Git submodule support for easier updates

CLAUDE.md

Lines changed: 85 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -4,90 +4,114 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
44

55
## Repository Overview
66

7-
This repository contains Claude Code skills for NASA's Planetary Data System (PDS). Skills are reusable AI agents that perform specialized tasks within the Claude Code CLI environment.
8-
9-
## Repository Structure
10-
11-
- `release-notes/` - Release notes generation skill
12-
- `SKILL.md` - Skill definition and prompt for generating GitHub release notes
13-
- `templates/` - Template files for release note formatting
14-
- `additional_resources/` - Supporting documentation including PDS label mapping
7+
This repository contains Claude Code skills for NASA's Planetary Data System (PDS). Skills are reusable AI agents that perform specialized tasks within the Claude Code CLI environment. There are no build commands, tests, or compilation steps - this is a documentation and configuration repository.
158

169
## Skills Architecture
1710

1811
### What is a Skill?
1912

20-
Skills in this repository are defined by `SKILL.md` files that contain:
21-
1. **Frontmatter** (YAML format) with `name` and `description` fields
22-
2. **Detailed instructions** for Claude Code on how to execute the skill
23-
3. **Input/output specifications** defining expected parameters and results
24-
4. **Style rules and algorithms** that govern skill behavior
13+
Skills are defined by `SKILL.md` files with YAML frontmatter and detailed instructions. Structure:
14+
15+
```
16+
skill-name/
17+
├── SKILL.md # Main skill definition with frontmatter and instructions
18+
├── scripts/ # Optional: Node.js scripts for complex operations
19+
├── resources/ # Optional: Configuration files (YAML/JSON)
20+
└── additional files/ # Optional: Templates, documentation, references
21+
```
2522

26-
### Release Notes Skill
23+
**SKILL.md anatomy:**
24+
```yaml
25+
---
26+
name: skill-name
27+
description: Brief description triggering the skill
28+
---
29+
# Full instructions for Claude Code to execute the skill
30+
```
2731

28-
Location: `release-notes/SKILL.md`
32+
### Available Skills
2933

30-
This skill generates structured, user-friendly GitHub release notes with:
31-
- Automatic categorization of changes (Breaking Changes, New, Improvements, Fixes, Security, etc.)
32-
- **Breaking changes detection and prominence** - any breaking changes MUST appear first with ⚠️ warning
33-
- Executive summaries in "Highlights" section
34-
- Mandatory GitHub links for all changes
35-
- Optional upload to GitHub releases via `gh` CLI
34+
**1. generating-release-notes/** - Generates structured GitHub release notes
35+
- Categorizes PRs/issues by labels (Breaking → Highlights → New → Improvements → Fixes → Security → etc.)
36+
- **Critical rule:** Breaking changes ALWAYS appear first with ⚠️ warning
37+
- Requires GitHub CLI (`gh`) for optional upload to releases
38+
- Label mapping: `generating-release-notes/label-mapping.md`
3639

37-
**Key Inputs:**
38-
- `repo` - GitHub org/repo (e.g., `NASA-PDS/doi-service`)
39-
- `tag/version` - Release version (e.g., `v1.6.0`)
40-
- `date` - Release date
41-
- `changes` - Structured list of PRs/issues with labels, numbers, URLs
42-
- `compare_url` - GitHub compare link
43-
- `upload` (optional) - Boolean to upload via `gh` CLI
40+
**2. creating-pds-issues/** - Creates GitHub issues using NASA-PDS templates
41+
- Supports 6 template types: Bug, I&T Bug, Feature, Task, Vulnerability, Release Theme
42+
- Auto-detects repository from git remote (origin → upstream fallback)
43+
- Security-first with PII/credential sanitization
44+
- Template caching (7-day refresh) to minimize API calls
45+
- Requires GitHub CLI (`gh`) and Node.js v18+ for caching scripts
4446

45-
**Label Mapping:**
46-
The skill uses PDS-specific GitHub labels to categorize changes. See `release-notes/additional_resources/label_mapping.md` for the complete mapping of PDS labels to release note sections.
47+
## Shared Resources
4748

48-
**Critical Rules:**
49-
1. Breaking changes ALWAYS appear first if present
50-
2. Every bullet point MUST include a GitHub link
51-
3. Highlights should be outcome-focused (3-6 bullets)
52-
4. Section order is strict: Breaking → Highlights → New → Improvements → Fixes → Security → Deprecations → Compatibility → Upgrade notes → Known issues → Links
49+
**shared-resources/pds-labels.yaml** - Canonical PDS GitHub label definitions
50+
- Used by multiple skills for consistent label interpretation
51+
- Defines semantics for priority, severity, type, status labels
5352

54-
## Development Workflow
53+
## Key Workflows
5554

5655
### Adding a New Skill
5756

58-
1. Create a new directory under the repository root: `<skill-name>/`
59-
2. Add a `SKILL.md` file with:
60-
- YAML frontmatter containing `name` and `description`
61-
- Comprehensive instructions for Claude Code
57+
1. Create directory: `<skill-name>/`
58+
2. Create `SKILL.md` with:
59+
- YAML frontmatter (`name`, `description`)
60+
- Comprehensive instructions for autonomous execution
6261
- Input/output specifications
6362
- Style rules and edge cases
64-
3. Add supporting resources in subdirectories as needed (templates, additional_resources)
65-
66-
### Testing Skills
67-
68-
Skills are invoked within Claude Code sessions. Test by:
69-
1. Providing sample inputs that match the skill's expected format
70-
2. Verifying outputs follow the specified structure and style rules
71-
3. Testing edge cases documented in the skill definition
72-
73-
### Documentation
74-
75-
- Update `CHANGELOG.md` following [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) format
76-
- Use [Semantic Versioning](https://semver.org/spec/v2.0.0.html) for version numbers
77-
- The README.md is a template file - populate it with actual project information
63+
3. Add supporting resources as needed (scripts/, resources/, templates/)
64+
4. Update README.md "Available Skills" section
65+
5. Update CHANGELOG.md following [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
7866

7967
## PDS Context
8068

81-
This repository is part of NASA's Planetary Data System (PDS) Engineering Node (EN). Skills are designed to support PDS development workflows, particularly around release management and GitHub operations.
69+
### Label System Philosophy
8270

83-
### PDS Label System
71+
PDS uses GitHub labels for categorization and prioritization:
8472

85-
PDS uses a comprehensive GitHub label system for issue/PR categorization:
86-
- `backwards-incompatible` / `breaking-change` - Breaking changes requiring major version bump
87-
- `security` - Security vulnerabilities or concerns
73+
**Type labels:**
74+
- `backwards-incompatible` / `breaking-change` - Breaking changes (major version bump)
75+
- `security` - Security vulnerabilities
8876
- `requirement` - New feature user stories
8977
- `enhancement` - Improvements to existing features
9078
- `bug` - Bug fixes
91-
- `maintenance` - Internal maintenance (usually omitted from release notes)
79+
- `theme` - Release Themes (planned stakeholder priorities)
80+
81+
**Priority labels (optional):**
82+
- `p.must-have` / `p.should-have` / `p.could-have`
83+
84+
**Status labels (exclusion):**
85+
- `duplicate` / `invalid` / `wontfix` / `icebox` - Excluded from reports
86+
87+
**Planning labels (NOT excluded):**
88+
- `sprint-backlog` / `release-backlog` / `B##.#` (build tracking) / `i&t.*` (testing)
89+
90+
Complete definitions: `shared-resources/pds-labels.yaml`
91+
92+
### GitHub CLI Requirements
93+
94+
Skills use GitHub CLI (`gh`) for GitHub operations:
95+
```bash
96+
# Verify authentication
97+
gh auth status
98+
99+
# Re-authenticate if needed
100+
gh auth login
101+
102+
# Check rate limits (5000/hour when authenticated)
103+
gh api rate_limit
104+
```
105+
106+
### Work Streams
107+
108+
PDS organizes work into three streams:
109+
1. **Core Data Services** - Registry, validation, data dictionaries
110+
2. **Web Modernization** - Websites, design system, CMS
111+
3. **Planetary Data Cloud** - Cloud migration, infrastructure
112+
113+
## Documentation Standards
92114

93-
Many other labels exist for planning, triage, and project tracking but are not included in user-facing release notes. See `release-notes/additional_resources/label_mapping.md` for the complete reference.
115+
- **CHANGELOG.md**: [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) format
116+
- **Versioning**: [Semantic Versioning](https://semver.org/spec/v2.0.0.html)
117+
- **Skill descriptions**: Must be clear enough for Claude Code to auto-invoke based on user requests

README.md

Lines changed: 41 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,14 @@
99
<pre align="center">Reusable AI agents for NASA Planetary Data System workflows in Claude Code</pre>
1010

1111
[![SLIM](https://img.shields.io/badge/Best%20Practices%20from-SLIM-blue)](https://nasa-ammos.github.io/slim/)
12+
![Skills](https://img.shields.io/badge/skills-2-brightgreen)
13+
![License](https://img.shields.io/badge/license-Apache%202.0-blue)
14+
[![Claude Code](https://img.shields.io/badge/Claude%20Code-Compatible-purple)](https://claude.ai/code)
1215

1316
This repository contains [Claude Code skills](https://docs.claude.com/en/docs/claude-code/skills) for NASA's Planetary Data System (PDS) Engineering Node. Skills are specialized AI agents that automate complex tasks within the [Claude Code CLI environment](https://claude.ai/code).
1417

18+
**🎯 [Browse Skills Catalog →](SKILLS_CATALOG.md)** - View all available skills with detailed descriptions and use cases
19+
1520
## Table of Contents
1621

1722
- [What are Claude Code Skills?](#what-are-claude-code-skills)
@@ -40,25 +45,16 @@ Skills help automate repetitive or complex workflows, making development more ef
4045

4146
## Available Skills
4247

43-
### 📝 Release Notes Generator
44-
45-
**Location:** `release-notes/`
46-
47-
Generates structured, user-friendly GitHub release notes from PR/issue data with:
48+
**📖 [View Full Skills Catalog →](SKILLS_CATALOG.md)** - Browse all skills with detailed descriptions, use cases, and examples
4849

49-
- Automatic categorization (Breaking Changes, New Features, Improvements, Fixes, Security)
50-
- Prominent breaking changes warnings (⚠️)
51-
- Executive summaries in "Highlights" section
52-
- Mandatory GitHub links for all changes
53-
- PDS-specific label mapping
54-
- Optional upload to GitHub releases via `gh` CLI
50+
### Quick Overview
5551

56-
**Use cases:**
57-
- Creating release notes for PDS software releases
58-
- Generating changelog summaries from GitHub data
59-
- Ensuring consistent release note formatting across PDS projects
52+
| Skill | Description | Use Cases |
53+
|-------|-------------|-----------|
54+
| **[generating-release-notes](generating-release-notes/SKILL.md)** | Generate structured GitHub release notes with breaking changes, categorization, and upload | Software releases, changelogs, version announcements |
55+
| **[creating-pds-issues](creating-pds-issues/SKILL.md)** | Create GitHub issues using official NASA-PDS templates with security sanitization | Bug reports, feature requests, I&T bugs, security vulnerabilities |
6056

61-
See [release-notes/SKILL.md](release-notes/SKILL.md) for detailed documentation.
57+
**Total Skills:** 2 production-ready skills for PDS workflows
6258

6359
## Installation
6460

@@ -154,39 +150,43 @@ claude "Generate release notes for NASA-PDS/doi-service version v1.6.0"
154150

155151
Claude analyzes your request, identifies that the release-notes skill is relevant, and executes it autonomously.
156152

157-
**Available skills:**
158-
- `release-notes` - Generates structured GitHub release notes
159-
160-
See individual skill documentation for detailed input specifications and examples.
153+
See the [Skills Catalog](SKILLS_CATALOG.md) or individual skill documentation for detailed input specifications and examples.
161154

162155
## Adding a New Skill
163156

164-
1. Create a new directory: `<skill-name>/`
165-
2. Add a `SKILL.md` file with:
166-
```yaml
167-
---
168-
name: skill-name
169-
description: Brief description of what the skill does
170-
---
171-
```
172-
3. Add comprehensive instructions, input/output specs, and style rules
173-
4. Include supporting resources in subdirectories (templates, additional_resources, etc.)
174-
5. Update this README with your new skill in the "Available Skills" section
175-
6. Test thoroughly with sample inputs
176-
177-
See [CLAUDE.md](CLAUDE.md) for detailed development guidance.
157+
See the [Skills Catalog](SKILLS_CATALOG.md) for examples and [CLAUDE.md](CLAUDE.md) for detailed development guidance.
158+
159+
**Quick steps:**
160+
1. Create a new directory: `<skill-name>/` (use gerund form: `generating-*`, `processing-*`)
161+
2. Add a `SKILL.md` file with YAML frontmatter and instructions
162+
3. Test with sample inputs
163+
4. Update [SKILLS_CATALOG.md](SKILLS_CATALOG.md) with your new skill
164+
5. Submit a pull request
165+
166+
For marketplace configuration and GitHub setup, see [docs/MARKETPLACE_SETUP.md](docs/MARKETPLACE_SETUP.md).
178167

179168
## Repository Structure
180169

181170
```
182171
pds-claude-skills/
183-
├── release-notes/ # Release notes generation skill
184-
│ ├── SKILL.md # Skill definition and instructions
185-
│ ├── templates/ # Release note templates
186-
│ └── additional_resources/ # PDS label mapping and docs
187-
├── CLAUDE.md # Developer guidance for Claude Code
188-
├── README.md # This file
189-
└── CHANGELOG.md # Project changelog
172+
├── generating-release-notes/ # Release notes generation skill
173+
│ ├── SKILL.md # Skill definition and instructions
174+
│ ├── templates/ # Release note templates
175+
│ └── resources/ # Supporting resources
176+
├── creating-pds-issues/ # GitHub issue creation skill
177+
│ ├── SKILL.md # Skill definition and instructions
178+
│ ├── scripts/ # Helper scripts for template caching
179+
│ └── resources/ # Issue templates and config
180+
├── shared-resources/ # Shared across all skills
181+
│ └── pds-labels.yaml # Canonical PDS label definitions
182+
├── docs/ # Marketplace documentation
183+
│ ├── MARKETPLACE_SETUP.md # GitHub configuration guide
184+
│ ├── MARKETPLACE_COMPLETE.md # Transformation summary
185+
│ └── PRODUCTS_README.md # Product mapping documentation
186+
├── SKILLS_CATALOG.md # Browse all available skills
187+
├── CLAUDE.md # Developer guidance for Claude Code
188+
├── README.md # This file
189+
└── CHANGELOG.md # Project changelog
190190
```
191191

192192
## Contributing

0 commit comments

Comments
 (0)