You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Refactor CLI help copy to terse, period-less Codex-CLI style (#154)
Rewrites every user-facing help string to the convention the Codex CLI
uses: terse, imperative, sentence-case one-liners with no trailing
period. Genuinely multi-sentence help (e.g. "X. Default: Y.") keeps
normal punctuation.
- Command summaries (root --help + each command's --help) tightened and
de-periodised: e.g. "Transcribe a file, URL, or YouTube/podcast link —
or a whole batch", "Hold a live two-way voice conversation with a voice
agent", "Push-to-talk dictation: record the mic, get the transcript
back".
- ~180 option/argument help strings dropped their trailing period across
every command, plus the shared option factories and root flags.
- Only public command docstrings were touched (snapshot-covered);
internal helper docstrings and CLIError messages are unchanged.
- Regenerated the six --help snapshot goldens; updated two unit tests
that pinned the old copy.
- Added bare-invocation tests for sessions/transcripts/webhooks so the
no_args_is_help=True flag (now sharing a changed line with the help
string) stays covered by the mutation gate.
- Recorded the help-copy convention in AGENTS.md.
https://claude.ai/code/session_0172UnMSRedHhDjc1MdKpig6
Co-authored-by: Claude <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: AGENTS.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -110,6 +110,7 @@ Lessons that cost time in agent sessions — read before exercising `uv run asse
110
110
- Ruff lint set: see `[tool.ruff.lint]` in `pyproject.toml`. `S603/S607` are ignored project-wide because the CLI intentionally shells out to `claude`/`npx` with controlled args. `B008` is ignored (Typer uses `typer.Option/Argument` calls as defaults).
111
111
- mypy is strict on `aai_cli` (`disallow_untyped_defs`); tests are type-checked but exempt from return annotations.
112
112
- Errors → stderr, data → stdout. Preserve this split; it's what makes the CLI pipeline-safe.
113
+
-**Help copy is terse and period-less (Codex-CLI style)**: one-line command summaries (the docstring's first line) and single-sentence option/argument `help=` strings are imperative, sentence-case, and carry **no trailing period** — `"Burn always-visible captions into a video"`, not `"…video."`. Only genuinely multi-sentence help (e.g. `"X. Default: Y."`) keeps normal punctuation. The strings render in `assembly --help`, so they're pinned by the syrupy `--help` goldens (`tests/__snapshots__/test_snapshots_help_*.ambr`) — regenerate with `--snapshot-update`, never hand-edit. Don't drop the period on internal helper docstrings (they aren't snapshot-covered, so the mutation gate would flag the changed line).
113
114
-**Deprecate flags with hidden traps, not removal**: keep the old flag parsing (`hidden=True`), emit a one-line "use X instead" warning, and drop it a release or two later — never hard-break a script mid-cycle. `login --api-key` (→ `--with-api-key`) is the pattern to copy.
114
115
-**Secrets never ride argv**: a key/token-valued option must read from stdin (`--with-api-key`) or the env, so it can't leak into shell history or `ps`. Run commands deliberately have no `--api-key` at all.
115
116
-**Every NDJSON stream line carries a `"type"` field** (see REFERENCE.md "JSON output"); new event types are additive, existing fields stay stable.
0 commit comments