CLI Consistency Report
Date: 2026-04-16
APM Version: 0.8.11 (a61bc0f)
Commands Inspected: 40
Summary
| Severity |
Count |
| High |
1 |
| Medium |
3 |
| Low |
3 |
High Severity
apm compile --target docs list outdated/wrong target values
- Command:
apm compile
- Problem: The CLI reference documentation lists
[vscode|agents|claude|codex|opencode|all] as the valid --target values, but the actual CLI offers [copilot|claude|cursor|opencode|codex|vscode|agents|all]. The docs omit copilot (the current non-deprecated primary option) and cursor entirely. The docs still present vscode as the primary target name, even though it is now a deprecated alias for copilot. The auto-detection table in docs also uses only vscode column values.
- Evidence:
- CLI help output:
-t, --target [copilot|claude|cursor|opencode|codex|vscode|agents|all] Target platform: copilot (AGENTS.md), claude (CLAUDE.md), cursor, opencode, or all. 'vscode' and 'agents' are deprecated aliases
docs/src/content/docs/reference/cli-commands.md line 1178: - \-t, --target [vscode|agents|claude|codex|opencode|all]` - Target agent format. `agents` is an alias for `vscode`. Auto-detects if not specified.`
- Same doc line 1243 example:
apm compile --target vscode # AGENTS.md + .github/ only (no example with --target copilot)
- Suggested Fix: Update the compile docs to list
[copilot|claude|cursor|opencode|codex|vscode|agents|all], note that vscode and agents are deprecated aliases for copilot, add an example using --target copilot, and update the auto-detection table to show copilot as the resolved target name.
Medium Severity
apm runtime remove missing -y shorthand for --yes
- Command:
apm runtime remove
- Problem: The
--yes flag on apm runtime remove has no -y short form, making it inconsistent with every other confirmation-skip flag in the CLI.
- Evidence:
apm runtime remove --help: --yes Confirm the action without prompting (no -y)
apm init --help: -y, --yes Skip interactive prompts and use auto-detected defaults
apm deps clean --help: -y, --yes Skip confirmation prompt
apm marketplace remove --help: -y, --yes Skip confirmation
- Suggested Fix: Add
-y as a shorthand for --yes in the runtime remove command definition in the source code.
apm install --target docs omit deprecated vscode and agents values
- Command:
apm install
- Problem: The CLI reference docs list only
[copilot|claude|cursor|codex|opencode|all] for --target, but the CLI actually accepts [copilot|claude|cursor|opencode|codex|vscode|agents|all]. Users with older automation scripts using --target vscode won't find any mention of it in the install docs.
- Evidence:
- CLI help:
-t, --target [copilot|claude|cursor|opencode|codex|vscode|agents|all]
docs/src/content/docs/reference/cli-commands.md line 90: - \--target [copilot|claude|cursor|codex|opencode|all]``
- Suggested Fix: Update the install docs to add
vscode and agents to the accepted --target values with a deprecation note: --target [copilot|claude|cursor|opencode|codex|vscode|agents|all] — note vscode and agents are deprecated aliases for copilot.
apm pack --target docs omit agents deprecated value
- Command:
apm pack
- Problem: The
pack docs list [copilot|vscode|claude|cursor|codex|opencode|all] for --target but the CLI also accepts agents.
- Evidence:
- CLI help:
-t, --target [copilot|claude|cursor|opencode|codex|vscode|agents|all]
docs/src/content/docs/reference/cli-commands.md line 464: - \-t, --target [copilot|vscode|claude|cursor|codex|opencode|all]``
- Suggested Fix: Add
agents to the documented --target values for apm pack with a deprecation note.
Low Severity
apm outdated description has a trailing period
- Command:
apm outdated
- Problem: The command's one-line description ends with a period, unlike every other command in the CLI.
- Evidence:
apm outdated --help: Show outdated locked dependencies. (trailing period)
- Other commands for comparison:
apm deps tree --help: Show dependency tree structure (no period); apm list --help: List available scripts in the current project (no period)
- Suggested Fix: Remove the trailing period from the
apm outdated help string.
apm config bare command behavior is undocumented
- Command:
apm config (invoked without a subcommand)
- Problem: Running
apm config without a subcommand displays a useful configuration summary table (project status, APM version, auto-integrate setting), but this behavior is not mentioned anywhere in the CLI reference documentation.
- Evidence:
- Actual output: A rich table titled "Current APM Configuration" with Project and Global sections.
docs/src/content/docs/reference/cli-commands.md apm config section: only documents config get and config set; no mention of the bare apm config behaviour.
- Suggested Fix: Add a short
apm config (bare) entry to the CLI reference docs describing its output and examples.
apm mcp list and apm mcp search have inconsistent default limits
- Command:
apm mcp list, apm mcp search
- Problem:
apm mcp list defaults to 20 results while apm mcp search defaults to 10. This asymmetry is not explained and may confuse users who expect both to behave similarly.
- Evidence:
apm mcp list --help: --limit INTEGER Number of results to show [default: 20]
apm mcp search --help: --limit INTEGER Number of results to show [default: 10]
- Suggested Fix: Either align both defaults to the same value (e.g., 10 or 20), or document why they differ (e.g., search is more targeted so a smaller default makes sense). The docs should explicitly state the default for each.
Clean Areas
The following commands and areas passed all checks with no issues found:
apm init -- help text, flags (-y/--yes, -v/--verbose, --plugin), and docs are consistent.
apm install -- all flags present and functional; error handling is clean.
apm uninstall -- flags and docs consistent.
apm update -- minimal flags, consistent with docs.
apm run / apm preview -- flag symmetry is correct.
apm list -- no flags needed, consistent.
apm deps group -- list, tree, info, clean, update all consistent with docs.
apm mcp group -- list, search, show consistent with docs (no mcp install is documented, confirming it should not exist).
apm config set / apm config get -- args and behavior match docs.
apm runtime setup, apm runtime list, apm runtime status -- consistent with docs.
apm audit -- all flags (--strip, --dry-run, --ci, --policy, --format, -o) match docs.
apm marketplace group -- all five subcommands (add, browse, list, remove, update) match docs.
apm outdated -- flags consistent (apart from trailing period in description).
apm search -- consistent with docs.
apm view -- consistent with docs.
apm pack -- consistent (apart from undocumented agents target value).
apm unpack -- consistent with docs.
apm prune -- consistent with docs.
- Error handling -- all tested commands (
apm install --nonexistent-flag, apm deps info without args, apm config set without args) produce clean error messages with no stack traces.
Generated by CLI Consistency Checker · ◷
CLI Consistency Report
Date: 2026-04-16
APM Version: 0.8.11 (a61bc0f)
Commands Inspected: 40
Summary
High Severity
apm compile --targetdocs list outdated/wrong target valuesapm compile[vscode|agents|claude|codex|opencode|all]as the valid--targetvalues, but the actual CLI offers[copilot|claude|cursor|opencode|codex|vscode|agents|all]. The docs omitcopilot(the current non-deprecated primary option) andcursorentirely. The docs still presentvscodeas the primary target name, even though it is now a deprecated alias forcopilot. The auto-detection table in docs also uses onlyvscodecolumn values.-t, --target [copilot|claude|cursor|opencode|codex|vscode|agents|all] Target platform: copilot (AGENTS.md), claude (CLAUDE.md), cursor, opencode, or all. 'vscode' and 'agents' are deprecated aliasesdocs/src/content/docs/reference/cli-commands.mdline 1178:- \-t, --target [vscode|agents|claude|codex|opencode|all]` - Target agent format. `agents` is an alias for `vscode`. Auto-detects if not specified.`apm compile --target vscode # AGENTS.md + .github/ only(no example with--target copilot)[copilot|claude|cursor|opencode|codex|vscode|agents|all], note thatvscodeandagentsare deprecated aliases forcopilot, add an example using--target copilot, and update the auto-detection table to showcopilotas the resolved target name.Medium Severity
apm runtime removemissing-yshorthand for--yesapm runtime remove--yesflag onapm runtime removehas no-yshort form, making it inconsistent with every other confirmation-skip flag in the CLI.apm runtime remove --help:--yes Confirm the action without prompting(no-y)apm init --help:-y, --yes Skip interactive prompts and use auto-detected defaultsapm deps clean --help:-y, --yes Skip confirmation promptapm marketplace remove --help:-y, --yes Skip confirmation-yas a shorthand for--yesin theruntime removecommand definition in the source code.apm install --targetdocs omit deprecatedvscodeandagentsvaluesapm install[copilot|claude|cursor|codex|opencode|all]for--target, but the CLI actually accepts[copilot|claude|cursor|opencode|codex|vscode|agents|all]. Users with older automation scripts using--target vscodewon't find any mention of it in the install docs.-t, --target [copilot|claude|cursor|opencode|codex|vscode|agents|all]docs/src/content/docs/reference/cli-commands.mdline 90:- \--target [copilot|claude|cursor|codex|opencode|all]``vscodeandagentsto the accepted--targetvalues with a deprecation note:--target [copilot|claude|cursor|opencode|codex|vscode|agents|all]— notevscodeandagentsare deprecated aliases forcopilot.apm pack --targetdocs omitagentsdeprecated valueapm packpackdocs list[copilot|vscode|claude|cursor|codex|opencode|all]for--targetbut the CLI also acceptsagents.-t, --target [copilot|claude|cursor|opencode|codex|vscode|agents|all]docs/src/content/docs/reference/cli-commands.mdline 464:- \-t, --target [copilot|vscode|claude|cursor|codex|opencode|all]``agentsto the documented--targetvalues forapm packwith a deprecation note.Low Severity
apm outdateddescription has a trailing periodapm outdatedapm outdated --help:Show outdated locked dependencies.(trailing period)apm deps tree --help:Show dependency tree structure(no period);apm list --help:List available scripts in the current project(no period)apm outdatedhelp string.apm configbare command behavior is undocumentedapm config(invoked without a subcommand)apm configwithout a subcommand displays a useful configuration summary table (project status, APM version,auto-integratesetting), but this behavior is not mentioned anywhere in the CLI reference documentation.docs/src/content/docs/reference/cli-commands.mdapm configsection: only documentsconfig getandconfig set; no mention of the bareapm configbehaviour.apm config(bare) entry to the CLI reference docs describing its output and examples.apm mcp listandapm mcp searchhave inconsistent default limitsapm mcp list,apm mcp searchapm mcp listdefaults to 20 results whileapm mcp searchdefaults to 10. This asymmetry is not explained and may confuse users who expect both to behave similarly.apm mcp list --help:--limit INTEGER Number of results to show [default: 20]apm mcp search --help:--limit INTEGER Number of results to show [default: 10]Clean Areas
The following commands and areas passed all checks with no issues found:
apm init-- help text, flags (-y/--yes,-v/--verbose,--plugin), and docs are consistent.apm install-- all flags present and functional; error handling is clean.apm uninstall-- flags and docs consistent.apm update-- minimal flags, consistent with docs.apm run/apm preview-- flag symmetry is correct.apm list-- no flags needed, consistent.apm depsgroup --list,tree,info,clean,updateall consistent with docs.apm mcpgroup --list,search,showconsistent with docs (nomcp installis documented, confirming it should not exist).apm config set/apm config get-- args and behavior match docs.apm runtime setup,apm runtime list,apm runtime status-- consistent with docs.apm audit-- all flags (--strip,--dry-run,--ci,--policy,--format,-o) match docs.apm marketplacegroup -- all five subcommands (add,browse,list,remove,update) match docs.apm outdated-- flags consistent (apart from trailing period in description).apm search-- consistent with docs.apm view-- consistent with docs.apm pack-- consistent (apart from undocumentedagentstarget value).apm unpack-- consistent with docs.apm prune-- consistent with docs.apm install --nonexistent-flag,apm deps infowithout args,apm config setwithout args) produce clean error messages with no stack traces.