atproto git client
atgc plan output.md
37 kB · 533 lines


id: output title: Every command's output obeys the same five rules status: continuous repos: [atgc] dependsOn: [] exitCriterion: > None. A command that prints something new obeys them or it does not ship. #

output #

Five rules, in docs/output.md: stdout is the answer and everything else is on stderr; --json prints one value on stdout with the decoration off; a date column is UTC whatever offset the record was written with; somebody else's record text loses the characters a terminal acts on rather than draws; and an exit status means something specific.

It is continuous because it is a contract on every command rather than a feature of any of them. The entries below are almost all the same defect arriving from a different direction — a note on stdout that breaks a jq pipeline, a padded column that counted SGR bytes, an empty listing that reads as there are none when the real answer was that the flag was misspelled, a refusal that exits the unclassified 1 with its real answer sitting in a field.

The last of those is src/exit.rs: eight statuses, carried inside the error type rather than beside it, so the five failures that want different next moves say which they are.

What it needs #

Done #