Day 1 - Stretch Challenge 08

The Culture Layer

Reflection, community norms, issue triage, labels, and respectful communication.

Challenge Coach audio

Challenge Coach Transcript

Alex and Jamie walk through this challenge step by step.

Alex: Welcome back. Today we are in Challenge 8, The Culture Layer, and it is a good reminder that open source is not only branches, commits, and pull requests.

Jamie: It is also how people treat each other while all that work is happening.

Alex: Exactly. In your Day 1 Learning Room repository, this challenge asks you to reflect on what made the workshop welcoming, then practice a small triage task by adding a descriptive label to an issue. There is no autograder for communication quality here, because a bot cannot fairly judge whether a reflection is thoughtful.

Jamie: So the evidence is human-readable: a reflection, the issue you triaged, the label you chose, and why.

Alex: Open source projects are communities that happen to use code, documentation, issues, and pull requests as their shared workspace. A project can have excellent technology and still feel hard to join if the communication is confusing, dismissive, or rushed.

Jamie: That lands. A newcomer may be trying to understand the tool, the project, the norms, and the social expectations all at once.

Alex: Right. That is why files like CONTRIBUTING.md and CODE_OF_CONDUCT.md matter. CONTRIBUTING.md explains how to participate, and a code of conduct explains the behavior the community expects. Those files tell you that filing a clear issue, improving docs, asking a useful question, or testing a fix can all be real contributions.

Jamie: And accessibility is part of that culture, not just a feature checklist. If the issue template is hard to follow, the branch names are confusing, or the docs skip context, people can get blocked before they even reach the code.

Alex: Yes. The project README is part of the welcome mat too. A helpful README usually gives the project name, what it does, how to install or run it, how to use it, how to contribute, the license, and any accessibility notes that help people participate.

Jamie: What does the reflection part look like in Challenge 8?

Alex: Start with your assigned Challenge 8 issue in your Learning Room repository. The prompt asks you to think about your workshop experience and answer two or three questions in one or two sentences each. You might write about what made you feel supported, what moment taught you something new, what would make the community more inclusive, or how a peer helped you.

Jamie: I like that it is not asking for a perfect essay. It is asking for a real observation.

Alex: Yes, and specific beats polished. Instead of writing, I will communicate better, you might write, I will include the exact step where I got stuck and what I already tried. Or, I will start a review comment by saying what is working before I suggest a change.

Jamie: Some versions of the chapter ask learners to commit to three collaboration behaviors: a respectful review habit, a clear way to ask for help, and a constructive way to respond to feedback.

Alex: Same skill, just a slightly different shape. The goal is to leave a comment that a facilitator can read and say, yes, this person has named a behavior they can actually practice today.

Alex: After the reflection, you will find an issue to triage. In this challenge, the suggested issue is called Peer Simulation: Welcome Link Needs Context, unless your facilitator gives you a real classmate's issue and you have access to it.

Jamie: Triage means sorting and describing the work, right? Not necessarily fixing it.

Alex: Exactly. Open the Issues tab, open the issue, and read the title and description before you touch the labels. Then find the Labels area in the right sidebar. Activate it, choose one label that describes the issue, and close the menu if needed. The label should appear on the issue.

Jamie: And the common choices here are bug, enhancement, documentation, good first issue, and question.

Alex: Yes. Bug means something is not working as expected. Enhancement means a suggested improvement. Documentation means the issue is about instructions, help text, or guidance. Good first issue means the work looks suitable for newcomers. Question means the issue needs clarification before the team can act.

Jamie: What if I cannot add a label?

Alex: That can happen if you do not have collaborator permission. In that case, leave a comment recommending the label and explain why, or ask the facilitator to check permissions. If you do not see any labels at all, open the Labels page from the Issues tab, near Milestones, or ask whether the default labels need to be created.

Jamie: This is where Challenge 8 starts touching Challenge 9 material, because labels are the doorway into organizing work.

Alex: Exactly. Labels are colored tags on issues and pull requests. They tell the team what kind of work something is, and screen readers announce them with the issue title, such as Label: bug, or Labels: accessibility, good first issue.

Jamie: So a label is not decoration. It changes how easy it is to scan, filter, and prioritize.

Alex: Right. You can filter the issue list by one label, combine labels, combine labels with open or closed state, or search across label names. Maintainers can also create new labels, give them descriptions, and choose colors, though description quality matters more than color for many learners.

