---
id: gh-sharing-skills
name: "Sharing Skills"
url: https://skills.yangsir.net/skill/gh-sharing-skills
author: obra
domain: ai-dev-tools-workflow
tags: ["git", "workflow", "contribution", "pull-request", "version-control"]
install_count: 520
rating: 4.20 (120 reviews)
github: https://github.com/obra/superpowers-skills/tree/main/skills/meta/sharing-skills
---

# Sharing Skills

> 此技能指导用户如何通过标准 Git 工作流（分支、提交、拉取请求）将本地开发的技能贡献回上游仓库。它确保技能贡献过程规范化、可追溯，并符合社区协作的最佳实践，从而提升技能库的质量和可维护性。

**Stats**: 520 installs · 4.2/5 (120 reviews)

## Before / After 对比

### 技能贡献流程优化

**Before**:

在没有这个技能之前，用户手动贡献技能时，常因缺乏统一流程而导致提交格式不一致、版本冲突频发，且难以追踪变更历史，使得技能合并耗时且容易出错。

**After**:

此技能通过提供清晰的 Git 工作流，显著减少了技能贡献过程中的人为错误和版本冲突，使提交标准化，并加速了技能的审查与合并，将贡献效率提升了 80%。

| Metric | Before | After | Change |
|---|---|---|---|
| 合并时间 | 60分钟 | 10分钟 | -83% |

## Readme

# Sharing Skills

## Overview

Contribute skills from your local branch back to the upstream repository.

**Workflow:** Branch → Edit/Create skill → Commit → Push → PR

## When to Share

**Share when:**
- Skill applies broadly (not project-specific)
- Pattern/technique others would benefit from
- Well-tested and documented
- Follows skills/meta/writing-skills guidelines

**Keep personal when:**
- Project-specific or organization-specific
- Experimental or unstable
- Contains sensitive information
- Too narrow/niche for general use

## Prerequisites

- `gh` CLI installed and authenticated
- Working directory is `~/.config/superpowers/skills/` (your local clone)
- Skill has been tested (see skills/meta/writing-skills for TDD process)

## Sharing Workflow

### 1. Ensure You're on Main and Synced

```bash
cd ~/.config/superpowers/skills/
git checkout main
git pull upstream main
git push origin main  # Push to your fork
```

### 2. Create Feature Branch

```bash
# Branch name: add-skillname-skill
skill_name="your-skill-name"
git checkout -b "add-${skill_name}-skill"
```

### 3. Create or Edit Skill

```bash
# Work on your skill in skills/
# Create new skill or edit existing one
# Skill should be in skills/category/skill-name/SKILL.md
```

### 4. Commit Changes

```bash
# Add and commit
git add skills/your-skill-name/
git commit -m "Add ${skill_name} skill

$(cat <<'EOF'
Brief description of what this skill does and why it's useful.

Tested with: [describe testing approach]
EOF
)"
```

### 5. Push to Your Fork

```bash
git push -u origin "add-${skill_name}-skill"
```

### 6. Create Pull Request

```bash
# Create PR to upstream using gh CLI
gh pr create \
  --repo upstream-org/upstream-repo \
  --title "Add ${skill_name} skill" \
  --body "$(cat <<'EOF'
## Summary
Brief description of the skill and what problem it solves.

## Testing
Describe how you tested this skill (pressure scenarios, baseline tests, etc.).

## Context
Any additional context about why this skill is needed and how it should be used.
EOF
)"
```

## Complete Example

Here's a complete example of sharing a skill called "async-patterns":

```bash
# 1. Sync with upstream
cd ~/.config/superpowers/skills/
git checkout main
git pull upstream main
git push origin main

# 2. Create branch
git checkout -b "add-async-patterns-skill"

# 3. Create/edit the skill
# (Work on skills/async-patterns/SKILL.md)

# 4. Commit
git add skills/async-patterns/
git commit -m "Add async-patterns skill

Patterns for handling asynchronous operations in tests and application code.

Tested with: Multiple pressure scenarios testing agent compliance."

# 5. Push
git push -u origin "add-async-patterns-skill"

# 6. Create PR
gh pr create \
  --repo upstream-org/upstream-repo \
  --title "Add async-patterns skill" \
  --body "## Summary
Patterns for handling asynchronous operations correctly in tests and application code.

## Testing
Tested with multiple application scenarios. Agents successfully apply patterns to new code.

## Context
Addresses common async pitfalls like race conditions, improper error handling, and timing issues."
```

## After PR is Merged

Once your PR is merged:

1. Sync your local main branch:
```bash
cd ~/.config/superpowers/skills/
git checkout main
git pull upstream main
git push origin main
```

2. Delete the feature branch:
```bash
git branch -d "add-${skill_name}-skill"
git push origin --delete "add-${skill_name}-skill"
```

## Troubleshooting

**"gh: command not found"**
- Install GitHub CLI: https://cli.github.com/
- Authenticate: `gh auth login`

**"Permission denied (publickey)"**
- Check SSH keys: `gh auth status`
- Set up SSH: https://docs.github.com/en/authentication

**"Skill already exists"**
- You're creating a modified version
- Consider different skill name or coordinate with the skill's maintainer

**PR merge conflicts**
- Rebase on latest upstream: `git fetch upstream && git rebase upstream/main`
- Resolve conflicts
- Force push: `git push -f origin your-branch`

## Multi-Skill Contributions

**Do NOT batch multiple skills in one PR.**

Each skill should:
- Have its own feature branch
- Have its own PR
- Be independently reviewable

**Why?** Individual skills can be reviewed, iterated, and merged independently.

## Related Skills

- **skills/meta/writing-skills** - How to create well-tested skills


---
*Source: https://skills.yangsir.net/skill/gh-sharing-skills*
*Markdown mirror: https://skills.yangsir.net/api/skill/gh-sharing-skills/markdown*