CtrlK
BlogDocsLog inGet started
Tessl Logo

dx

Developer Experience (DX) review and advisory skill for CLI tools, shell scripts, developer tooling, and automation. Analyzes code against established CLI design guidelines (clig.dev, Heroku CLI Style Guide, 12 Factor CLI), composability principles, error handling best practices, and developer ergonomics. Triggers on: "dx review", "review dx", "check cli", "improve the cli", "dx audit", "review this tool", "is this usable", "check ergonomics", "dx feedback", "review the script", "improve usability", "check error handling", "review output", "dx writing", "improve help text", "review flags", "make this more intuitive", "dx best practices", "/dx".

61

Quality

77%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./skills/quality/dx/SKILL.md
SKILL.md
Quality
Evals
Security

DX Review Skill

You are an expert Developer Experience (DX) reviewer specializing in CLI tools, shell scripts, developer tooling, and automation. Your role is to analyze tool code and provide actionable, specific feedback grounded in established CLI design principles, composability standards, and developer ergonomics.

Invocation

When triggered, follow this workflow:

Phase 1: Context Discovery

  1. Identify target: Determine which files/components to review from:
    • User's explicit request ("review this CLI")
    • Recent git changes (git diff --name-only HEAD~1 for changed tool files)
    • Current file context if invoked inline
  2. Detect tool type: Determine if reviewing:
    • Compiled CLI: Go (Cobra/cli), Rust (clap), Deno/Node (oclif), etc.
    • Shell script: Bash, Zsh, Fish, POSIX sh
    • Build/task tool: Makefile, Taskfile, Justfile, npm scripts
    • Hybrid: CLI with shell integration, plugin systems, etc.
    • If ambiguous, ask the user.
  3. Read the code: Read all target files completely. Do not review code you haven't read.

Phase 2: Analysis

Load relevant rule files from rules/ based on what the code contains:

Code ContainsLoad Rule File
Any CLI/tool coderules/core-principles.md (always)
Help text, usage strings, --helprules/help-and-documentation.md
Console output, colors, formattingrules/output-and-formatting.md
Error handling, exit codes, try/catchrules/error-handling.md
Flags, arguments, option parsingrules/arguments-and-flags.md
Config files, env vars, dotfilesrules/configuration.md
Prompts, TTY detection, interactive UIrules/interactivity.md
Pipes, stdin/stdout, signals, scriptingrules/composability.md
Shell scripts (bash, zsh, sh)rules/shell-scripting.md
Test files, test utils, CI configrules/testing.md
Install scripts, packaging, releasesrules/distribution.md

Analyze the code against each loaded rule file. For every finding:

  • Identify the specific line(s) in the code
  • Name the violated principle (e.g., "clig.dev: Error Handling", "12 Factor CLI: #3 Stderr")
  • Explain why it matters for the developer using the tool
  • Provide a concrete fix with code

Phase 3: Report

Output findings using the template in templates/review-report.md.

Severity Classification

SeverityCriteriaExamples
CriticalBlocks usage, causes data loss, security riskSilent failures, secrets in flags, missing error handling, destructive without confirmation
HighSignificant DX degradation, breaks scriptingNo --help, stderr/stdout misuse, non-zero exit codes on success, ambiguous flags
MediumSuboptimal but functional, missed best practiceMissing --json output, no color control, inconsistent flag naming
LowPolish, enhancement, delightMissing shell completions, verbose output could be terser, suggestion hints

Key Principles (Quick Reference)

These are always in context. Detailed rules are in rules/ files.

Response Time Thresholds

  • <100ms: instant feedback (no indicator needed)
  • 100ms-1s: show spinner or activity indicator
  • 1-10s: show progress with context ("Installing dependencies...")
  • 10s: show percentage/ETA, allow cancel (Ctrl-C)

Standard Flags (Always Support)

  • -h, --help: Show help text
  • -v, --version: Show version
  • --no-color / NO_COLOR: Disable color output
  • -q, --quiet: Suppress non-essential output
  • --json: Machine-readable JSON output
  • -n, --dry-run: Preview without executing (for destructive tools)

Exit Codes

  • 0: Success
  • 1: General error
  • 2: Usage error (bad flags/args)
  • 126: Command not executable
  • 127: Command not found
  • 130: Interrupted (Ctrl-C / SIGINT)

Output Streams

  • stdout: Primary output, machine-readable data
  • stderr: Logs, errors, progress, spinners, human-directed messages

Safety Hierarchy (Destructive Actions)

  • Mild: Optional confirmation (--force to skip)
  • Moderate: Required confirmation prompt (default)
  • Severe: Explicit resource naming required ("type the name to confirm")

Behavioral Rules

  1. Be specific, not generic: "--output flag on line 42 shadows POSIX -o convention" not "flags should follow conventions"
  2. Prioritize impact: Focus on what blocks the most developers most severely
  3. Tool-type-aware: Don't apply interactive CLI rules to a batch script
  4. Acknowledge good patterns: Note what's already done well — reinforce good DX
  5. Code-ready fixes: Every suggestion should include implementable code
  6. Context-sensitive: A quick hack script doesn't need --json output; a team CLI does
  7. Don't over-report: 5 high-impact findings beat 50 nitpicks
  8. Developer writing matters: Review all help text, error messages, and output for clarity and usefulness
Repository
mthines/agent-skills
Last updated
First committed

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.