CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

cli-commands

Use when adding or modifying CLI command (`but` commands) under `crates/but/src`.

Quality

69%

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 ./.agents/skills/cli-commands/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

75%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A strong, example-driven skill that teaches a repo-specific command architecture through one complete worked example (commit3) plus dense, non-generic rules — every token carries information Claude could not infer on its own. The workflow is clearly sequenced by file location, though it lacks any verification checkpoint and the implementation example uses placeholders.

DimensionReasoningScore

Conciseness

The body is dense with project-specific rules ("Use `CliIdArg` for arguments that reference existing Git objects", "`run` doesn't print its final output") and explains nothing Claude already knows — no primer on clap, git, or serialization. Minor trimming is possible: two adjacent notes both restate what belongs in `run()` ("Commit counts, diffs, statistics, branch details... belong in `run()`" followed by "State derivable from those identifiers... belongs in `run()`"), fitting anchor 4 rather than 5.

4 / 5

Actionability

Concrete, near-executable guidance dominates: full `Platform` struct code, the dispatch match arm with real APIs (`IntermediateChannel`, `emit_metrics`, `print_cli_output`), and specific rules like "Bad user input errors use `bad_input(...)`, optionally with `.arg_name()`". It falls short of anchor 5 because the command-implementation example uses `// ...` placeholders and an unannotated code fence, but it is well above anchor 3 since the args and dispatch examples are complete and runnable in shape.

4 / 5

Workflow Clarity

The workflow is clearly sequenced in the order the work must happen — Arguments ("Arguments live in `crates/but/src/args`") → Handling ("Add a match arm to `crates/but/src/lib.rs`") → Implementing ("In `crates/but/src/command/legacy/commit3.rs`") — each keyed to a concrete file path. This is not a destructive or batch operation, so the validation cap does not apply, but there is also no compile/verify checkpoint (e.g. `cargo check` or confirming `ERROR_EXAMPLES` registration), keeping it at anchor 4 rather than 5.

4 / 5

Progressive Disclosure

There are no bundle files (no references/, scripts/, or assets/), and the body is organized into clear sections with a final "More examples" list pointing one level deep to real repo files (`crates/but/src/command/legacy/commit.rs` etc.), which is well signaled. All ~250 lines of guidance live inline in a single file; the content is cohesive but a few of the detailed rule lists could be split out, matching anchor 4's 'most content is appropriately placed; minor organization gaps' rather than anchor 5.

4 / 5

Total

16

/

20

Passed

Description

48%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A highly distinctive, well-scoped trigger with a precise 'use when' clause and concrete path, but it omits any statement of what the skill provides, so a model reading only the description learns when to invoke it without learning what it offers. Adding one clause summarizing the skill's content (argument conventions, dispatch, resolve/run command structure) would raise completeness and specificity substantially.

Suggestions

State the 'what' explicitly, e.g. "Provides the required structure for `but` commands: argument types in `crates/but/src/args`, dispatch in `lib.rs`, and resolve/run command implementation. Use when adding or modifying CLI commands (`but` commands) under `crates/but/src`."

Add natural trigger variations users might say, such as "subcommand", "clap arguments", or "but CLI", to improve trigger-term coverage.

Keep the third-person, "Use when..." form — it is already correct; only the capability summary is missing.

DimensionReasoningScore

Specificity

The description names the domain ("CLI command (`but` commands)") and a concrete location ("`crates/but/src`") but states only the action of adding or modifying — it never enumerates what the skill actually provides (argument conventions, resolve/run structure, output handling). This matches 'names domain and 1-2 concrete actions, but not comprehensive'; it is not 4 because no list of specific capabilities is given, and not 2 because the domain and path are concrete rather than generic.

3 / 5

Completeness

The 'when' is explicit and precise ("Use when adding or modifying CLI command (`but` commands) under `crates/but/src`"), but no 'what' is stated — the description never says the skill provides the structural conventions for these commands, and per the judging guidelines only explicitly stated content is scored. This matches 'only "when" is present without "what"' (anchor 2); anchor 3 is not awarded because it requires a clear 'what'.

2 / 5

Trigger Term Quality

Terms a contributor would naturally say are present ("CLI command", "but commands", "`crates/but/src`"), but common variations such as "subcommand", "clap", "arguments", or "flags" are missing. This fits 'some relevant keywords but missing common variations or synonyms'; it falls short of 4 because keyword coverage is thin rather than good-with-a-few-gaps.

3 / 5

Distinctiveness Conflict Risk

The scope is one binary's commands at one specific path ("`but` commands) under `crates/but/src`"), a clear niche with distinct triggers and minimal conflict risk with other skills. This matches anchor 5.

5 / 5

Total

13

/

20

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository

gitbutlerapp/gitbutler

Path

.agents/skills/cli-commands/SKILL.md

Reviewed

Table of Contents

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.