CtrlK
BlogDocsLog inGet started
Tessl Logo

reserved-keyword-cli-custom-commands

How to author custom commands for the reserved-keyword-cli CLI using the co-generated SDK.

60

Quality

76%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

—

The risk profile of this skill

Fix and improve this skill with Tessl

tessl review fix ./seed/cli/cli-reserved-keywords/with-wire-tests/.agents/skills/custom-commands/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

82%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.

The content is a lean, code-first guide with a fully executable worked example, concrete build/test commands, and useful regeneration-safety guidance — highly actionable with no concept padding. Its weaknesses are minor: some redundancy between the Key Patterns section and the main example, no explicit error-recovery feedback loop after build/test, and structure that is good but not exemplary in splitting content.

DimensionReasoningScore

Conciseness

The body is efficient and assumes Claude's competence — it never explains Rust, clap, or what a CLI is — but the 'Key Patterns' section re-shows "let client = super::sdk::client(ctx);" already demonstrated in the full register() example, and the one-row SDK clients table could be a single sentence. These are minor instances that could be trimmed, matching anchor 4 rather than the every-token-earns-its-place of 5.

4 / 5

Actionability

The guide provides a complete, copy-paste-ready Rust snippet for registering a command (including argument handling, client wiring via "super::sdk::client(ctx)", async execution via "block_on", and output serialization) plus concrete build, run, and debug commands ("cargo build", "reserved-keyword-cli get <model_id>", "RUST_LOG=debug"). This fully covers the common case of adding a custom command.

5 / 5

Workflow Clarity

The sequence is clear — edit custom.rs (step 1), then "cargo build", then run "reserved-keyword-cli get <model_id>" as a verification checkpoint — and the regeneration-safety table tells what happens on "fern generate". However, there is no explicit error-recovery loop (what to do when the build fails or the SDK surface changed beyond the one sentence), matching anchor 4's 'minor validation gaps' rather than 5's explicit feedback loops.

4 / 5

Progressive Disclosure

The body has a clear structure (Overview, Architecture, Adding a Custom Command with numbered subsections, Regeneration Safety, Build & Test) with all content inline and no nested references. It is well over the 50-line simple-skill threshold, and while everything is appropriately placed for its size, the single-row sub-client table and Key Patterns read as inline content that a larger reference file would absorb, matching anchor 4 rather than 5.

4 / 5

Total

17

/

20

Passed

Description

57%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.

The description is specific and distinctive — it names the exact CLI and the co-generated SDK — but it omits any 'when to use' trigger clause and offers only a single concrete action with no natural synonyms or variations. It communicates the what well while leaving the when entirely unanswered.

Suggestions

Append an explicit trigger clause, e.g. "Use when adding, editing, or debugging custom commands for the reserved-keyword-cli CLI, or when fern regeneration breaks an existing custom command."

Include natural trigger-term variations users would actually say, such as "custom command", "add a command", "extend the CLI", and "fern generate", instead of relying solely on the jargon phrase "co-generated SDK".

Enumerate one or two more concrete capabilities (registering commands in custom.rs, wiring them to the authenticated SDK client, keeping them safe across fern regeneration) to move beyond a single-action summary.

DimensionReasoningScore

Specificity

"How to author custom commands for the reserved-keyword-cli CLI" names a specific domain and one concrete action (authoring custom commands), but does not list several specific actions. It matches 'names domain and 1-2 concrete actions, but not comprehensive'; it is not generic enough for 2 and lacks the multi-action coverage of 4.

3 / 5

Completeness

The description has a clear 'what' ("author custom commands for the reserved-keyword-cli CLI using the co-generated SDK") but contains no 'when' / 'Use when...' clause or any usage-trigger guidance, capping completeness at 3 per the judging guidelines.

3 / 5

Trigger Term Quality

"custom commands", "CLI", and "SDK" are relevant keywords a user might say, but "co-generated SDK" is internal jargon and no synonyms or natural variations are provided. This sits between 'one or two generic keywords' (2) and 'good keyword coverage' (4).

3 / 5

Distinctiveness Conflict Risk

The description names one specific CLI ("reserved-keyword-cli") and a specific task (authoring custom commands with its co-generated SDK), forming a clear niche with minimal risk of triggering for the wrong skill.

5 / 5

Total

14

/

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
fern-api/fern
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.