Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
12 changes: 12 additions & 0 deletions docs/getting-started/RUNBOOK_ASKING_FOR_REVIEW.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Contributor Runbook: Asking for Review

1. Before requesting review:
- Run `python3 -m pytest -q` — all tests must pass.
- Run `python scripts/check_doc_links.py` — no broken links.
- Run `python scripts/safety/check_claims.py` — no overclaiming language.
2. Request review from the relevant maintainer.
3. In your review request, note:
- What the change does
- What testing you've done
- Any areas you're unsure about
4. Respond to review comments promptly.
9 changes: 9 additions & 0 deletions docs/getting-started/RUNBOOK_BLOCKED_WORK.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Contributor Runbook: Blocked Work

1. Document what's blocking you in the issue or PR comments.
2. Tag the relevant maintainer or area expert.
3. Suggest a path forward if you have one.
4. If the block cannot be resolved in 48 hours, consider:
- Picking up a different issue
- Reducing the scope of your current change
- Asking in a project discussion
11 changes: 11 additions & 0 deletions docs/getting-started/RUNBOOK_HANDLING_REVIEW.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Contributor Runbook: Handling Review Feedback

1. Read all feedback before responding.
2. Separate into:
- **Required changes** — must be addressed before merge.
- **Suggestions** — optional improvements.
- **Questions** — need clarification.
3. Make required changes, push to the same branch.
4. Reply to each comment indicating what you changed.
5. If you disagree with feedback, explain your reasoning respectfully.
6. After addressing all feedback, re-request review.
7 changes: 7 additions & 0 deletions docs/getting-started/RUNBOOK_PAUSING_WORK.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Contributor Runbook: Pausing Work

1. If you have uncommitted changes, stash or commit them on a branch.
2. Comment on the issue that you're pausing and why.
3. If you expect to resume within a week, leave the branch.
4. If you won't resume, unassign yourself and mark the issue as available.
5. Document any context that will help the next person continue.
8 changes: 8 additions & 0 deletions docs/getting-started/RUNBOOK_PICKING_UP_ISSUE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Contributor Runbook: Picking Up an Issue

1. Find an open issue labelled `good-first-issue` or `help-wanted`.
2. Comment on the issue that you're working on it.
3. Ask clarifying questions if the scope is unclear.
4. Create a branch from `main`.
5. Make your change, add tests, verify nothing is broken.
6. Create a PR that references the issue number.
21 changes: 21 additions & 0 deletions tests/test_contributor_runbooks.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
"""Tests for contributor runbooks."""
from pathlib import Path

RUNBOOKS = [
"RUNBOOK_PICKING_UP_ISSUE.md",
"RUNBOOK_BLOCKED_WORK.md",
"RUNBOOK_PAUSING_WORK.md",
"RUNBOOK_ASKING_FOR_REVIEW.md",
"RUNBOOK_HANDLING_REVIEW.md",
]


def test_all_exist():
for r in RUNBOOKS:
assert Path(f"docs/getting-started/{r}").exists(), f"Missing: {r}"


def test_each_has_content():
for r in RUNBOOKS:
text = Path(f"docs/getting-started/{r}").read_text()
assert len(text) > 50, f"{r} is too short"
Loading