fix: make CLI help text truthful and consistent#454
Merged
Conversation
List copilot alongside codex and claude in every user-facing harness enumeration (run/patch help, doctor hint, TUI guided prompt, top-level long_about, --model/--add-dir flag notes). Rewrite implementation-first about strings (executor, hub, code) in outcome-first voice, moving protocol detail into long_about. Add after_help example blocks to run, sessions, daemon, patch, and wt mirroring the top-level style, and note the hidden `daemon serve` entrypoint in the daemon long_about. Help-string-only change: no behavior, exit codes, or --json shapes touched. Closes #448 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: Val Alexander <68980965+BunsDev@users.noreply.github.com>
Contributor
There was a problem hiding this comment.
Pull request overview
This PR updates the Coven CLI’s user-facing --help and TUI prompt text to better reflect current reality (notably the built-in copilot harness), and to make command descriptions/examples more outcome-oriented and discoverable.
Changes:
- Refreshes help text to include the
copilotbuilt-in harness across relevant commands/prompts. - Rewrites some
about/long_aboutstrings to be outcome-first and addsafter_helpusage examples for complex commands. - Improves daemon discoverability by documenting the hidden
daemon serveentrypoint indaemonhelp.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 4 comments.
| File | Description |
|---|---|
| crates/coven-cli/src/main.rs | Updates clap help strings (about/long_about/after_help) and harness-related flag descriptions across multiple subcommands. |
| crates/coven-cli/src/tui/shell.rs | Updates the guided-run harness prompt to include copilot in the displayed built-in harness list. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
1921
to
1925
| let default_harness = default_harness_id().unwrap_or_else(|| "codex".to_string()); | ||
| let harness_prompt = format!("Harness [default: {default_harness}; options: codex, claude]: "); | ||
| let harness_prompt = | ||
| format!("Harness [default: {default_harness}; options: codex, claude, copilot]: "); | ||
| let harness = | ||
| prompt_for_optional_line(&harness_prompt)?.unwrap_or_else(|| default_harness.to_string()); |
Comment on lines
165
to
167
| Run { | ||
| #[arg(help = "Harness to run: codex or claude")] | ||
| #[arg(help = "Harness to run: codex, claude, or copilot")] | ||
| harness: String, |
Comment on lines
362
to
365
| #[arg(long, help = "Override the repo path for this run")] | ||
| repo: Option<PathBuf>, | ||
| #[arg(long, help = "Harness to use: codex or claude")] | ||
| #[arg(long, help = "Harness to use: codex, claude, or copilot")] | ||
| harness: Option<String>, |
Comment on lines
209
to
213
| long, | ||
| value_name = "ID", | ||
| help = "Model to run the harness on. Accepts a namespaced id (e.g. openai/gpt-5.5, anthropic/claude-...); Coven strips the provider/ prefix and forwards the bare id to the harness's native model flag (codex/claude --model). Adapters that declare no model mechanism warn and continue. Echoed back in the stream-json system.init `model` field." | ||
| help = "Model to run the harness on. Accepts a namespaced id (e.g. openai/gpt-5.5, anthropic/claude-...); Coven strips the provider/ prefix and forwards the bare id to the harness's native model flag (codex/claude/copilot --model). Adapters that declare no model mechanism warn and continue. Echoed back in the stream-json system.init `model` field." | ||
| )] | ||
| model: Option<String>, |
This was referenced Jul 22, 2026
Closed
BunsDev
added a commit
that referenced
this pull request
Jul 22, 2026
…dd-dir (#459) Sweep the reference/topic docs that still claimed only Codex and Claude Code where GitHub Copilot CLI is a shipped built-in harness, and add the missing --add-dir row to the coven run reference. Follow-up flagged in the bodies of merged PRs #453/#454/#457. Closes #458 Signed-off-by: Val Alexander <68980965+BunsDev@users.noreply.github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Context
copilotharness, several subcommandaboutstrings led with protocol jargon, complex subcommands had no usage examples, and the hiddendaemon serveentrypoint was undiscoverable fromdaemon --help.crates/coven-cli/src/main.rs,crates/coven-cli/src/tui/shell.rsImplementation
codex, claude, or copilot(verified againstbuilt_in_harness_specs()):run/patch--harnesshelp, doctor's no-harness hint, the TUI guided-run prompt, the top-levellong_about, and the--model/--add-dirnative-flag notes (copilot declares both flags). Hermes/grok stay unlisted — they are opt-in adapter recipes, not built-ins.unsupported_harness_messagetest pins output for an explicit fixture argument&["codex", "claude"], not the built-in default listing — left unchanged.executor("Run Coven jobs on this machine for a remote hub"),hub("Inspect hub status, nodes, jobs, and routing (read-only)"),code("Run any Coven engine subcommand directly") — protocol/escape-hatch detail moved intolong_about. Other entries (doctor, daemon, run, sessions, scheduler, …) were already outcome-first and were left alone.run,sessions,daemon,patch,wtin the exact top-level "Common first steps" style (2-space indent, aligned comment column); examples derived from each command's real flags anddocs/reference/cli-patch.md/cli-wt.md.daemon serve:daemonlong_aboutnow explains serve is the internal foreground entrypoint launched bydaemon start; it stays hidden.--helptext only.--jsonshapes touched.Verification
cargo fmt --checkcargo clippy --workspace --all-targets -- -D warningscargo test --workspace --locked(1269 + suite green; grepped every changed fragment for pinned assertions — none)python3 scripts/check-secrets.py(passed: no current-tree or history findings)coven --help,run/sessions/daemon/patch/wt --helpand verified alignment and content.Risk and Rollback
Agent Handoff
docs/reference/still show two-harness examples in places; deliberately out of scope for this help-string PR.