# apm update --help:
Options:
-y, --yes Skip the confirmation prompt (for CI / automation)
--dry-run Render the update plan and exit without changing anything
-v, --verbose ...
# apm deps update --help:
Options:
-v, --verbose Show detailed update information
--force Overwrite locally-authored files on collision
-t, --target ...
(no --dry-run)
CLI Consistency Report
Date: 2026-05-14
APM Version: 0.12.4 (bc8ce83)
Commands Inspected: 47
Summary
Medium Severity
apm cache cleanhas duplicate confirmation-skip flagsapm cache clean --help-f, --forceand-y, --yes. This is redundant and confusing. The sibling commandapm deps cleanonly exposes-y, --yesfor this purpose.-f, --forcefromapm cache clean(or change its description to something distinct, e.g. "Force removal without checking cache integrity") to matchapm deps clean's single-y, --yespattern.apm mcp install --helpuses non-standard options formatapm mcp install --helpapm mcp installinstead embeds "common options" as raw inline text in the Options section, bypassing Click's standard formatting. This makes the output unreadable and inconsistent with every other command.epilogparameter with a clean text block referencingapm install --mcp --help, removing the freeform option dump.apm deps updatemissing--dry-runflagapm deps update --helpapm update(which supersedesapm deps updatefor interactive use) has a--dry-runflag to render the update plan without executing changes.apm deps updateperforms similar work but lacks--dry-run, making it impossible to preview non-interactively.--dry-runtoapm deps updatewith the same semantics asapm update --dry-run, or add a note to the help text that directs users toapm update --dry-runfor preview functionality.Low Severity
apm targetsusage line saysCOMMAND [ARGS]...but has no subcommandsapm targets --helpapm targets [OPTIONS] COMMAND [ARGS]..., suggesting this is a command group with subcommands. However, no subcommands are listed ----jsonand--allare top-level options andapm targetsworks as a standalone command. TheCOMMAND [ARGS]...in the usage is misleading.apm targetshas no subcommands, register it as a plain@cli.command()rather than a group, so Click rendersUsage: apm targets [OPTIONS]instead.Inconsistent trailing periods in command descriptions
apm --helpand in each command's own help banner.apm pack: "Pack distributable artifacts from your APM project."apm mcp install: "Add an MCP server to apm.yml."apm deps clean: "Remove all APM dependencies" (no period)apm cache info: "Show cache location and size statistics" (no period)apm targets: "Show resolved targets for the current project." (has period)apm outdated: "Show outdated locked dependencies" (no period)apm deps updatedoes not expose--no-policyflagapm deps update --helpapm deps updateruns the install pipeline and is gated by policy, but unlikeapm installit does not expose a--no-policyescape hatch. The only workaround is the environment variableAPM_POLICY_DISABLE=1, which is not mentioned inapm deps update --help.apm install --helpincludes--no-policy.apm deps update --helphas no equivalent and no mention ofAPM_POLICY_DISABLE=1.--no-policytoapm deps updateto matchapm install, or add a note to theapm deps updatehelp text:"To skip policy for this command, set APM_POLICY_DISABLE=1".apm outdatedparallel flag is inconsistently named vsapm installapm outdated --helpapm outdateduses-j, --parallel-checks INTEGERas the flag for concurrency.apm installuses--parallel-downloads INTEGER(no short flag). The parallel-execution flags across these two commands use different long names (--parallel-checksvs--parallel-downloads) andapm outdatedadds a-jshort form absent everywhere else.--parallel INTEGERor--jobs INTEGER(-j) across all commands that support concurrency. At minimum, document the inconsistency in a comment so future commands follow one standard.Clean Areas
--helpwithout crashing or producing stack traces.apm install,apm uninstall,apm update,apm compile,apm run,apm initall have well-structured, complete help text.apm depssubgroup (list, tree, info, clean) all function correctly with appropriate error messages on missing required args.apm mcp search,apm mcp show,apm mcp listare consistent with each other.apm config get,apm config set,apm config unsetare consistent and well-documented.apm runtimesubgroup (setup, list, remove, status) all have correct help and accept--helpproperly.apm install --nonexistent-flagproducesError: No such option,apm deps info(no PACKAGE) producesError: Missing argument 'PACKAGE'.apm auditoptions are well-structured and comprehensive.apm experimentalsubgroup is complete and consistent.Warning
Firewall blocked 2 domains
The following domains were blocked by the firewall during workflow execution:
astral.shindex.crates.ioSee Network Configuration for more information.