Context
coverage, drift, mine, and select print human-formatted text only. The CLI already advertises a stable exit-code contract for automation, and most of these commands already build a to_dict() report internally — so the data is right there, just not emitted in a machine-readable form.
Task
Add a --json flag to the reporting commands (coverage, drift, mine, select) that prints the underlying report dict as JSON to stdout, suppressing the human-formatted text under the flag.
Acceptance criteria
Pointers
_cmd_coverage, _cmd_drift, _cmd_mine, _cmd_select in src/goldset/cli.py
Help wanted
Scoped and mechanical, but touches four commands — a good second contribution. Can be split into one command per PR if a newcomer prefers a smaller first bite.
Context
coverage,drift,mine, andselectprint human-formatted text only. The CLI already advertises a stable exit-code contract for automation, and most of these commands already build ato_dict()report internally — so the data is right there, just not emitted in a machine-readable form.Task
Add a
--jsonflag to the reporting commands (coverage,drift,mine,select) that prints the underlying report dict as JSON to stdout, suppressing the human-formatted text under the flag.Acceptance criteria
Pointers
_cmd_coverage,_cmd_drift,_cmd_mine,_cmd_selectinsrc/goldset/cli.pyHelp wanted
Scoped and mechanical, but touches four commands — a good second contribution. Can be split into one command per PR if a newcomer prefers a smaller first bite.