Jamie: Where do milestones and projects fit?

Alex: A milestone groups issues and pull requests around a goal, release, or deadline. A GitHub Project is a planning board or table that can track items across a workflow, with fields like status, priority, or assignee. If you are unsure where an issue belongs, Needs Triage is a valid project status because it says, someone still needs to decide.

Jamie: And cross-references are the little links GitHub creates when one issue or pull request mentions another, like number 42.

Alex: Yes. Typing a number sign and an issue number can connect the conversation. Keywords like Closes number 42 are stronger: they close the linked issue when the pull request is merged into the default branch, so use them only when the PR really resolves the issue.

Alex: The culture layer also makes more sense when you remember the workflow underneath it: GitHub Flow. It is the lightweight pattern this workshop uses for contributions.

Jamie: That is the one where main stays safe, and you work on a branch.

Alex: Exactly. You create a branch from main with a descriptive name, make a small change, commit it, open a pull request, discuss and revise, wait for checks to pass, and then a maintainer merges it. The pull request becomes the shared conversation space for the change: what changed, why it changed, how to test it, and what feedback came up.

Jamie: I have heard of Git Flow too. Is that different?

Alex: It is. Git Flow is an older and more complex branching model with long-lived branches like main and develop, plus feature, release, and hotfix branches. It can fit scheduled releases, mobile apps, firmware, or enterprise products, but it is more machinery than we need for this workshop.

Jamie: So here, the habit is one focused task per branch.

Alex: Yes. A branch for one documentation fix, one accessibility improvement, or one small feature keeps review easier. If a pull request tries to fix five unrelated things, the conversation gets harder for everyone.

Jamie: What about keeping a fork up to date? That comes up in open source all the time.

Alex: It does. A fork is your copy of someone else's repository, and syncing it brings in changes from the original project. You sync so your work starts from current code, your pull request is easier to review, and you reduce the chance of conflicts.

Jamie: What is the easiest way in the browser?

Alex: On GitHub, open your fork and look for the sync option near the branch controls. If GitHub says your branch is behind, use the update option to bring your main branch current. Then create your work branch after that, not before, when you can.

Jamie: And if I am in the terminal?

Alex: The first time, you add an upstream remote that points to the original repository. After that, the usual rhythm is: switch to main, fetch upstream changes, merge upstream's main into your main, and push your updated main back to your fork on GitHub. In commands, that often looks like git checkout main, git fetch upstream, git merge upstream/main, and git push origin main.

Jamie: GitHub Desktop can help too, but labels still need the browser, right?

Alex: Correct. Desktop can fetch, pull, and push repository changes, and you can use Repository, View on GitHub when you need issue settings like labels. Sync before starting a branch, before opening a pull request, and any time a maintainer says your branch is out of date.

Alex: Small commits are another part of respectful collaboration. A commit message should help the reviewer understand what changed without opening every file first.

Jamie: What does a good commit message sound like?

Alex: The first line is required and should be short, specific, and written like an instruction: Add missing alt text, Fix broken welcome link, Update contributing guide. If you need more context, add a blank line and then a body explaining why the change was needed. A footer can reference an issue, such as Closes number 42, when that is accurate.

Jamie: And atomic commits means each commit is one coherent change.

Alex: Yes. Do not mix a typo fix, a feature change, and a formatting cleanup in one commit if they could be reviewed separately. Also avoid messages like update stuff or final final. Future you, and your reviewers, deserve better breadcrumbs.

Jamie: The communication advice in this chapter is practical. A lot of open source happens in writing, later, and in public.

Alex: That means comments need context. A helpful piece of feedback usually starts by acknowledging what is working, identifies the specific concern, explains why it matters, suggests a path forward if possible, and makes clear whether the concern is blocking or optional.

Jamie: So instead of, This is wrong, I might say, The new instructions are clear, but this link target seems to skip the setup step. Could we point to the beginner guide instead?

Alex: That is much better. Review the code or the documentation, not the person. Use we language when it fits, describe uncertainty honestly with phrases like I may be missing something, and avoid urgent wording unless something is truly urgent.

Jamie: There is also etiquette around comments themselves: stay focused, do not pile on, resolve conversations when they are handled, and use reactions when a full comment would just add noise.

Alex: Saved replies can help with that. They let you store reusable comments for common situations, like thanking someone for a report, asking for reproduction steps, or explaining how to add accessibility details. For many learners, a saved reply reduces typing effort and helps keep tone consistent.

