-
Notifications
You must be signed in to change notification settings - Fork 225
[cli-consistency] CLI Consistency Report — 2026-06-03 #1649
Copy link
Copy link
Open
Labels
automationDeprecated: use type/automation. Kept for issue history; will be removed in milestone 0.10.0.Deprecated: use type/automation. Kept for issue history; will be removed in milestone 0.10.0.cliDeprecated: use area/cli. Kept for issue history; will be removed in milestone 0.10.0.Deprecated: use area/cli. Kept for issue history; will be removed in milestone 0.10.0.documentationDeprecated: use type/docs. Kept for issue history; will be removed in milestone 0.10.0.Deprecated: use type/docs. Kept for issue history; will be removed in milestone 0.10.0.
Metadata
Metadata
Assignees
Labels
automationDeprecated: use type/automation. Kept for issue history; will be removed in milestone 0.10.0.Deprecated: use type/automation. Kept for issue history; will be removed in milestone 0.10.0.cliDeprecated: use area/cli. Kept for issue history; will be removed in milestone 0.10.0.Deprecated: use area/cli. Kept for issue history; will be removed in milestone 0.10.0.documentationDeprecated: use type/docs. Kept for issue history; will be removed in milestone 0.10.0.Deprecated: use type/docs. Kept for issue history; will be removed in milestone 0.10.0.
Type
Fields
Give feedbackNo fields configured for issues without a type.
Projects
StatusShow more project fields
Todo
CLI Consistency Report
Date: 2026-06-03
APM Version: 0.16.1 (d4e164b)
Commands Inspected: 25
Summary
High Severity
apm configoutput violates project ASCII encoding rulesapm configapm configwith no subcommand renders a table using Unicode box-drawing characters (┏,━,┳,┃,┡,╇,│,└,─,┘, etc.) from therichlibrary. The project's encoding rules explicitly require all CLI output strings to stay within printable ASCII (U+0020-U+007E) to avoidUnicodeEncodeError: 'charmap' codec can't encode characteron Windows cp1252 terminals.cat -v):.github/instructions) state: "Do NOT use: Unicode box-drawing characters (e.g.─,│,┌)."richtable in theapm configoutput with an ASCII-safe table renderer. Use|,-, and+characters for table borders. The docs already note "Falls back to plain text ifrichis unavailable" -- this fallback behavior should be the default, or therichrenderer should be restricted to Unicode-capable terminals detected at runtime.Medium Severity
apm mcp install --helpdoes not expose its options as registered CLI flagsapm mcp install --help--helpas a registered option. All other flags (--transport,--url,--env,--header,--registry,--mcp-version,--dev,--dry-run,--force,--verbose,--no-policy) appear as unformatted prose at the bottom of the Options section, not as proper Click-registered options. This makes the command's interface non-discoverable via--help.mcp_installClick command (even if just forwarded toinstall), or move the prose block to a properly formatted epilog section with aligned option descriptions. At minimum, use a multi-line string with consistent indentation so each option appears on its own line.apm config listmissing -- user-expectation gap with no documentation bridgeapm config listapm config listdoes not exist and returns an error. Users familiar with analogous tools (npm config list,git config --list) will instinctively try this. The CLI hasget,set, andunsetbut nolist.apm config(bare, no subcommand) does show all config values as a table, but this is undiscoverable.apm config --helpoutput shows only three subcommands:get,set,unset.apm config listas an alias subcommand forapm config getwith no arguments (which already prints all keys). This would align with the mental model fromnpm config listandgit config --list. Alternatively, add a note inapm config --helpthatapm config(bare) shows all values.Low Severity
apm deps updatedeprecation not surfaced in help textapm deps update --helpdocs/src/content/docs/reference/cli/deps.md) prominently marksapm deps updateas deprecated in favor ofapm update, but the--helpoutput contains no deprecation notice. Users who discover the command viaapm deps --helpwill not learn it is deprecated.[DEPRECATED]to the command description string, or append a deprecation notice line to the help epilog. Click supports thedeprecated=Trueparameter on commands natively, which auto-adds a deprecation warning on invocation.Inconsistent
--verboseflag descriptions across commands--verbose/-vflag has inconsistent descriptions across commands. Some are terse and generic, others are command-specific.apm init:Show detailed outputapm install:Show detailed installation informationapm uninstall:Show detailed removal informationapm update:Show unchanged deps and detailed pipeline diagnosticsapm compile:Show detailed source attribution and optimizer analysisapm run:Show detailed outputapm mcp search:Show detailed outputapm mcp show:Show detailed outputShow detailed outputacross all commands, or adopt command-specific descriptions uniformly (not a mix of both).Clean Areas
--help/-hwith usage information (no crashes).apm install --nonexistent-flag->Error: No such option: --nonexistent-flagapm deps info(missing argument) ->Error: Missing argument 'PACKAGE'.apm config set(missing argument) ->Error: Missing argument 'KEY'.--dry-runflag is consistently named across all commands that support it.--yes/-yis consistently available where applicable (apm update,apm deps clean).apm mcpsubcommands (search,show,list) all expose--verboseand--helpcorrectly.docs/src/content/docs/reference/cli/config.md) correctly documentsapm configsubcommands asget,set,unset.apm depssubcommands are all present and match documentation.apm runtime setupcorrectly requires a positional argument from the allowed set{copilot|codex|llm|gemini}.Warning
Firewall blocked 1 domain
The following domain was blocked by the firewall during workflow execution:
astral.shSee Network Configuration for more information.