OpenSource Together

Command Palette

Search for a command to run...

Chapter 4: Creating Your First Issue

Opening an issue is often the first visible interaction you have with a project.

A good issue helps maintainers understand a problem quickly and decide what to do next.

This guide focuses on writing issues that are useful, respectful, and actionable.

What an Issue Is (and Is Not)

An issue is:

  • A problem report
  • A proposal
  • A discussion starter

An issue is not:

  • A demand
  • A support ticket
  • A guarantee of implementation

Issues invite collaboration.

When to Open an Issue

Open an issue when:

  • You found a bug
  • Documentation is unclear or incorrect
  • A feature is missing
  • Behavior is surprising
  • Something feels inconsistent

If you are unsure, searching existing issues first is always the right move.

When Not to Open an Issue

Avoid opening an issue when:

  • The documentation already answers the question
  • The issue is purely personal preference
  • The project explicitly discourages certain requests
  • The topic is already actively discussed elsewhere

Respecting scope builds trust.

Checking Before You Write

Before creating an issue:

  • Search existing issues
  • Read the README
  • Check contribution guidelines
  • Review documentation

This prevents duplicates and shows consideration.

Understanding Issue Templates

Many projects provide issue templates.

Templates exist to:

  • Standardize information
  • Reduce back-and-forth
  • Help maintainers act faster

Follow them closely.

Writing a Clear Title

A good title:

  • Is specific
  • Describes the problem
  • Avoids vague language

Examples:

  • “CLI crashes when config file is missing”
  • “Documentation example fails on latest version”

Titles set expectations.

Describing the Problem

A clear issue description includes:

  • What happened
  • What you expected to happen
  • Why it matters

Avoid assumptions about intent or quality.

Focus on observable behavior.

Providing Reproduction Steps

If reporting a bug, include:

  • Environment details
  • Steps to reproduce
  • Minimal examples
  • Error messages or logs

Reproducibility determines actionability.

Including Context

Context helps maintainers decide faster.

Include:

  • Links to relevant documentation
  • Related issues or PRs
  • Screenshots or code snippets when helpful

Context reduces guesswork.

Proposing, Not Demanding

If suggesting a feature:

  • Describe the problem first
  • Explain the use case
  • Suggest an approach cautiously

Avoid prescriptive language.

Maintain flexibility.

Tone and Communication

Effective issues are:

  • Respectful
  • Neutral
  • Concise
  • Collaborative

Avoid:

  • Frustration-driven language
  • Blame
  • Sarcasm

Tone influences response quality.

After Opening the Issue

Once the issue is open:

  • Be ready to answer questions
  • Provide clarification if asked
  • Accept that priorities may differ

Silence does not imply rejection.

Understanding Maintainer Responses

Maintainers may:

  • Ask for more information
  • Redirect the issue
  • Close it with explanation
  • Accept it for future work

All outcomes are valid.

Issues as Contributions

Opening a good issue is a real contribution.

It:

  • Improves project quality
  • Saves maintainer time
  • Helps other users
  • Shapes future work

Not all contributions involve code.

What You Should Be Able to Do Now

You should now be able to:

  • Decide when to open an issue
  • Write a clear and helpful issue
  • Communicate respectfully
  • Handle responses constructively

This is a major step in open source collaboration.

Reflection

Ask yourself:

  • What problem am I trying to surface?
  • Is my issue clear without extra explanation?
  • Would I understand this issue if I were a maintainer?

Clarity is empathy.

Next Up

Chapter 5: Forking a Repository and Setting Up Locally

0 / 13 completed
Previous