Skip to content
Development
Skill

/open-source-contribution

Comprehensive workflow for contributing to open-source projects with quality checks

From plugin
ai-agent-skills
14169 skills

Claude Code

$ npx -y skills add kevinnft/ai-agent-skills --skill open-source-contribution --agent claude-code

SKILL.md

open-source-contribution.SKILL.md
name: open-source-contribution
description: Comprehensive workflow for contributing to open-source projects with quality checks
version: 1.0.0
author: Hermes Agent
license: MIT
metadata:
  hermes:
    tags: [GitHub, Open-Source, Quality, TypeScript, Contribution]
    related_skills: [github-pr-workflow, github-code-review]
origin: original
source_repo: kevinnft/ai-agent-skills
source_url: https://github.com/kevinnft/ai-agent-skills
source_license: MIT
language: en

Open-Source Contribution Workflow

Complete workflow for contributing high-quality PRs to open-source projects.

User Preference: Comprehensive Contributions

**When user says "langsung gas dan maksimalkan" or "contribusi maksimal" or "bantu dia jadi terbaik":**

  • Build COMPREHENSIVE features, not minimal PRs
  • Multiple related features in one PR is OK if cohesive
  • Production-ready quality (tests, docs, error handling)
  • Think like a 10-year veteran engineer
  • **Maximize impact:** Analyze competitors, identify missing features, build world-class solutions
  • **Multi-phase approach:** Quick wins first (1-2 hours), then game changers (4-5 hours)
  • **Quality over speed:** Fix TypeScript errors immediately, don't push broken code

Pre-Contribution Analysis

1. Analyze the Project

**Before forking, understand what's missing:**

# Clone to analyze
git clone https://github.com/owner/repo.git
cd repo

# Check structure
ls -la
find src -name "*.tsx" | head -20

# Check existing features
grep -r "TODO\|FIXME" src/

# Check open issues/PRs
gh issue list --repo owner/repo
gh pr list --repo owner/repo

**Compare with competitors:**

  • What do similar tools have that this doesn't?
  • What are the ESSENTIAL missing features?
  • What would make this project world-class?

**Prioritize by impact:**

  • ๐Ÿ”ฅ CRITICAL: Features without which the tool is unusable (file tree, terminal, editor)
  • ๐ŸŽฏ HIGH: Features that significantly improve UX (keyboard shortcuts, search)
  • โœจ NICE: Polish and quality-of-life improvements (loading states, empty states)

2. Fork and Clone

# Fork via GitHub CLI
gh repo fork owner/repo --remote

# Or manually fork on GitHub, then:
git clone https://github.com/YOUR_USERNAME/repo.git
cd repo
git remote add upstream https://github.com/owner/repo.git

2. Star the Original Repo

**Always star before contributing:**

# Check if already starred
gh repo view owner/repo --json viewerHasStarred

# Star the repo
gh api --method PUT /user/starred/owner/repo

3. Check Open PRs (Avoid Duplicates)

gh pr list --repo owner/repo --json number,title,author

Development Workflow

1. Create Feature Branch

git checkout main
git pull upstream main
git checkout -b feat/your-feature-name

2. Make Changes

Use file tools (`write_file`, `patch`) to implement features.

3. **CRITICAL: Quality Checks BEFORE Committing**

TypeScript/JavaScript

# Type check (fast, low memory)
npx tsc --noEmit

# Common errors to fix:
# - TS6133: Unused variable/import/parameter
# - TS2304: Cannot find name
# - TS2345: Type mismatch

**Fix unused variables:**

// โŒ Bad
const { data, error } = useQuery();  // error unused
return <div>{data}</div>;

// โœ… Good
const { data } = useQuery();
return <div>{data}</div>;

**Fix unused imports:**

// โŒ Bad
import { useState, useEffect } from 'react';  // useEffect unused

// โœ… Good
import { useState } from 'react';

**Fix unused parameters:**

// โŒ Bad
items.map((item, idx) => <div key={item.id}>{item.name}</div>);  // idx unused

// โœ… Good
items.map((item) => <div key={item.id}>{item.name}</div>);

Python

mypy src/
ruff check .

Rust

cargo clippy -- -D warnings
cargo fmt --check

4. Commit with Conventional Commits

git add .
git commit -m "feat(scope): add feature

- Detailed change 1
- Detailed change 2
- Detailed change 3

Closes #issue_number"

**Commit types:**

  • `feat:` โ€” New feature
  • `fix:` โ€” Bug fix
  • `refactor:` โ€” Code restructure
  • `docs:` โ€” Documentation
  • `test:` โ€” Tests
  • `chore:` โ€” Maintenance

5. Push and Create PR

git push -u origin feat/your-feature-name

gh pr create --repo owner/repo \
  --title "feat: Add Feature Name" \
  --body "## Overview
  
Comprehensive description of changes.

## Features
- Feature 1
- Feature 2

## Testing
- Test approach

See docs/FEATURE.md for details."

6. Fix TypeScript Errors in PR

If CI fails with TypeScript errors:

# Check errors
npx tsc --noEmit

# Fix errors (use patch/write_file)

# Commit fix
git add .
git commit -m "fix: remove unused variables (TypeScript errors)"
git push

Quality Standards

Code Quality

  • โœ… No TypeScript errors (`npx tsc --noEmit` passes)
  • โœ… No unused variables/imports/parameters
  • โœ… Proper error handling
  • โœ… Type-safe (no `any`, no `@ts-ignore`)

Documentation

  • โœ… README updated if needed
  • โœ… Add docs/ files for complex features
  • โœ… Code comments for non-obvious logic
  • โœ… Examples in documentation

Testing

  • โœ… Unit tests for new features
  • โœ… Integration tests if applicable
  • โœ… Manual testing documented

PR Description

  • โœ… Clear overview
  • โœ… List of changes
  • โœ… Testing approach
  • โœ… Screenshots/demos if UI changes

Multi-Feature Contributions

**When building comprehensive features (user says "gas semua" or "maksimalkan"):**

Strategy: Phased Approach

**Phase 1: Quick Wins (1-2 hours each)**

  • Essential features that are fast to implement
  • High impact, low complexity
  • Example: Keyboard shortcuts, loading states

**Phase 2: Core Features (2-4 hours each)**

  • Essential features that require more work
  • Game-changing functionality
  • Example: File tree, terminal integration

**Phase 3: Advanced Features (4-6 hours each)**

  • Complex features that complete the experience
  • Example: Code editor (Monaco), Git integration

PR Organization

1. **Group related features** in

Read more
@kevinnft
Ships withai-agent-skills

191 attribution-first agent skills for Hermes Agent, Claude Code, Cursor โ€” one installer, 28 categories, searchable catalog. See NOTICE for upstream attribution.

Stars on GitHub

Momentum

stars in total
14
Star history of kevinnft/ai-agent-skills on GitHub, a chart by star-history.com

Other skills on ai-agent-skills.

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, orโ€ฆ

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills2w309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android โ€” semantic ARIA roles and labels,โ€ฆ

ecc2w293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commitsโ€ฆ

react5d252k
@facebook@facebookInstall Skill

Questions about open-source-contribution.

Which coding agents can use open-source-contribution?
open-source-contribution installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.