Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
8a707d0
Merge pull request #1 from sidwyn/update-vendor-section
sidwyn Feb 26, 2026
fdcabe7
Restructure repo as interactive practice guide for Tool School: GitHu…
hannahstulberg Feb 26, 2026
b360e6a
Remove placeholder article links and point to in-repo guide
hannahstulberg Feb 26, 2026
182f154
Add GitHub 101 article as in-repo reference guide
hannahstulberg Feb 26, 2026
28f2197
Rewrite CLAUDE.md files to teach GitHub 101 and update article
hannahstulberg Feb 26, 2026
063b861
Merge pull request #2 from sidwyn/set-up-practice-repo
hannahstulberg Feb 26, 2026
6f45b91
Update article draft, fix title rendering, and sync CLAUDE.md line nu…
hannahstulberg Feb 27, 2026
9264e9a
Update README to highlight interactive guide and support multiple AI …
hannahstulberg Feb 27, 2026
e31dde6
Merge pull request #4 from sidwyn/readme-updates-2-26-26
hannahstulberg Feb 27, 2026
feba7ab
Update article
hannahstulberg Feb 27, 2026
b933d09
Add article link, license, and copyright notice
hannahstulberg Feb 27, 2026
6e034dc
Merge pull request #5 from sidwyn/repo-updates-2-27-27
hannahstulberg Feb 27, 2026
50f5407
Update author links to LinkedIn profiles
hannahstulberg Feb 27, 2026
75e4d35
Merge pull request #6 from sidwyn/update-readme-hyperlinks-2-27-26
hannahstulberg Feb 27, 2026
b940e8a
Update article and sync CLAUDE.md files with new line numbers and str…
hannahstulberg Feb 28, 2026
15be163
Merge pull request #7 from sidwyn/practice-repo-updates-2-28-26
hannahstulberg Feb 28, 2026
22fb270
learning from github 101
Mar 2, 2026
ff562b3
Merge pull request #9 from theinnercoach/alex/work
hannahstulberg Mar 3, 2026
5b5d9bd
Add takeaway from fmendezc98
Mar 4, 2026
7baf805
Add trailing newline to takeaway file
hannahstulberg Mar 5, 2026
23d7e28
Merge pull request #10 from fmendezc98/fmendezc98/takeaway
hannahstulberg Mar 5, 2026
26f58c6
Add takeaway from prithviguruprasad
prithviguruprasad Mar 27, 2026
04fbce2
Add takeaway from drcap04
drcap04 Mar 27, 2026
4b82ea5
Add takeaway from nikhilgr
nikhilgr Mar 27, 2026
2abc19b
Add takeaway from rajat-pm-lab
rajat-pm-lab Mar 27, 2026
5599eae
Add community board entry from prithviguruprasad
prithviguruprasad Mar 27, 2026
779db16
Merge remaining community board entries and takeaway files from PRs #…
hannahstulberg Mar 27, 2026
d26a903
New file outlining the takeaways from this session.
alt-art-new Mar 31, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 0 additions & 7 deletions .vscode/settings.json

This file was deleted.

44 changes: 30 additions & 14 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,34 @@
# Claude Notes
# acme-ops

This file collects working notes for the acme-ops repository. Add short decisions, reminders, and open questions here so the team can track operational context over time.
## Your Role
You are a GitHub instructor. When someone opens this repo, they are here to learn GitHub for the first time. Your job is to help them understand Git and GitHub concepts, practice commands, and build confidence — all using this repo as their sandbox.

## Purpose
- Capture key operational decisions and dates.
- Track pending follow-ups and owners.
- Keep a lightweight log of notable changes.
Most readers are non-technical — PMs, ops people, marketers, and other professionals using GitHub for the first time as part of an AI-native workflow. They may have never used a terminal before this. Be patient, use plain language, avoid jargon, and never assume prior Git or command line knowledge. When explaining a concept, reference the specific section of the article where they can read more. When they seem stuck, suggest something concrete they can try with the files in this repo.

## Current Focus
- Refresh quarterly playbooks.
- Validate vendor coverage and renewals.
- Confirm onboarding steps for new hires.
## The Lesson
The full article lives at `guides/github-101.md`. This is the primary teaching resource. When answering questions, look up the relevant section using the article index in `guides/CLAUDE.md` and point the reader to the right part of the article.

## Open Items
- Schedule facilities walk-through.
- Review expense policy for 2026.
- Update template language for weekly updates.
## What's in This Repo

### Practice content: `acme/`
This is a fictional operations folder for a character named Sarah who works at Acme, a B2B SaaS startup. It contains playbooks, procedures, and templates — the kind of real documents someone might manage with GitHub. Readers should use these files to practice editing, committing, branching, and opening pull requests.

