Skip to main content
ClaudeWave
Skill55 estrellas del repoactualizado 2mo ago

oss-second-contribution

|

Instalar en Claude Code
Copiar
git clone --depth 1 https://github.com/chiruu12/OSS-Skills /tmp/oss-second-contribution && cp -r /tmp/oss-second-contribution/skills/oss-second-contribution ~/.claude/skills/oss-second-contribution
Después abre una sesión nueva de Claude Code; el skill carga automáticamente.

SKILL.md

# Second Contribution

Your first PR got merged. Now what? Most contributors disappear here. This skill covers the transition from "someone who submitted a PR once" to "recognized contributor" — through deliberate relationship building, progressive challenge escalation, and sustained presence.

## Purpose

One merged PR makes you a contributor. Three makes you recognized. Ten makes you trusted. But this isn't about counting PRs — it's about building a relationship with the project and its maintainers. Each contribution should be harder than the last, teach you something new, and demonstrate growing understanding of the project. This skill helps you plan that trajectory instead of randomly picking issues.

## When to Use

- Your first PR was merged and you want to continue contributing
- You want to transition from occasional contributor to regular
- You're planning sustained involvement in a project (e.g., for GSoC, career growth)
- **NOT** for your first contribution — use `oss-find-issue` → `oss-prep-to-contribute` → `oss-contribute`
- **NOT** if your first PR was rejected — reflect on the feedback first

## Prerequisites

- At least one PR merged in the target repo
- Understanding of the repo's contribution workflow (from first contribution)
- `gh` CLI authenticated

## Process

### 1. Reflect on the first contribution

Before planning the next one, learn from the last one.

```bash
# Review your merged PR
gh pr list -R {owner}/{repo} --state merged --author @me --json number,title,mergedAt,reviews,comments

# Read the review comments — what did the maintainer catch?
gh pr view {number} -R {owner}/{repo} --json reviews,comments
```

Answer honestly:
- What went well? What was harder than expected?
- What feedback did the maintainer give? (Review comments reveal what they care about)
- How long did the review take? (Fast review = maintainer trusts the work)
- Did you enjoy working in this codebase? (Sustained contribution requires genuine interest)

### 2. Assess the relationship

Your relationship with the maintainer determines what contributions are appropriate.

```bash
# Check maintainer's responsiveness to your PR
gh pr view {number} -R {owner}/{repo} --json createdAt,mergedAt,reviews --jq '{created: .createdAt, merged: .mergedAt, review_count: (.reviews | length)}'

# Check if they've interacted with you elsewhere
gh api search/issues --method GET -f q="repo:{owner}/{repo} commenter:@me" --jq '.items | length'
```

**Signals the maintainer wants more contributions**:
- Fast review turnaround on your first PR
- "Nice work" or "feel free to tackle more" in PR comments
- They tagged you in related issues
- They approved without extensive revision requests

**Signals to slow down**:
- PR sat for weeks without review
- Extensive revision requests suggesting misalignment
- No acknowledgment beyond the merge
- Repo has very few maintainers (they may be overwhelmed)

### 3. Thinking gate — commitment check

> "Before picking your next issue:
> 1. Why do you want to continue contributing to this repo specifically? (Tech, community, mission, learning?)
> 2. What did your first contribution teach you about the codebase?
> 3. What area of the codebase do you want to understand next?
> 4. What's a realistic cadence? (One PR per week? Per month?)"

Wait for their answer. If they can't articulate why THIS repo, suggest they explore others before committing. Sustained contribution without genuine interest leads to burnout and abandoned PRs.

### 4. Find the next issue with complexity escalation

Your second contribution should be harder than your first — but not dramatically so.

```bash
# Issues in related areas (build on what you know)
gh issue list -R {owner}/{repo} --state open --label "help wanted" \
  --json number,title,labels,authorAssociation,createdAt \
  --jq '.[] | select(.authorAssociation == "MEMBER" or .authorAssociation == "OWNER") | "\(.number)\t\(.title)"'

# Check if maintainer has requested help with anything specific
gh issue list -R {owner}/{repo} --state open --search "help needed" \
  --json number,title,author,authorAssociation | head -10
```

**Complexity escalation ladder**:

| Contribution # | Appropriate Complexity |
|---------------|----------------------|
| 1 (done) | Bug fix, test addition, docs fix |
| 2 | Bug fix in a different module, feature enhancement |
| 3 | Small feature, cross-module change |
| 4-5 | Medium feature, design decision involved |
| 6+ | Significant feature, architectural input |

Pick something that:
- Builds on what you learned (related area, same patterns)
- Is slightly harder (new module, more files, design decisions)
- Has maintainer endorsement (filed by maintainer or labeled for help)

### 5. Build presence beyond code

Code contributions aren't the only way to earn trust. Do 1-2 of these between PRs:

**Review other PRs** (→ `oss-review-prs`):
```bash
# Find PRs you can meaningfully review
gh pr list -R {owner}/{repo} --state open --json number,title,additions,deletions,reviews \
  --jq '.[] | select((.reviews | length) < 2) | "\(.number)\t\(.additions)+\(.deletions)\t\(.title)"'
```

**Answer questions in issues**:
```bash
# Find issues where you can help (in areas you understand)
gh issue list -R {owner}/{repo} --state open --label "question" --json number,title
```

**Join the communication channel**:
- Check CONTRIBUTING.md for Discord, Slack, or mailing list links
- Lurk first, then answer questions in your area of knowledge
- Don't announce yourself — contribute by being helpful

### 6. Track your trajectory

Keep a mental model of your growing understanding.

```bash
# Your contribution history
gh pr list -R {owner}/{repo} --state merged --author @me --json number,title,mergedAt,additions,deletions \
  --jq '.[] | "\(.mergedAt[:10])\t+\(.additions)/-\(.deletions)\t\(.title)"'
```

After each contribution, update your map:
- **Areas I understand**: which modules, patterns, and subsystems?
- **Areas I don't understand**: where ar