Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
ducnguyenhuu avatar

Contribute Skill

  • 1 installs
  • Updated May 17, 2026
  • ducnguyenhuu/ducnguyen_learningspace

Contribute a local skill to an upstream skills repo by validating frontmatter, forking, branching, copying files, and opening a PR via a Node script.

About

Automates contributing a local skill upstream by forking the repo, creating a contrib branch, copying files, and opening a PR. A developer uses it to share a custom skill with their team or company.

  • Validates SKILL.md frontmatter before contributing
  • Creates fork, contrib branch, and PR with a template

Contribute Skill by the numbers

  • 1 all-time installs (skills.sh)
  • Ranked #644 of 782 Skill Development skills by installs in the Skillselion catalog
  • Data as of Jul 8, 2026 (Skillselion catalog sync)
npx skills add https://github.com/ducnguyenhuu/ducnguyen_learningspace --skill contribute-skill

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs1
Last updatedMay 17, 2026
Repositoryducnguyenhuu/ducnguyen_learningspace

What it does

Contribute a local skill to an upstream skills repo by validating frontmatter, forking, branching, copying files, and opening a PR via a Node script.

Files

SKILL.mdMarkdownGitHub ↗

/contribute-skill - Contribute a Skill

Create a pull request to contribute a local skill to the upstream skills repository.

When to Use

Use this when:

  • You've created a custom skill that would benefit others
  • The skill is generic enough for company-wide use
  • You want to share your workflow automation

Prerequisites

  • GITHUB_TOKEN environment variable set (with repo access)
  • The skill must exist in .claude/skills/<skill-name>/

Usage

node .claude/skills/contribute-skill/scripts/contribute.js <skill-name>

What Happens

1. Validates the skill exists, has required files (SKILL.md), and frontmatter includes name, description, author, and author_email 2. Creates a fork of the upstream repo (if you don't have one) 3. Creates a branch named contrib/<skill-name> 4. Copies files to src/scaffolds/skills/<skill-name>/ 5. Creates a PR with a contribution template

Naming Convention

Use the <category>.<action> format for skill names (e.g., rally.get-item, sonar.get-issues, java.test.status). This enables automatic category detection and pack-based deployment in the wizard.

Architecture Notes

When your skill is merged:

Skills without scripts (prompt-only)

  • Copied directly to src/scaffolds/skills/, ready to use

Skills with scripts (script-backed)

  • Scripts must be TypeScript for sidecar integration
  • The esbuild bundler compiles TS → JS for deployment as self-contained bundles
  • JavaScript contributions will need conversion before merge

What Maintainers Will Do

After your PR is submitted, maintainers will:

1. Bundler registration - Add entry to src/scripts/bundle-skills.ts (for script-backed skills) 2. Scaffold index - Register new category in src/scaffolds/index.ts (if introducing a new category) 3. Wizard pack - Add pack entry to src/commands/wizard.ts (if new category needs a pack) 4. TypeScript conversion - Convert JS scripts to TS if contributed as JavaScript 5. Deployment tests - Add test coverage in tests/skills-deployment.test.ts

Example

# Contribute your "api-helper" skill
node .claude/skills/contribute-skill/scripts/contribute.js api-helper

Output:

Contributing skill: api-helper

✓ Found skill at .claude/skills/api-helper/
✓ Validated SKILL.md
✓ Found 2 additional files
✓ Created fork your-username/skills-repo
✓ Created branch contrib/api-helper
✓ Added src/scaffolds/skills/api-helper/SKILL.md
✓ Added src/scaffolds/skills/api-helper/scripts/helper.js

Pull request created:
https://github.example.com/org/skills-repo/pull/42

Next steps:
- Review the PR description
- Add any additional context in comments
- Wait for maintainer review

PR Template

The PR is created with:

  • Title: feat(skills): add <skill-name> skill
  • Description includes:
  • What the skill does (from SKILL.md description)
  • Files included
  • Note about script conversion if applicable

Troubleshooting

"GITHUB_TOKEN not set"

Set your GitHub token:

export GITHUB_TOKEN=your_token_here
# Or add to .env file

"Skill not found"

Ensure the skill exists at .claude/skills/<skill-name>/SKILL.md

"Permission denied"

Your GitHub token needs repo scope to create forks and PRs.

Related skills

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.