home / skills / jackspace / claudeskillz / sharing-skills_obra

sharing-skills_obra skill

/skills/sharing-skills_obra

This skill guides contributors to share broadly useful skills upstream via a structured branch, commit, push, and PR workflow.

npx playbooks add skill jackspace/claudeskillz --skill sharing-skills_obra

Review the files below or copy the command above to add this skill to your agents.

Files (3)
SKILL.md
4.5 KB
---
name: sharing-skills
description: Use when you've developed a broadly useful skill and want to contribute it upstream via pull request - guides process of branching, committing, pushing, and creating PR to contribute skills back to upstream repository
---

# 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 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)
- **REQUIRED:** Skill has been tested using writing-skills 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

- **writing-skills** - REQUIRED: How to create well-tested skills before sharing

Overview

This skill documents a repeatable process for contributing a broadly useful skill from your local clone back to the upstream project via a pull request. It guides branching, committing, pushing, and creating a PR with clear commit and PR message structure so contributions are review-ready. The goal is to make sharing safe, consistent, and easy to review.

How this skill works

Follow a linear workflow: sync your main branch with upstream, create a feature branch named add-<skill>-skill, add or edit the skill files in the skills directory, commit with a descriptive message and testing note, push the branch to your fork, and open a PR to upstream with a summary, testing details, and context. After merge, sync main and delete the feature branch locally and remotely.

When to use it

  • You built a skill that is broadly useful beyond a single project or org
  • The skill is well-tested and documented according to the required testing process
  • You want the community to review and maintain the skill upstream
  • You need to share patterns or techniques others will reuse
  • You have a stable, non-sensitive implementation ready for public consumption

Best practices

  • Keep each skill on its own feature branch and open one PR per skill
  • Sync main with upstream before branching to avoid merge conflicts
  • Include testing notes and a brief description in the commit and PR body
  • Follow the required testing process so reviewers can validate changes quickly
  • Use clear branch and PR titles like add-<skill-name>-skill for discoverability

Example use cases

  • Add a new data-processing skill that standardizes CSV ingestion patterns
  • Share a tested async patterns skill that reduces race conditions in agents
  • Contribute a cloud-infrastructure automation skill for common deploy tasks
  • Publish a bioinformatics helper skill that encapsulates a reusable analysis step
  • Submit a documentation or markdown helper skill that enforces project conventions

FAQ

What if gh CLI is not installed?

Install the GitHub CLI and authenticate (gh auth login) before creating PRs from the command line.

Can I include multiple skills in one PR?

No. Submit one skill per branch and PR so each can be reviewed and merged independently.

How do I resolve merge conflicts with upstream?

Fetch upstream and rebase onto upstream/main, resolve conflicts locally, then force-push your branch to update the PR.