A good issue states one problem, how to reproduce it, and what should happen instead. Running BookNest locally showed that GET /api/books?sort=title answers 200 but returns the books in id order, so Sam files it, then files four more the same way: an ?author= filter, running the tests on every pull request, a Dockerfile, and documenting error responses. Triage is the regular pass in which a maintainer reads new issues and decides what happens to each: reproduce, label, assign, schedule, or close as a duplicate or wontfix. Sam takes the bug himself and marks the documentation task as suitable for a newcomer:
gh issue create --title "?sort=title is silently ignored" --label bug --body-file sort-bug.md
gh issue edit 1 --add-assignee @me
gh issue edit 5 --add-label "good first issue"
gh issue listCreating issue in binarybehemoth/booknest https://github.com/binarybehemoth/booknest/issues/1 ... Showing 5 of 5 open issues in binarybehemoth/booknest ID TITLE LABELS UPDATED #5 Document the error responses in t... documentation, good first ... less than a minute ago #4 Add a Dockerfile for the API enhancement less than a minute ago #3 Run the tests on every pull request enhancement less than a minute ago #2 Filter books by author with ?author= enhancement less than a minute ago #1 ?sort=title is silently ignored bug less than a minute ago
Issues and pull requests share one number sequence. Close a duplicate with gh 29 issue close 7 --reason "not planned" --comment "Duplicate of #1".