The Learning Room: Shared Practice Repository

Listen to Episode 4: The Learning Room - a conversational audio overview of this chapter. Listen before reading to preview the concepts, or after to reinforce what you learned.

What Is the Learning Room?

The Learning Room is a single, shared GitHub repository where all workshop participants collaborate together. It is not your personal fork. It is not your individual repository. It is one repo with many students, many branches, and many pull requests.

Workshop Recommendation (Chapter 3)

Chapter 3 is a system orientation chapter.

Readiness Checkpoint

Before starting Chapter 4 challenges, students should be able to:

  1. Find learning-room/docs/CHALLENGES.md.
  2. Explain issue -> branch -> PR -> review -> merge.
  3. Identify where bot feedback appears on PRs.

Description

The learning-room is a single shared repository. It has a protected main branch, and each student opens pull requests against it. For example: Student A's PR #12 is open and assigned to Student B for review, Student B's PR #13 is assigned to Student C, Student C's PR #14 is assigned to Student A, and Student A's earlier PR #11 has already been merged. More PRs appear as students contribute.

Why one shared repo?

Two Tracks, One Repository

Throughout Day 1, you work on two parallel learning tracks:

Track 1: GitHub Skills Modules (Your Account)

Scope: Your personal account (private to you unless you make it public)
Bot: Mona (GitHub's automated learning bot) guides each step
Pace: Self-directed, you complete at your own speed
Purpose: Hands-on practice of individual skills

Track 2: Learning Room Contribution Sprint (Shared)

Scope: The shared learning-room repository (one repo, visible to everyone)
Bot: The Learning Room automation bot validates PRs and tracks progress
Pace: Structured by facilitator; synchronized with workshop schedule
Purpose: Collaborative practice of the full workflow (issue → branch → PR → review → merge)

The Two Tracks Reinforce Each Other

Step Skills Module (individual) Learning Room (group)
1 Create a branch Create a branch (together)
2 Open a PR Open a PR (see others' too)
3 Get instant bot feedback Get bot feedback + human review
4 Mona verifies your step Human peer reviewer approves
5 Next step unlocked Ready to merge

Learning Room Folder Structure

The learning-room repository contains these files and folders:

Your Practice Branch

When you join the workshop, the facilitator creates a personal practice branch for you in the Learning Room repository. This branch is automatically created using your GitHub username with -practice appended:

Branch naming convention: username-practice (all lowercase)

Examples:

Why you have a practice branch

How to use your practice branch

  1. When you clone the Learning Room repository locally (Chapter 11), switch to your practice branch:
    git checkout username-practice
  2. Make your changes, commit them to your practice branch
  3. Push your practice branch to GitHub
  4. Open a pull request from your practice branch → main

Which branch do I use and when?

Chapter Branch needed? What to use
Chapter 4 (Issues) No Work happens in issue threads directly. No branch or file editing required.
Chapter 6 (PRs, web editor) Yes, auto-created GitHub creates a branch when you click "Propose changes." Name it fix/yourname-issueXX.
Chapter 6 (PRs, local clone) Yes, create manually git checkout -b fix/yourname-issueXX from main.
Chapter 11+ (Local Git) Yes Use your username-practice branch or create fix/yourname-issueXX branches from main.

Summary: Chapter 4 needs no branch. Chapters 6-7 use short-lived fix/ branches. Your username-practice branch becomes essential starting in Chapter 11 when you work locally with Git and VS Code.

The Practice Files: What You Will Work On

The docs/ folder contains three practice files with intentional issues. These are the files you will edit, fix, and submit pull requests for during the contribution sprint. Here is exactly what you will encounter in each file.

docs/welcome.md - Introduction to Open Source Contribution

This file introduces newcomers to open source. It has three [TODO] sections where content is missing:

[TODO] 1 - "Who Can Contribute?" section

[TODO: Add a paragraph explaining that contributors come from all backgrounds, skill levels, and countries. Emphasize that using assistive technology is not a barrier to contribution - in fact, AT users bring a perspective that improves projects for everyone.]

[TODO] 2 - "Finding Something to Work On" section

[TODO: Add two or three sentences about how to read an issue to decide if it is right for you. What questions should you ask yourself? Is the description clear enough? Is anyone else already working on it?]

[TODO] 3 - "After Your Contribution Is Merged" section

[TODO: Add a sentence or two about what this means for someone's GitHub profile and open source portfolio.]

It also has a broken internal link that needs to be found and fixed. Challenges 1 and 3 from CHALLENGES.md map directly to this file.

docs/keyboard-shortcuts.md - Screen Reader Shortcut Reference

This is a comprehensive reference with tables for NVDA, JAWS, and VoiceOver shortcuts. It contains intentional errors in some shortcut references that students need to find and fix.

The file has three major sections:

Plus cross-platform shortcuts for GitHub pages and common workarounds.

Challenge 2 asks you to add a missing shortcut to the correct table. When you edit this file, you must preserve the Markdown table formatting. The bot validates that tables remain well-formed.

docs/setup-guide.md - Getting Ready to Contribute

This step-by-step guide walks through GitHub account setup, accessibility settings, screen reader configuration, and repository forking. It contains broken links that point to incorrect URLs and incomplete steps.

Look for:

This file is used for intermediate and advanced challenges (Challenges 4-6) where students fix heading hierarchy, improve link text, and add missing descriptions.

docs/CHALLENGES.md - Your Challenge Menu

This file lists all 12 challenges organized by skill level:

Level Challenges Requirement
Beginner (1-3) Fix broken link, add shortcut, complete welcome guide 0+ merged PRs
Intermediate (4-6) Fix heading hierarchy, improve link text, add alt text 1+ merged PRs
Advanced (7-9) Accessibility review, create documentation, mentor a peer 3+ merged PRs
Expert (10-12) Design a challenge, full accessibility audit, create issue template 5+ merged PRs

Each challenge lists the file(s) to edit, estimated time, skills practiced, success criteria, and a link to detailed instructions.

docs/GROUP_CHALLENGES.md - Collaborative Exercises

Seven group exercises for study groups, ranging from a Documentation Sprint (divide docs/welcome.md among group members) to a Full Repository Audit (each person audits a section of the workshop documentation). Groups of 2-6 students work together with coordinated PRs and cross-review.

How PR Sharing Works

Step 1: Student Opens a PR

Student A (working on Challenge 3: Complete Welcome Guide)

  1. Finds their assigned issue (Issues tab → filter Assignee:@me)
  2. Opens docs/welcome.md and edits the three [TODO] sections
  3. Commits to a new branch: fix/studentA-issue12
  4. Opens a pull request with description:

    ## What Changed
    Completed the three [TODO] sections in docs/welcome.md:
    - Added contributor backgrounds paragraph
    - Added guidance on evaluating issues
    - Added note about GitHub profile impact
    
    Closes #12
  5. Submits the PR

Visibility: The PR immediately appears in the repo's Pull Requests tab. All students can see it.

Step 2: Automation Bot Validates

Bot (.github/workflows/learning-room-pr-bot.yml)

Visibility: The bot comment appears in the PR. All students can read it.

Step 3: Peer Reviewer Is Assigned

Pairing Bot (.github/workflows/student-grouping.yml)

Visibility

Step 4: Reviewer Reads and Comments

Student C (the assigned reviewer reviewing the welcome.md changes)

  1. Receives notification: "PR review requested"
  2. Navigates to the PR in the Learning Room repo
  3. Reads:
    • PR title: "Complete [TODO] sections in welcome.md"
    • PR description: lists which sections were completed
    • Bot feedback: checks that all [TODO] markers are removed, heading hierarchy is valid
    • The actual file changes (Files Changed tab): sees the diff showing old [TODO] markers replaced with new content
  4. Leaves review comments:
    • Inline comment on the "Who Can Contribute?" paragraph: "Great addition - I especially like the point about AT users bringing valuable perspective."
    • Overall comment: "The content reads well and all TODOs are resolved. One suggestion: the 'Finding Something to Work On' section could mention checking if an issue already has an assignee."
  5. Submits review: Approve (or Request Changes if a [TODO] marker was missed)

Visibility

Step 5: Author Responds and Updates

Student A (PR author)

  1. Reads the bot feedback and human review
  2. Talks to the reviewer if something is unclear
  3. Makes changes based on feedback
  4. Pushes new commits to the same branch
  5. Re-addresses the feedback

Visibility

Step 6: Merge and Celebration

When Reviewer Approves

Bot Posts Celebration

Visibility

What All Students See

What Where Who Sees It
All open PRs Pull Requests tab Everyone
PR description & changes PR page Everyone
Bot feedback PR comments Everyone
Peer review comments PR comments Everyone
Reviewer assignments PR sidebar "Reviewers" Everyone
Merge celebrations PR comments Everyone
Your review request Your notification inbox You + PR author
You assigned as reviewer Your review requests filter You + PR author

The Learning Automation System

When you open a PR in the Learning Room, you get three types of feedback:

Type 1: Automated Bot Feedback (30 seconds)

Type 2: Peer Reviewer Feedback (15-60 minutes)

Type 3: Progress Tracking (on merge)

Together: Instant technical feedback + human mentorship + visible progress

Study Groups (Optional)

If your facilitator creates study groups, you'll be assigned with 2-3 other students:

  1. Group Issue Thread - Private communication space for your group
  2. Shared Review Responsibility - You review each other's work
  3. Collaborative Challenges - Optional group exercises
  4. Peer Support - Tag each other with questions

Example

Study Group #2: @studentA, @studentC, @studentE

This is your collaboration space!
- Review each other's PRs (beyond automated pairing)
- Share tips and resources
- Support each other through challenges
- Celebrate each other's achievements

Key Differences: Skills Module vs. Learning Room

Aspect GitHub Skills (Your Account) Learning Room (Shared)
Repo Your personal copy One shared repo
Bot Mona (GitHub) Learning Room automation bot
Reviewer Mona (auto) Human peer (auto-assigned)
Visibility Private (unless you make public) Public to all workshop students
Pace Self-directed Synchronized with workshop
Purpose Individual skill building Collaborative, real-world practice
Feedback Instant, next-step only Both bot + human, comprehensive
Completion Badge on your profile Progress appears in Learning Paths
Community You alone All students together

Tips for PR Sharing

Finding PRs to Review

Visual / mouse users
  1. Go to github.com/[org]/learning-room
  2. Click the Pull Requests tab
  3. Click the Filters dropdown → "Review requested" → your username
  4. Click any PR title to open it
Screen reader users (NVDA / JAWS)
1. Go to github.com/[org]/learning-room
2. Press D → "Repository navigation"
3. Press K → navigate to "Pull Requests" tab
4. Filter: Press F, type "review-requested:@me"
5. Press H repeatedly to navigate PR titles
6. Press Enter to open a PR
Screen reader users (VoiceOver - macOS)
1. Go to github.com/[org]/learning-room
2. VO+U → Landmarks → "Repository navigation"
3. Quick Nav K → navigate to "Pull Requests" tab → VO+Space
4. Filter: Quick Nav F, type "review-requested:@me", press Return
5. Quick Nav H (or VO+Cmd+H) to navigate PR titles
6. VO+Space to open a PR

Reading a PR You're Assigned To

Visual / mouse users
Screen reader users (NVDA / JAWS)
Conversation Tab (reading reviews):
  1. Press H → navigate headings
  2. Listen for "Reviewers" heading (h3)
  3. Your name appears as reviewer
  4. Read bot comment
  5. Read peer feedback

Files Changed Tab (what actually changed):
  1. Press H to navigate files
  2. Press T to explore file tree
  3. Read the diff with your screen reader
  4. Navigate line comments with H → nested headings
Screen reader users (VoiceOver - macOS)
Conversation Tab (reading reviews):
  1. Quick Nav H or VO+Cmd+H → navigate headings
  2. Listen for "Reviewers" heading
  3. Your name appears as reviewer
  4. VO+Down to read bot comment and peer feedback

Files Changed Tab (what actually changed):
  1. Quick Nav H to navigate file headings
  2. VO+U → Landmarks → "File tree" to explore files
  3. VO+Shift+Down to interact with the diff table, then VO+Down for lines
  4. Navigate line comments with Quick Nav H → nested headings

Leaving a Review

Visual / mouse users
  1. Scroll to the comment box on the Conversation tab
  2. Type your review comment
  3. Click "Review Changes" (top-right of the Files Changed tab, or at the bottom of the PR page)
  4. Select your review type: Comment / Approve / Request changes
  5. Click "Submit review"
Screen reader users (NVDA / JAWS)
1. On Conversation tab, scroll to comment box
2. Switch to Focus Mode (NVDA+Space / Insert+Z)
3. Type your review comment
4. Tab to "Review Changes" button
5. Select review type:
   - "Comment" (just feedback)
   - "Approve" (good to merge)
   - "Request changes" (needs fixes)
6. Tab to "Submit review"
7. Press Enter
Screen reader users (VoiceOver - macOS)
1. On Conversation tab, Quick Nav F or VO+U → Landmarks → "Add a comment"
2. VO+Shift+Down to interact with the comment text area
3. Type your review comment
4. VO+Shift+Up → Tab to "Review Changes" button → VO+Space
5. Select review type:
   - "Comment" (just feedback)
   - "Approve" (good to merge)
   - "Request changes" (needs fixes)
6. Tab to "Submit review" → VO+Space

Responding to Feedback

Visual / mouse users
  1. Open your PR (Pull Requests tab → click your PR)
  2. Read all comments and bot feedback
  3. Click in the comment box to reply
  4. Push your fixes to the same branch
  5. Comment: "Updates pushed, ready for review"
Screen reader users (NVDA / JAWS)
1. Open your PR (find in Pull Requests tab)
2. Read all comments and bot feedback
3. Scroll to comment box
4. Type your response
5. Mention reviewers with @ if clarifying
6. Push your fixes to the same branch
7. Comment: "Updates pushed, ready for review"
Screen reader users (VoiceOver - macOS)
1. Open your PR (find in Pull Requests tab → Quick Nav H to navigate PR titles)
2. Quick Nav H and VO+Down to read all comments and bot feedback
3. VO+U → Landmarks → "Add a comment" to reach the comment box
4. VO+Shift+Down → type your response
5. Mention reviewers with @ if clarifying
6. Push your fixes to the same branch
7. Comment: "Updates pushed, ready for review"

FAQ: PR Sharing in Learning Room

"Can I see other students' PRs?"

Yes! All PRs in the shared repo are visible. This is intentional - you learn by seeing how others approach problems.

"What if I don't agree with my assigned reviewer?"

You can request additional reviewers manually. The bot's assignment is a convenience, not a mandate. Click "Reviewers" → select someone else.

"Will my PR get lost with everyone's open at once?"

No. Each PR has its own conversation thread. The bot update is yours alone. Your reviewer is specifically assigned.

"Can I comment on someone else's PR?"

Yes! Anyone can comment on public PRs. If you see something helpful, jump in. This is real open source.

"What if my reviewer doesn't respond?"

Mention them directly: "@name, any thoughts on the changes I pushed?" or ask your facilitator for help.

"Can I work with a friend?"

Your study group will be created by facilitator, but you likely know your reviewers from the workshop. It's okay to chat between sessions.

"How long does review take?"

Typically 15-60 minutes during the workshop. If a reviewer is slow, your facilitator can help or assign someone else.

"What if bot feedback is wrong?"

Comment explaining why. Request human review. The bot isn't perfect - that's why you have humans too.

"Do I need to complete every challenge?"

No! The Learning Room has challenges for all skill levels. You can pick what interests you, complete at your pace, and continue after the workshop.

Celebration: You're Contributing

Every PR you open and merge in the Learning Room is a real contribution:

You found something to improve
You made a meaningful change
You received feedback (technical + human)
You incorporated suggestions
You merged your work

That is open source contribution. Your facilitator has a record. The GitHub repo has a record. You have a merged commit in your history.

This is not hypothetical. This is not simulation. This is real.

Next: Working with Issues Back: Navigating Repositories Reference: Automation Guide | Available Challenges