--- type: ultrabrief brief_version: 1.0 slug: add-verbose-flag task: Add a --verbose flag to the small-auth CLI parser research_topics: 1 research_status: complete brief_quality: ready created: 2026-05-01 --- # Add `--verbose` flag to small-auth CLI ## Intent The `small-auth` CLI parser has six commands (`login`, `logout`, `whoami`, `token-refresh`, `users-list`, `users-create`) and currently emits only final results — no progress, no timings, no internal step trace. Operators debugging slow `token-refresh` calls or mis-routed `users-list` queries have no signal between "started" and "finished". We want a `--verbose` flag that, when passed, prints structured progress lines to stderr without changing stdout output. Stdout stays the machine-parseable contract; stderr becomes the human-readable trace. ## Goal Add a single `--verbose` boolean flag, recognized by all six commands, that emits one stderr line per internal step. No other behavioral changes. The default (`--verbose` absent) produces output byte-identical to today's CLI. ## Success Criteria - `small-auth login --verbose alice` exits 0 and writes ≥ 3 stderr lines prefixed `[verbose]` covering: argument parse, credential lookup, session-token issue. - `small-auth login alice` (no flag) writes exactly the same stdout as before this change — verified by golden-file diff against `tests/golden/login.stdout`. - `--verbose` works in any position: `small-auth --verbose login alice`, `small-auth login --verbose alice`, `small-auth login alice --verbose`. - `--verbose` short form is `-v`. `-vv` is **not** recognized — only one level. Document this in `--help`. - All six commands accept the flag without rejection. Commands that have no internal steps to trace (`whoami`) still accept the flag silently. - Existing 24 tests in `tests/` continue to pass. Two new tests added: one stdout-stability test, one stderr-content test for `login`. ## Out of scope - Log levels beyond on/off (no `--debug`, `--trace`). - Structured JSON logging — stderr stays plain text in this iteration. - Logging configuration via env vars or config file. - Any command other than the six listed.