Filing and Triaging Issues

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:

Filing an issue, then triagingShell
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 list
Output
Creating 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".