### Article and reference: `guides/`
- `github-101.md` — The full Tool School: GitHub 101 article
- `CLAUDE.md` — An article index mapping topics and questions to specific sections and line numbers. Use this to quickly find the right part of the article when answering questions.

### Reader contributions: `takeaways/` and `community-board.md`
Readers fork and clone this repo (https://github.com/sidwyn/acme-ops) in Part 2 of the article (line 456). The article ends with a practice exercise ("Your Turn: Submit Your First PR" — line 1151) where readers use their existing fork to contribute. There are two paths:

- **Easy path:** Create `takeaways/[your-github-username].md` with a takeaway from the article. Branch, commit, push, open a PR back to the original repo.
- **Challenge path:** Edit `community-board.md` instead. This is more likely to produce a merge conflict, which gives readers practice resolving one.

If a reader asks for help with the exercise, walk them through the branch → edit → commit → push → PR workflow step by step. They should already have their fork and clone from Part 2 — if not, help them fork and clone first.

## How to Help Readers

1. **Answer GitHub questions** by explaining the concept simply, then pointing to the relevant article section (use `guides/CLAUDE.md` to find it fast)
2. **Suggest hands-on practice** — if someone asks "what's a branch?", explain it, then suggest they try creating one on this repo
3. **Guide contributions** — walk readers through forking, branching, adding a file to `takeaways/`, and opening a PR
4. **Reference the article** — the article uses Google Drive analogies to explain Git concepts. Use the same framing when it helps.
5. **Normalize mistakes** — beginners will make errors. Help them recover and learn from it. Git is designed to be recoverable.
26 changes: 26 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
Creative Commons Attribution-NonCommercial 4.0 International

Copyright (c) 2026 Hannah Stulberg and Sidwyn Koh

This work is licensed under the Creative Commons Attribution-NonCommercial 4.0 International License.

You are free to:
- Share — copy and redistribute the material in any medium or format
- Adapt — remix, transform, and build upon the material

Under the following terms:
- Attribution — You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
- NonCommercial — You may not use the material for commercial purposes.
- No additional restrictions — You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits.

To view a copy of this license, visit:
https://creativecommons.org/licenses/by-nc/4.0/

Full Legal Code:
https://creativecommons.org/licenses/by-nc/4.0/legalcode

---

Article Content (guides/github-101.md)
© 2026 Hannah Stulberg and Sidwyn Koh. Originally published on Substack.
Included in this repository with the authors' permission. All rights reserved.
31 changes: 22 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,26 @@
# acme-ops

Operational documentation for the Acme Ops team. Use this repository to store playbooks, procedures, and templates needed to run day-to-day operations.
The interactive practice repo for [Tool School: GitHub 101](https://hannahstulberg.substack.com/p/tool-school-github-101) — a collaborative article by [Hannah Stulberg](https://www.linkedin.com/in/hannah-stulberg/) and [Sidwyn Koh](https://www.linkedin.com/in/sidwyn/).

## Structure
- `playbooks/`: Repeatable operational guides.
- `procedures/`: Step-by-step policies and processes.
- `templates/`: Reusable document templates.
Hannah writes [In the Weeds](https://hannahstulberg.substack.com/), a newsletter about practical AI workflows to help you get things done — no coding required. Sidwyn writes [Path to Staff Engineer](https://www.pathtostaff.com/), a newsletter with weekly insights on accelerating your software engineering career. Together they wrote this guide to help non-technical professionals learn GitHub for the first time.

## Usage
1. Start with the relevant playbook or procedure.
2. Use templates for consistent reporting.
3. Keep updates concise and dated.
Clone this repo and you get two things: an interactive lesson where you apply the concepts from the article, and the full article itself as a built-in reference guide. The repo is structured so that your AI coding agent acts as your instructor — when you get stuck, just ask. *"How do I open a pull request?"* It walks you through it using the guide you're already learning from.

Works with Claude Code, Codex, Cursor, Antigravity, or any other AI coding agent that reads project instructions from markdown files. The repo includes CLAUDE.md files that provide context about the practice exercises and GitHub concepts — rename them to match your tool's convention (such as `AGENTS.md`) and you're set.

## What's in this repo

- **acme/**: Sarah's operations folder from the article examples. Playbooks, procedures, and templates you can practice editing.
- **guides/**: The full GitHub 101 article as a markdown file, plus agent instructions that help your AI coding tool answer your GitHub questions.
- **takeaways/**: Submit your first PR here! Share what you learned.

## Getting Started

1. [Read the article](https://hannahstulberg.substack.com/p/tool-school-github-101) (or just clone and ask your AI coding agent as you go)
2. Clone this repo: `git clone git@github.com:sidwyn/acme-ops.git`
3. Follow along with the guide
4. Submit your first PR to `takeaways/`

## Using an AI coding agent with this repo

This repo includes CLAUDE.md files that give your AI coding agent context about the practice exercises and GitHub concepts. If you get stuck while following the guide, just ask — it already knows the repo and can help. Rename the CLAUDE.md files to match your tool's convention (ex:`AGENTS.md`) if you're not using Claude Code.
25 changes: 25 additions & 0 deletions acme/CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Acme Operations

## What We Do
Acme is a B2B SaaS startup selling project management tools to mid-size companies (50-500 employees). This folder contains operational documentation maintained by the ops team.

## What's Here

- **playbooks/** — Repeatable operational guides
- `onboarding-checklist.md` — New hire onboarding steps
- `quarterly-ops-playbook.md` — Quarterly planning and execution guide
- `vendor-management.md` — Vendor evaluation and management
- **procedures/** — Step-by-step policies and processes
- `expense-policy.md` — Expense submission and approval policy
- `office-move-2026.md` — Office relocation plan and timeline
- **templates/** — Reusable document templates
- `vendor-eval-template.md` — Template for evaluating new vendors
- `weekly-update-template.md` — Template for weekly status updates

## Current Focus
- Refresh quarterly playbooks for upcoming quarter
- Validate vendor coverage and renewals
- Confirm onboarding steps for new hires

## Practice Sandbox
These files are the practice content for the GitHub 101 lesson. Readers should feel free to edit, reorganize, or add to anything here — that's the whole point. Try creating a branch, making a change to one of these files, committing it, and opening a pull request. If something breaks, Git makes it easy to undo. Encourage experimentation.
File renamed without changes.
File renamed without changes.
File renamed without changes.
26 changes: 26 additions & 0 deletions community-board.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Community Board

Add your takeaway below! This is the "challenge path" from the GitHub 101 article - editing a shared file means you might encounter a merge conflict. That's the point.

---

<!-- Add your takeaway below this line -->

### @prithviguruprasad

One thing I learned from GitHub 101 is that it's structured similarly to Google Drive, which made it much easier and less daunting to understand.

I plan to use it to build an automated agent that might help with repetitive weekly status updates.

This was super helpful! Instead of using the Claude desktop app, shifting to VSCode with Claude in terminal and using the PR functionality will help the team! — @KevinRelay

thefamilymanhq: learned process that engr typically take for github. takeaways - use branches for better organization and collaboration

adamzeeee: GitHub is very cool and not scary at all!

**jvanboheemen** — Geleerd dat forken en clonen praktisch hetzelfde doen, context is het verschil. GitHub is minder dev-only dan ik dacht — ook goed bruikbaar voor PMs. Plan: meer GitHub gebruiken als PM en AI integreren in projectworkflows.

**TeammateBob** — This guide was a great intro to GitHub. Branching finally makes sense to me!

**MMoscosoCruz** — GitHub finally clicked for me after reading this guide. Learning the vocabulary, understanding branches and pull requests, and setting it all up with Claude Code made the whole thing feel approachable. Highly recommend this article to anyone starting out.
- I learned about the git workflow and came up with an acronym for it 'Pizza Before Every Commit Prevent Poor Moods' — @Della05
122 changes: 122 additions & 0 deletions guides/CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
# GitHub 101 — Quick Reference & Article Index

This file helps Claude quickly answer GitHub questions by pointing to the right section of `github-101.md`. For detailed explanations, read the full article.

## Article Map

| Section | Line | What it covers |
|---------|------|----------------|
| **GitHub in Plain Language** | 61 | What Git and GitHub are, why they matter for non-engineers, how collaboration works |
| **Meet the Practice Repo** | 115 | Introduction to the acme-ops practice repo used throughout the article |
| **Part 1: Setup & Installation** | 142 | GitHub account, installing Git, configuring Git, SSH keys, GitHub CLI, GitHub MCP |
| **Part 2: GitHub Repositories 101** | 292 | What repos are, repo structure on GitHub, organizing repos, public vs private, cloning, forking |
| **Part 3: The Daily GitHub Workflow** | 525 | The 6-step workflow (branch → edit → commit → push → PR → merge), Google Drive comparisons, deep dive on each step |
| **When Things Go Wrong** | 1045 | Common Git errors and how to fix them |
| **.gitignore** | 1119 | What files to exclude from Git (API keys, node_modules, etc.) |
| **Your Turn: Submit Your First PR** | 1151 | Practice exercise — easy path and challenge path |
| **Preview: GitHub 102** | 1180 | What's coming in the next article |

### Part 1 subsections
| Topic | Line |
|-------|------|
| Create a GitHub Account | 158 |
| Install Git | 164 |
| Configure Git | 192 |
| Set Up SSH Keys | 207 |
| Install the GitHub CLI | 250 |
| Install the GitHub MCP (optional) | 269 |

### Part 2 subsections
| Topic | Line |
|-------|------|
| What is a Repository? | 303 |
| What a Repo Looks Like on GitHub | 317 |
| How to Organize Your Repos | 332 |
| Before You Create: Key Decisions | 358 |
| GitHub vs. Cloud Storage: When to Use Each | 390 |
| Finding and Using Other People's Repos | 417 |
| Forking repos | 446 |
| Your First Repo: Fork and Clone acme-ops | 456 |

### Part 3 subsections
| Topic | Line |
|-------|------|
| GitHub Is the New Google Drive (concept comparison) | 536 |
| The Short Version (6-step quick reference) | 567 |
| Step 1: Get to your branch | 617 |
| Step 2: Make your edits | 727 |
| Step 3: Commit | 735 |
| Step 4: Push | 796 |
| Step 5: Open a pull request (PR) | 813 |
| Step 6: Merge | 940 |
| Beyond the Daily Workflow | 995 |
| Sarah's Full Workflow (end-to-end example) | 1019 |

## Topic Quick Lookup

If the reader asks about... → point them here:

| Question or topic | Article section | Line |
|-------------------|----------------|------|
| What is GitHub / Git? | GitHub in Plain Language | 61 |
| How do I install Git? | Install Git | 164 |
| SSH keys / permission denied | Set Up SSH Keys | 207 |
| How do I clone a repo? | Your First Repo: Fork and Clone acme-ops | 456 |
| What's a branch / how do branches work? | Step 1: Get to your branch | 617 |
| How do I commit? | Step 3: Commit | 735 |
| What's the difference between commit and push? | Step 4: Push | 796 |
| How do I open a pull request? | Step 5: Open a pull request | 813 |
| How do PRs / code review work? | Step 5: Open a pull request | 813 |
| How do I merge? | Step 6: Merge | 940 |
| What is rebasing? | Step 1: Get to your branch | 617 |
| What is stashing? | Beyond the Daily Workflow | 995 |
| Merge conflicts | When Things Go Wrong — Merge conflict | 1065 |
| Branch is behind main | When Things Go Wrong — Branch behind | 1051 |
| Detached HEAD | When Things Go Wrong — HEAD detached | 1074 |
| What is .gitignore? | .gitignore | 1119 |
| How do I fork a repo? | Forking repos | 446 |
| Public vs private repos | Before You Create: Key Decisions | 358 |
| How do I submit my first PR? | Your Turn | 1151 |
| Google Drive comparison | GitHub Is the New Google Drive | 536 |

## Common Errors — Quick Answers

These give fast answers without needing to read the full article:

- **"Your branch is behind origin/main"** → Run `git pull` or ask Claude: *"Pull the latest changes."*
- **"Merge conflict in [filename]"** → Open the file, resolve the `<<<<<<<` markers, or ask Claude: *"Resolve the merge conflicts in this file."*
- **"HEAD detached at [some hash]"** → Run `git checkout main` or ask Claude: *"I'm in a detached HEAD state, get me back to main."*
- **"Permission denied (publickey)"** → SSH key issue. Test with `ssh -T git@github.com`. See SSH setup at line 207.
- **"I accidentally cloned a repo inside another repo"** → Move the inner repo out so it sits next to the other repo, not inside it.

## Common Questions — Quick Answers

### "How do I undo my last commit?"
If you haven't pushed yet: `git reset --soft HEAD~1` (keeps your changes, removes the commit).
If you have pushed: ask Claude — it depends on whether others have pulled your changes.

### "What's the difference between pushing and opening a PR?"
Pushing uploads your work to GitHub (backup). Opening a PR asks someone to review it before merging into main.

### "My branch is behind main — how do I update it?"
Ask Claude: *"Update my branch with the latest changes from main."*

### "I accidentally committed to main instead of a branch"
Ask Claude: *"I accidentally committed to main. Help me move my changes to a new branch."*

## Key Concepts

| Term | What it means |
|------|---------------|
| Repository (repo) | A project folder tracked by Git |
| Commit | A saved snapshot of your project |
| Branch | A parallel copy for isolated work |
| Main | The official version everyone trusts |
| Pull Request (PR) | A request to review and merge changes |
| Push | Upload commits to GitHub |
| Pull | Download latest changes from GitHub |
| Merge | Combine a branch's changes into main |
| Stash | Temporarily save uncommitted changes |
| Fork | Your own copy of someone else's repo |
| Rebase | Replay your branch's commits on top of the latest main |
| Clone | Download a repo from GitHub to your machine |
Loading