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
Comprehensive CLI consistency inspection performed on 2026-07-13. The inspection covered all 28 top-level commands and their flags, compared help text against docs/src/content/docs/setup/cli.md, and analyzed flag naming across the full CLI.
Exact text:"Append extra content to the end of agentic workflow on installation" Expected:"Append extra content to the end of **the** agentic workflow on installation" Affected flags:--append on add, add-wizard, deploy, trial
G-2 · Low · Mixed parallel structure — deploy
Exact text:"by combining clone, update, add, compile, and pull request creation" Expected:"by combining cloning, updating, adding, compiling, and creating a pull request" (all gerunds)
G-3 · Low · Non-idiomatic "in batch" — env
Exact text:"Manage compiler default variables in batch for repository, organization, or enterprise scope." Expected:"...in bulk for repository..." — "in batch" is non-idiomatic; standard English is "in bulk"
G-4 · Low · Missing article "a" — env
Exact text:"in batch for repository, organization, or enterprise scope" Expected:"for a repository, organization, or enterprise scope"
G-5 · Low · Missing "the" — init
Exact text:"if any workflows use expires field for discussions or issues" Expected:"if any workflows use **the** expires field for discussions or issues"
G-6 · Medium · Capitalization — new
Exact text:"- Tools configuration (github, claude, MCPs)" Expected:"- Tools configuration (GitHub, Claude, MCPs)" — github and claude are proper names
G-7 · Low · Abbreviation inconsistency — trial
Exact text:"(github.repository context points to current repo)" Expected:"...points to the current **repository**)" — "repo" is abbreviated inconsistently with surrounding text
G-8 · Low · Missing "the" — trial
Exact text:"Trial results are saved both locally (in trials/ directory) and..." Expected:"(in **the** trials/ directory)"
Exact text:"By default only the compact usage artifact is downloaded..." Expected:"By default**,** only the compact usage artifact..."
G-10 · Low · Missing "a" — health
Exact text:"- Success/failure rates over time period" Expected:"...over **a** time period"
G-11 · Low · Sentence fragment — pr
Exact text:"Useful for migrating work from trial repositories to production repositories." Expected:"**This is** useful for migrating..." — has no grammatical subject
Exact text:"(only when no specific files are specified)" Expected:"(only when no specific files are **provided**)"
G-13 · Low · Missing article — mcp
Exact text:"# Inspect MCP servers in workflow" Expected:"# Inspect MCP servers in **a** workflow"
G-14 · Low · Plural/singular adjective — init
Exact text:"with agentic workflows support" (--codespaces description) Expected:"with agentic workflow support" — "workflow" used as adjective modifier should be singular (consistent with "agentic workflow files" etc.)
G-15 · Low · Ambiguous numbered list structure — fix
The numbered list (steps 1–3 then "additionally" steps 4–7) splits across two prose sections, making the continuation unclear. The "additionally: 4." numbering is confusing. Suggested fix: Start a new numbered list for the --write steps rather than continuing the global sequence.
G-16 · Low · Flag name vs description inconsistency — deploy, update
Exact text: Flag is --cool-down (hyphenated) but description says "Cooldown period" (unhyphenated) Suggested fix: Use consistent form in description: "Cool-down period" to match flag name, or rename flag to --cooldown.
Category 2: Docs vs. CLI Help Mismatches
13 findings — documentation differs from actual CLI
D-1 · Medium · health --days allowed values undocumented
Docs say: Examples show --days 30 and --days 90, no restriction noted. CLI help says:"Number of days to analyze (7, 30, or 90) (default 7)" Impact: Users passing --days 14 or --days 60 will get an error with no docs warning.
D-2 · Medium · secrets set / secrets bootstrap sub-command flags unverifiable
Help for gh aw secrets set and gh aw secrets bootstrap was not included in the pre-collected help. Docs document --value, --value-from-env, --api-url for set and --engine, --non-interactive, --repo for bootstrap. These cannot be verified. Suggested fix: Ensure secrets set --help and secrets bootstrap --help are collected in CI.
D-3 · Medium · env get / env update sub-command flags unverifiable
Same issue as D-2 for gh aw env get and gh aw env update. Docs document --scope, --org, --enterprise, --yes/-y, --dry-run but CLI sub-command help was not captured.
D-4 · Medium · update --cool-down default (7d) not mentioned in docs
Docs say: No mention of default cool-down value for update. CLI help says:--cool-down string ... (default "7d")
The deploy section in docs does state the 7d default, but update docs do not.
D-5 · Medium · update — numerous CLI examples absent from docs
CLI has 13 documented examples for update; docs show only 8. Missing from docs: --cool-down 0, --cool-down 3d, --no-redirect, --no-compile, and several --org mode variants.
Docs say:"Use --no-release-bump to restrict force-updates to core actions/* actions only." CLI example comment says:"# Disable force-bumping non-core actions (core actions/* are still force-updated)"
Same meaning, opposite framing. Docs could align with CLI example for clarity.
D-7 · Low · forecast --sample default not in docs
CLI help says:--sample int ... (default 100). Docs show example --sample 50 but never state the default.
D-8 · Low · trial — results saved to host repo not mentioned in docs
Docs say (short form):"Results saved to trials/." CLI help says:"Trial results are saved both locally (in trials/ directory) and in the host repository for future reference."
D-9 · Low · init --no-mcp description less specific in docs
Docs/example comment:"# Skip MCP server integration" CLI help:"--no-mcp Skip configuring gh-aw MCP server integration for GitHub Copilot Agent" — docs omit scope ("for GitHub Copilot Agent").
D-10 · Low · status — stop-after expiration not mentioned in docs
CLI help:"Displays...time remaining until expiration (if stop-after is configured)" Docs: Do not mention the expiration column or stop-after in the status section.
D-11 · Low · mcp inspect auto-detection claim in docs not reflected in CLI
Docs say:"mcp inspect auto-detects mcp-scripts." CLI help: No mention of mcp-scripts auto-detection in mcp help text.
CLI has examples for --no-actions, --no-compile, --dir, --pre-releases, and all --org mode variants. Docs show only 5 examples, all of which are in CLI.
D-13 · Low · logs caching claim "10-100x speedup" in docs not in CLI help
Docs say:"Results cached for 10-100x speedup on subsequent runs." CLI help: No mention of caching or speedup in description.
Category 3: Flag Consistency
13 findings — naming, negation style, short flags, descriptions
F-1 · 🔴 High · --staged / --no-staged split across unrelated commands
Command
Flag
Meaning
gh aw compile
--staged
Force all safe-outputs into staged mode (compilation setting)
gh aw logs
--no-staged
Filter out runs that ran in staged mode (query filter)
Impact: Users encountering --no-staged on logs expect a --staged filter there too; --staged on compile has no --no-staged toggle. These are semantically unrelated flags sharing the same base name. Suggested fix: Rename the logs filter to --exclude-staged or --staged-only.
F-2 · Medium · --yes missing org-mode/CI context on trial
Command
--yes description
deploy, update, upgrade
"Auto-accept org-mode ... confirmations (required in CI)"
trial
"Skip confirmation prompts"
trial --yes is described generically; inconsistent with the explicit CI/org-mode framing on other commands.
F-3 · Medium · -e short flag missing on gh aw logs --engine
Every other command with --engine provides -e as a short form. gh aw logs --engine omits -e, breaking muscle memory.
F-4 · Medium · --timeout three different "0 = no timeout" phrasings
Command
Phrasing
trial
"(set to 0 to disable timeout)"
forecast
"(0 disables timeout)"
logs
"(0 = no timeout)"
Suggested fix: Standardize to "(0 = no timeout) (default N)" across all three.
F-5 · Medium · --output vs --outcomes-dir on same command (outcomes)
gh aw outcomes has both -o, --output string ("Output directory for generated files") and --outcomes-dir string ("Write outcome JSONL to this directory for OTLP export"). The second is the only --<noun>-dir pattern in the entire CLI. Confusing dual directory flags. Suggested fix: Rename --outcomes-dir to --otlp-dir.
F-6 · Medium · --force different semantics across 5 commands
Command
--force meaning
add, deploy, new
Overwrite existing files without confirmation
update
Force re-run even if no changes detected
compile
Force overwrite of dependabot.yml only (only meaningful with --dependabot)
compile's narrow scope for --force (only dependabot.yml) is surprising given the flag's meaning elsewhere.
F-7 · Medium · --format different accepted values on audit vs logs
Command
Accepted values
audit
pretty, markdown
logs
console, tsv, pretty, markdown
--format console on audit will error. Docs for audit should list its accepted values explicitly.
F-8 · Medium · --repo required on deploy but no (required) marker shown
On all commands --repo defaults to current repo. On deploy it is required unless --org is given. Description says so but no (required) marker in the flag listing — users may only discover this at runtime.
The --firewall / --no-firewall pair on logs is the only command using both positive and negative forms as peer query filters. All other --no-* flags in the CLI are opt-out toggles for defaults. This breaks the mental model.
F-10 · Low · --last is a hidden alias for --count only on logs
gh aw logs --last int describes itself as "Alias for --count/-c". No other command has such self-describing aliases. Adds confusion without adding value.
F-11 · Low · --logical-repo description omits default on compile
Command
Description
compile
"Repository to simulate workflow execution against (for trial mode)"
trial
"Repository to simulate workflow execution against, as if the workflow was installed there (defaults to current repository)"
compile omits the default and the fuller explanation.
F-12 · Low · --dry-run non-parallel descriptions on run vs trial
Command
Description
run
"Preview workflow execution without triggering runs on GitHub Actions"
trial
"Preview trial execution without creating repos or running workflows"
Both follow "Preview X without Y" but word choices differ enough to feel unrelated.
F-13 · Low · -F uppercase short flag for --raw-field on run
-F is unconventional (all other short flags are lowercase). This intentionally mirrors gh CLI conventions but is worth noting for users unfamiliar with gh.
Summary
Comprehensive CLI consistency inspection performed on 2026-07-13. The inspection covered all 28 top-level commands and their flags, compared help text against
docs/src/content/docs/setup/cli.md, and analyzed flag naming across the full CLI.Category 1: Grammar, Typos & Style
16 findings — grammar, capitalization, punctuation, awkward phrasing
G-1 · Medium · Missing "the" —
add,add-wizard,deploy,trialExact text:
"Append extra content to the end of agentic workflow on installation"Expected:
"Append extra content to the end of **the** agentic workflow on installation"Affected flags:
--appendonadd,add-wizard,deploy,trialG-2 · Low · Mixed parallel structure —
deployExact text:
"by combining clone, update, add, compile, and pull request creation"Expected:
"by combining cloning, updating, adding, compiling, and creating a pull request"(all gerunds)G-3 · Low · Non-idiomatic "in batch" —
envExact text:
"Manage compiler default variables in batch for repository, organization, or enterprise scope."Expected:
"...in bulk for repository..."— "in batch" is non-idiomatic; standard English is "in bulk"G-4 · Low · Missing article "a" —
envExact text:
"in batch for repository, organization, or enterprise scope"Expected:
"for a repository, organization, or enterprise scope"G-5 · Low · Missing "the" —
initExact text:
"if any workflows use expires field for discussions or issues"Expected:
"if any workflows use **the** expires field for discussions or issues"G-6 · Medium · Capitalization —
newExact text:
"- Tools configuration (github, claude, MCPs)"Expected:
"- Tools configuration (GitHub, Claude, MCPs)"—githubandclaudeare proper namesG-7 · Low · Abbreviation inconsistency —
trialExact text:
"(github.repository context points to current repo)"Expected:
"...points to the current **repository**)"— "repo" is abbreviated inconsistently with surrounding textG-8 · Low · Missing "the" —
trialExact text:
"Trial results are saved both locally (in trials/ directory) and..."Expected:
"(in **the** trials/ directory)"G-9 · Low · Missing comma after introductory phrase —
logsExact text:
"By default only the compact usage artifact is downloaded..."Expected:
"By default**,** only the compact usage artifact..."G-10 · Low · Missing "a" —
healthExact text:
"- Success/failure rates over time period"Expected:
"...over **a** time period"G-11 · Low · Sentence fragment —
prExact text:
"Useful for migrating work from trial repositories to production repositories."Expected:
"**This is** useful for migrating..."— has no grammatical subjectG-12 · Low · Redundant "specific...specified" —
compileExact text:
"(only when no specific files are specified)"Expected:
"(only when no specific files are **provided**)"G-13 · Low · Missing article —
mcpExact text:
"# Inspect MCP servers in workflow"Expected:
"# Inspect MCP servers in **a** workflow"G-14 · Low · Plural/singular adjective —
initExact text:
"with agentic workflows support"(--codespacesdescription)Expected:
"with agentic workflow support"— "workflow" used as adjective modifier should be singular (consistent with "agentic workflow files" etc.)G-15 · Low · Ambiguous numbered list structure —
fixThe numbered list (steps 1–3 then "additionally" steps 4–7) splits across two prose sections, making the continuation unclear. The "additionally: 4." numbering is confusing.
Suggested fix: Start a new numbered list for the
--writesteps rather than continuing the global sequence.G-16 · Low · Flag name vs description inconsistency —
deploy,updateExact text: Flag is
--cool-down(hyphenated) but description says"Cooldown period"(unhyphenated)Suggested fix: Use consistent form in description:
"Cool-down period"to match flag name, or rename flag to--cooldown.Category 2: Docs vs. CLI Help Mismatches
13 findings — documentation differs from actual CLI
D-1 · Medium ·
health --daysallowed values undocumentedDocs say: Examples show
--days 30and--days 90, no restriction noted.CLI help says:
"Number of days to analyze (7, 30, or 90) (default 7)"Impact: Users passing
--days 14or--days 60will get an error with no docs warning.D-2 · Medium ·
secrets set/secrets bootstrapsub-command flags unverifiableHelp for
gh aw secrets setandgh aw secrets bootstrapwas not included in the pre-collected help. Docs document--value,--value-from-env,--api-urlforsetand--engine,--non-interactive,--repoforbootstrap. These cannot be verified.Suggested fix: Ensure
secrets set --helpandsecrets bootstrap --helpare collected in CI.D-3 · Medium ·
env get/env updatesub-command flags unverifiableSame issue as D-2 for
gh aw env getandgh aw env update. Docs document--scope,--org,--enterprise,--yes/-y,--dry-runbut CLI sub-command help was not captured.D-4 · Medium ·
update --cool-downdefault (7d) not mentioned in docsDocs say: No mention of default cool-down value for
update.CLI help says:
--cool-down string ... (default "7d")The
deploysection in docs does state the 7d default, butupdatedocs do not.D-5 · Medium ·
update— numerous CLI examples absent from docsCLI has 13 documented examples for
update; docs show only 8. Missing from docs:--cool-down 0,--cool-down 3d,--no-redirect,--no-compile, and several--orgmode variants.D-6 · Low ·
update --no-release-bumpdescription framing differsDocs say:
"Use --no-release-bump to restrict force-updates to core actions/* actions only."CLI example comment says:
"# Disable force-bumping non-core actions (core actions/* are still force-updated)"Same meaning, opposite framing. Docs could align with CLI example for clarity.
D-7 · Low ·
forecast --sampledefault not in docsCLI help says:
--sample int ... (default 100). Docs show example--sample 50but never state the default.D-8 · Low ·
trial— results saved to host repo not mentioned in docsDocs say (short form):
"Results saved to trials/."CLI help says:
"Trial results are saved both locally (in trials/ directory) and in the host repository for future reference."D-9 · Low ·
init --no-mcpdescription less specific in docsDocs/example comment:
"# Skip MCP server integration"CLI help:
"--no-mcp Skip configuring gh-aw MCP server integration for GitHub Copilot Agent"— docs omit scope ("for GitHub Copilot Agent").D-10 · Low ·
status—stop-afterexpiration not mentioned in docsCLI help:
"Displays...time remaining until expiration (if stop-after is configured)"Docs: Do not mention the expiration column or
stop-afterin thestatussection.D-11 · Low ·
mcp inspectauto-detection claim in docs not reflected in CLIDocs say:
"mcp inspect auto-detects mcp-scripts."CLI help: No mention of mcp-scripts auto-detection in
mcphelp text.D-12 · Low ·
upgrade— 8 CLI examples absent from docsCLI has examples for
--no-actions,--no-compile,--dir,--pre-releases, and all--orgmode variants. Docs show only 5 examples, all of which are in CLI.D-13 · Low ·
logscaching claim"10-100x speedup"in docs not in CLI helpDocs say:
"Results cached for 10-100x speedup on subsequent runs."CLI help: No mention of caching or speedup in description.
Category 3: Flag Consistency
13 findings — naming, negation style, short flags, descriptions
F-1 · 🔴 High ·
--staged/--no-stagedsplit across unrelated commandsgh aw compile--stagedgh aw logs--no-stagedImpact: Users encountering
--no-stagedonlogsexpect a--stagedfilter there too;--stagedoncompilehas no--no-stagedtoggle. These are semantically unrelated flags sharing the same base name.Suggested fix: Rename the
logsfilter to--exclude-stagedor--staged-only.F-2 · Medium ·
--yesmissing org-mode/CI context ontrial--yesdescriptiondeploy,update,upgrade"Auto-accept org-mode ... confirmations (required in CI)"trial"Skip confirmation prompts"trial --yesis described generically; inconsistent with the explicit CI/org-mode framing on other commands.F-3 · Medium ·
-eshort flag missing ongh aw logs --engineEvery other command with
--engineprovides-eas a short form.gh aw logs --engineomits-e, breaking muscle memory.F-4 · Medium ·
--timeoutthree different "0 = no timeout" phrasingstrial"(set to 0 to disable timeout)"forecast"(0 disables timeout)"logs"(0 = no timeout)"Suggested fix: Standardize to
"(0 = no timeout) (default N)"across all three.F-5 · Medium ·
--outputvs--outcomes-diron same command (outcomes)gh aw outcomeshas both-o, --output string("Output directory for generated files") and--outcomes-dir string("Write outcome JSONL to this directory for OTLP export"). The second is the only--<noun>-dirpattern in the entire CLI. Confusing dual directory flags.Suggested fix: Rename
--outcomes-dirto--otlp-dir.F-6 · Medium ·
--forcedifferent semantics across 5 commands--forcemeaningadd,deploy,newupdatecompiledependabot.ymlonly (only meaningful with--dependabot)compile's narrow scope for--force(onlydependabot.yml) is surprising given the flag's meaning elsewhere.F-7 · Medium ·
--formatdifferent accepted values onauditvslogsauditpretty,markdownlogsconsole,tsv,pretty,markdown--format consoleonauditwill error. Docs forauditshould list its accepted values explicitly.F-8 · Medium ·
--reporequired ondeploybut no(required)marker shownOn all commands
--repodefaults to current repo. Ondeployit is required unless--orgis given. Description says so but no(required)marker in the flag listing — users may only discover this at runtime.F-9 · Low ·
--firewall/--no-firewallunique dual-filter pattern onlogsThe
--firewall/--no-firewallpair onlogsis the only command using both positive and negative forms as peer query filters. All other--no-*flags in the CLI are opt-out toggles for defaults. This breaks the mental model.F-10 · Low ·
--lastis a hidden alias for--countonly onlogsgh aw logs --last intdescribes itself as"Alias for --count/-c". No other command has such self-describing aliases. Adds confusion without adding value.F-11 · Low ·
--logical-repodescription omits default oncompilecompile"Repository to simulate workflow execution against (for trial mode)"trial"Repository to simulate workflow execution against, as if the workflow was installed there (defaults to current repository)"compileomits the default and the fuller explanation.F-12 · Low ·
--dry-runnon-parallel descriptions onrunvstrialrun"Preview workflow execution without triggering runs on GitHub Actions"trial"Preview trial execution without creating repos or running workflows"Both follow
"Preview X without Y"but word choices differ enough to feel unrelated.F-13 · Low ·
-Fuppercase short flag for--raw-fieldonrun-Fis unconventional (all other short flags are lowercase). This intentionally mirrorsghCLI conventions but is worth noting for users unfamiliar withgh.Inspection Metadata
/tmp/gh-aw/agent/all-help.txt+docs/src/content/docs/setup/cli.mdPatterns Observed
secretsandenvhave undocumented subcommand flags in docs that couldn't be verifiedlogsflag outlier:gh aw logshas the most flag inconsistencies (missing-e,--no-stagednaming,--lastalias,--firewalldual-filter)updateandupgradehave many CLI examples not reflected in docs--forcesemantic drift: The flag has accumulated 3 different meanings across commandsWarning
Firewall blocked 1 domain
The following domain was blocked by the firewall during workflow execution:
proxy.golang.orgSee Network Configuration for more information.