Getting Started
Reading Documentation

Reading Project Documentation

⚠️

Read Before You Code

80% of rejected PRs could have been avoided if the contributor read the docs. This is not optional.

The Documentation Hierarchy

┌─────────────────────────────────────────────────────────────────────────────┐
│                       DOCUMENTATION HIERARCHY                               │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                             │
│  PRIORITY 1: MUST READ                                                      │
│  ══════════════════════                                                     │
│  ┌─────────────────────────────────────────────────────────────────────┐   │
│  │  README.md              Project overview, setup, usage              │   │
│  │  CONTRIBUTING.md        HOW TO CONTRIBUTE                           │   │
│  │  CODE_OF_CONDUCT.md     Community rules                             │   │
│  └─────────────────────────────────────────────────────────────────────┘   │
│                                                                             │
│  PRIORITY 2: SHOULD READ                                                    │
│  ════════════════════════                                                   │
│  ┌─────────────────────────────────────────────────────────────────────┐   │
│  │  LICENSE                 Legal terms                                │   │
│  │  SECURITY.md            Security policies                           │   │
│  │  CHANGELOG.md           Version history                             │   │
│  │  Issue templates        How to report bugs/features                 │   │
│  │  PR templates           What to include in PRs                      │   │
│  └─────────────────────────────────────────────────────────────────────┘   │
│                                                                             │
│  PRIORITY 3: HELPFUL                                                        │
│  ════════════════════                                                       │
│  ┌─────────────────────────────────────────────────────────────────────┐   │
│  │  /docs folder           Detailed documentation                      │   │
│  │  Architecture docs      System design                               │   │
│  │  API documentation      Interface specifications                    │   │
│  │  Wiki                   Extended guides                             │   │
│  └─────────────────────────────────────────────────────────────────────┘   │
│                                                                             │
└─────────────────────────────────────────────────────────────────────────────┘

README.md Deep Dive

What to Extract

Project Purpose

What problem does this solve? Who is it for? Understanding purpose helps you contribute meaningfully.

Tech Stack

Languages, frameworks, dependencies. Do you have the skills needed?

Setup Instructions

Prerequisites, installation steps, configuration. Follow these exactly.

Project Structure

Directory layout, key files, architecture overview.

Common README Sections

SectionWhat It Contains
BadgesBuild status, coverage, version, downloads
DescriptionOne-paragraph summary of the project
FeaturesWhat the project does
InstallationHow to install/set up
Quick StartGet running in minimal steps
DocumentationLinks to detailed docs
ContributingLink to CONTRIBUTING.md
LicenseWhat you can do with the code

CONTRIBUTING.md: The Bible

⚠️

This is Non-Negotiable

Every project has its own rules. CONTRIBUTING.md tells you exactly what they are. Ignoring it = PR rejection.

What to Look For

┌─────────────────────────────────────────────────────────────────────────────┐
│                     CONTRIBUTING.md CHECKLIST                               │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                             │
│  BEFORE STARTING                                                            │
│  ═══════════════                                                            │
│  □ Required: File issue before PR?                                          │
│  □ Required: Sign CLA (Contributor License Agreement)?                      │
│  □ Required: Discuss approach first?                                        │
│  □ Required: DCO (Developer Certificate of Origin)?                         │
│                                                                             │
│  CODE REQUIREMENTS                                                          │
│  ═════════════════                                                          │
│  □ Code style guide or linter config                                        │
│  □ Testing requirements                                                     │
│  □ Documentation requirements                                               │
│  □ Type annotations required?                                               │
│                                                                             │
│  PR REQUIREMENTS                                                            │
│  ═══════════════                                                            │
│  □ Branch naming convention                                                 │
│  □ Commit message format                                                    │
│  □ PR title format                                                          │
│  □ Required reviewers                                                       │
│  □ CI checks that must pass                                                 │
│                                                                             │
│  COMMUNICATION                                                              │
│  ═════════════                                                              │
│  □ Where to ask questions (Discord, Slack, GitHub Discussions)              │
│  □ Expected response times                                                  │
│  □ Who to tag for what                                                      │
│                                                                             │
└─────────────────────────────────────────────────────────────────────────────┘

Common Requirements

Fork and Clone

Most projects want you to fork, not branch directly.

Create Feature Branch

Usually from main or develop. Check the docs.

git checkout -b fix/issue-123-typo

Run Tests Locally

npm test
# or
pytest
# or whatever the project uses

Follow Commit Convention

Many use Conventional Commits:

fix: correct typo in README
feat: add dark mode support
docs: update installation guide

Submit PR with Template

Fill out every section. Don't skip.


CODE_OF_CONDUCT.md

Every good project has one. It tells you:

  • Expected behavior
  • Unacceptable behavior
  • How to report issues
  • Consequences for violations
┌─────────────────────────────────────────────────────────────────┐
│                   TYPICAL RULES                                 │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  ✓ Be respectful and inclusive                                 │
│  ✓ Accept constructive criticism gracefully                    │
│  ✓ Focus on what's best for the community                      │
│  ✓ Show empathy toward other community members                 │
│                                                                 │
│  ✗ No harassment, trolling, or personal attacks                │
│  ✗ No discriminatory language or imagery                       │
│  ✗ No publishing others' private information                   │
│  ✗ No conduct inappropriate in a professional setting          │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

Issue Templates

When a project has issue templates, USE THEM:

┌─────────────────────────────────────────────────────────────────┐
│                   BUG REPORT TEMPLATE                           │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  **Describe the bug**                                           │
│  A clear description of what the bug is.                        │
│                                                                 │
│  **To Reproduce**                                               │
│  Steps to reproduce:                                            │
│  1. Go to '...'                                                 │
│  2. Click on '....'                                             │
│  3. See error                                                   │
│                                                                 │
│  **Expected behavior**                                          │
│  What you expected to happen.                                   │
│                                                                 │
│  **Environment**                                                │
│  - OS: [e.g. macOS 14.0]                                        │
│  - Node version: [e.g. 20.0.0]                                  │
│  - Package version: [e.g. 2.1.0]                                │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

Where to Find Docs

LocationWhat to Look For
Repository rootREADME, CONTRIBUTING, LICENSE, CODE_OF_CONDUCT
/docs folderDetailed guides, architecture, API docs
GitHub WikiExtended tutorials, FAQ
Project websiteUser-facing documentation
GitHub DiscussionsQ&A, announcements

Reading Tips

💡

Active Reading

Don't just skim. Take notes on requirements, conventions, and processes.

Make a Cheat Sheet

For each project, create a personal cheat sheet:

# [Project Name] Contribution Cheat Sheet
 
## Setup
- Node version: 18+
- Install: `npm install`
- Test: `npm test`
 
## Git Workflow
- Fork → Clone → Feature branch
- Branch naming: `type/issue-number-description`
- Commit format: Conventional Commits
 
## Before PR
- [ ] Tests pass locally
- [ ] Linter passes
- [ ] Docs updated if needed
- [ ] Issue linked
 
## PR Template
- Summary: What this does
- Motivation: Why this is needed
- Testing: How it was tested
- Checklist: All items checked
 
## Communication
- Questions: GitHub Discussions
- Chat: Discord #help-wanted

Final Checklist

  • I've read the entire README.md
  • I've read CONTRIBUTING.md (twice)
  • I've read the CODE_OF_CONDUCT.md
  • I know the required commit format
  • I know where to ask questions
  • I know what CI checks must pass
  • I've bookmarked relevant documentation
  • I've created a personal cheat sheet