Use when building CLI tools. Keywords: CLI, command line, terminal, clap, structopt, argument parsing, subcommand, interactive, TUI, ratatui, crossterm, indicatif, progress bar, colored output, shell completion, config file, environment variable, 命令行, 终端应用, 参数解析
44
46%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Passed
No known issues
Optimize this skill with Tessl
npx tessl skill review --optimize ./skills/domain-cli/SKILL.mdQuality
Discovery
54%Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.
The description excels at trigger term coverage with a comprehensive keyword list spanning CLI, TUI, and related Rust crates, but it completely lacks specificity about what the skill actually does — no concrete actions or capabilities are described. It reads more like a tag cloud than a skill description, making it hard for Claude to understand what guidance this skill provides beyond the domain of CLI tools.
Suggestions
Add concrete actions describing what the skill does, e.g., 'Guides building CLI tools with argument parsing, subcommands, interactive prompts, progress bars, and colored output using Rust crates like clap, ratatui, and indicatif.'
Restructure to separate the 'what' from the 'when', e.g., start with capability descriptions and then follow with 'Use when...' and keyword triggers.
Remove overly generic keywords like 'config file' and 'environment variable' that could cause false matches with unrelated skills, or qualify them (e.g., 'CLI config file parsing').
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | The description says 'Use when building CLI tools' but does not describe any concrete actions the skill performs. There are no verbs like 'generates', 'creates', 'parses', or 'configures' — just a domain reference and a keyword list. | 1 / 3 |
Completeness | The 'when' is present ('Use when building CLI tools') but the 'what' is essentially absent — there is no description of what the skill actually does or what capabilities it provides. The keyword list hints at scope but doesn't explain actions. | 2 / 3 |
Trigger Term Quality | Excellent coverage of natural keywords users would say: 'CLI', 'command line', 'terminal', 'clap', 'argument parsing', 'subcommand', 'TUI', 'progress bar', 'colored output', 'shell completion', 'config file', 'environment variable', plus CJK variants. These are terms users would naturally use. | 3 / 3 |
Distinctiveness Conflict Risk | The keyword list is fairly specific to CLI/TUI tooling and includes distinctive terms like 'clap', 'ratatui', 'crossterm', 'indicatif', which help narrow the niche. However, terms like 'config file' and 'environment variable' are generic and could overlap with many other skills. | 2 / 3 |
Total | 8 / 12 Passed |
Implementation
37%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
This skill provides a reasonable reference card for Rust CLI development with useful tables and one good executable code example. However, it suffers from significant redundancy across sections (the same constraints appear in 3-4 different tables), lacks concrete executable examples for most topics beyond basic clap usage, and provides no workflow guidance for actually building a CLI tool end-to-end. The meta-framework layering references (Layer 1/2/3, m05/m09/m12) add overhead without clear practical value.
Suggestions
Add executable code examples for config layering (figment), progress bars (indicatif), and signal handling (ctrlc crate) — these are mentioned but never demonstrated concretely.
Consolidate the redundant tables: Domain Constraints, Critical Constraints, Design Patterns, and Trace to Layer 1 all repeat the same information (exit codes, stderr, config precedence) — merge into a single authoritative reference.
Add a workflow section with sequenced steps for scaffolding a new CLI project, e.g.: 1) Define args struct, 2) Add subcommands, 3) Wire up config layering, 4) Add error handling, 5) Test with `--help` and invalid inputs.
Remove or minimize the Layer 1/2/3 trace sections — they add meta-framework jargon without actionable guidance for the CLI domain specifically.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The content is reasonably efficient but includes some redundancy — the same concepts (exit codes, stderr/stdout, config precedence) appear in multiple tables and sections (Domain Constraints table, Critical Constraints section, Design Patterns table, Trace to Layer 1 table). The 'Trace Down' and 'Trace to Layer 1' sections add meta-framework references (m05, m09, m12) that are somewhat abstract without clear payoff. | 2 / 3 |
Actionability | The CLI structure code example is executable and copy-paste ready, which is good. However, many other areas use pseudo-notation or abstract descriptions rather than concrete code (e.g., config layering mentions 'figment/config: Layer sources' but provides no executable example, progress bars mention 'ProgressBar::new(len)' inline in a table but no working snippet). Key tasks like signal handling and config layering lack concrete implementations. | 2 / 3 |
Workflow Clarity | There is no clear multi-step workflow or sequenced process for building a CLI tool. The content is organized as reference tables and isolated patterns rather than a guided process. There are no validation checkpoints or feedback loops — for example, no guidance on testing argument parsing, verifying exit codes, or validating config layering works correctly. | 1 / 3 |
Progressive Disclosure | The content has some structure with clear section headers and tables, and references related skills (m06, m05, m12, m07). However, with no bundle files provided, these references are unverifiable. The content is somewhat monolithic — the full code example and multiple overlapping tables could benefit from better separation, and the 'Layer' framework references add navigational complexity without clear resolution. | 2 / 3 |
Total | 7 / 12 Passed |
Validation
90%Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.
Validation — 10 / 11 Passed
Validation for skill structure
| Criteria | Description | Result |
|---|---|---|
frontmatter_unknown_keys | Unknown frontmatter key(s) found; consider removing or moving to metadata | Warning |
Total | 10 / 11 Passed | |
fa60f79
Table of Contents
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.