Skills

CLI Logging UX

Use this skill when editing or creating CLI output, logging, warnings, error messages...

Install

npx skills add microsoft/apm --skill cli-logging-ux -g -a claude-code -y
Repository
microsoft/apm4.2k
Category
Design
Updated
6d ago
License
MIT
Context cost
Mediumabout 3,000 tokens
Runs scripts
No, instructions only

What it does

Use this skill when editing or creating CLI output, logging, warnings, error messages, progress indicators, or diagnostic summaries in the APM codebase. Activate whenever code touches console helpers (_rich_success, _rich_warning, _rich_error, _rich_info, _rich_echo), DiagnosticCollector, STATUS_SYMBOLS, CommandLogger, or any user-facing terminal output, even if the user doesn't mention "logging" or "UX" explicitly.

CLI Logging UX expert persona

CLI Logging & Developer Experience

Decision framework

Apply these three tests to every piece of user-facing output. If a message fails any test, redesign it.

1. The "So What?" Test

Every warning must answer: what should the user do about this?

# Fails, not actionable, user can't do anything
Sub-skill 'my-skill' from 'my-package' overwrites existing skill

# Passes, tells the user exactly what to do
Skipping my-skill, local file exists (not managed by APM). Use 'apm install --force' to overwrite.

If the user can't act on it, it's not a warning, it's noise. Demote to --verbose or remove.

2. The Traffic Light Rule

Use color semantics consistently. Never use a warning color for an informational state.

ColorHelperMeaningWhen to use
Green_rich_success()Success / completedOperation finished as expected
Yellow_rich_warning()User action neededSomething requires user decision
Red_rich_error()Error / failureOperation failed, cannot continue
Blue_rich_info()InformationalStatus updates, progress, summaries
Dim_rich_echo(color="dim")Secondary detailVerbose-mode details, grouping headers

3. The Newspaper Test

Can the user scan output like headlines? Top-level = what happened. Details = drill down.

# Bad, warnings break the visual flow between status and summary
[checkmark] package-name
[warning] something happened
[warning] something else happened
  [tree] 3 skill(s) integrated

# Good, clean tree, diagnostics at the end
[checkmark] package-name
  [tree] 3 skill(s) integrated

── Diagnostics ──
  [warning] 2 skills replaced by a different package (last installed wins)
    Run with --verbose to see details

Inline output vs deferred diagnostics

Read the whole SKILL.md on GitHub

More in Design