Alex: Reviewers and authors both have responsibilities. Reviewers should ask questions instead of issuing commands, explain requirements instead of gatekeeping knowledge, separate personal preference from project standards, and approve explicitly when the work is ready.

Jamie: And authors should not have to pretend feedback never stings. But they can still respond professionally.

Alex: Yes. Say thank you, explain your choices, surface blockers early, and ask for clarification when a comment is unclear. If feedback is harsh, pause before responding. If you disagree with a decision, explain the tradeoff and accept the maintainer's call. If someone is rude, use the project's code of conduct or ask a facilitator for help. If you accidentally caused offense, acknowledge it, apologize plainly, and adjust.

Jamie: The good first issue label has a social promise behind it too.

Alex: It should mean the issue is scoped, understandable, and supported enough for a newcomer to attempt. And for accessibility issues, inclusive comments describe the barrier, the affected users or assistive technology when known, the expected behavior, and the impact without blaming the person who reported it.

Jamie: There are also different places to talk, and picking the right one is part of the culture.

Alex: Yes. Use issues for trackable work, pull request comments for feedback on a specific change, project boards for planning status, and discussions or chat for broader questions if the project uses them. Security reports should follow the project's SECURITY.md instructions, because public issues are not the right place for a private vulnerability report.

Jamie: And those community health files are worth checking before you contribute: CONTRIBUTING.md, CODE_OF_CONDUCT.md, SECURITY.md, LICENSE, and the README.

Alex: They answer different questions. How do I help? How do we treat each other? How do I report sensitive problems? What am I allowed to do with this code? What is this project and how do I start?

Alex: To finish Challenge 8, put your evidence in the challenge form or issue prompt. Include your reflection answers, the issue you triaged, the label you added, and why you chose it.

Jamie: A simple example would be: Reflection: I felt supported when a peer explained how they found the Issues tab. I learned that asking a clear question is a contribution. I triaged issue number 12 by adding the documentation label because the issue asks for more context in the welcome link.

Alex: That is exactly the level of detail needed. If you add an optional comment on the issue itself, keep it short and useful: I added the documentation label because this issue helps new contributors understand the welcome section.

Jamie: Alternate approaches are fine too, right? Someone might focus on the code of conduct, the contributing guide, or compare this repo's norms with another project they have seen.

Alex: Yes. What matters is that the reflection shows you understand open source has cultural norms as well as technical steps. If you get stuck, write one simple sentence per prompt, draft in a text editor first if that helps, and ask a facilitator for one example you can adapt in your own words.

Jamie: So Challenge 8 is small on purpose, but it is not minor.

Alex: Right. A respectful label, a clear reflection, and a thoughtful comment are all part of contribution work. They make the repository easier to navigate, easier to review, and easier for the next person to join.

Reference Solution

This shows one valid way to complete the challenge. Your approach may differ.

Solution Reference: Challenge 8 -- Open Source Culture

This shows example reflection and triage output. Your response will be personal and different.

Example reflection comment

Reading the CODE_OF_CONDUCT.md and CONTRIBUTING.md files helped me understand that open source projects are communities, not just code. The contributing guide made it clear that you do not need to be an expert to participate -- filing a good issue is a contribution.

One thing I had not considered: accessibility is not just about the product. The way we write issues, name branches, and structure documentation affects whether people with disabilities can participate in the development process itself.

Example triage recommendation

If your challenge asked you to evaluate an issue and recommend a label:

Issue: "The welcome page loads slowly on mobile"

Recommended label: bug

Justification: This describes unexpected behavior (slow loading) that affects the user experience. It is not a feature request because the page is supposed to load quickly. The bug label helps maintainers prioritize fixes.

Additional label suggestion: accessibility -- slow loading disproportionately affects users on assistive technology where each reload is more disruptive.

Alternate approaches

  • Focus on CODE_OF_CONDUCT.md and what it means for inclusive collaboration
  • Focus on CONTRIBUTING.md and what you learned about the contribution process
  • Compare this project's guidelines to another open source project you have seen

What matters

The learning objective is understanding that open source has cultural norms, not just technical ones. Any thoughtful reflection that shows engagement with the governance and contribution documents is a success.

Authoritative Sources

Use these official references when you need the current source of truth for facts in this chapter.

Section-Level Source Map

Use this map to verify facts for each major section in this file.