We break down the UX contract of CLI help: how
help differs from
usage, which three help entry points users expect (
todo help,
todo <cmd> -h,
todo help <cmd>), how to keep a single format (
Usage/
Commands/
Flags/
Examples), and how to implement it in Go via
flag.FlagSet, overriding
Usage, and printing flags automatically with
PrintDefaults(), while following the rule: help and errors go to
stderr, command results go to
stdout.