CtrlK
BlogDocsLog inGet started
Tessl Logo

nushell-plugin-builder

Guide for creating Nushell plugins in Rust using nu_plugin and nu_protocol crates. Use when users want to build custom Nushell commands, extend Nushell with new functionality, create data transformations, or integrate external tools/APIs into Nushell. Covers project setup, command implementation, streaming data, custom values, and testing.

88

1.20x
Quality

83%

Does it follow best practices?

Impact

95%

1.20x

Average score across 3 eval scenarios

SecuritybySnyk

Low

Low-risk findings worth noting

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 well-organized, actionable skill body with a solid quick start, working code, and a proper reference structure. The main weaknesses are abbreviated code snippets (ellipses, undefined spans), some duplication between the body and reference files, and an unreferenced asset directory.

Suggestions

Make the abbreviated snippets fully executable: replace 'fn run(&self, call: &EvaluatedCall, ...)' ellipses and the undefined 'span' in the Streaming and Table patterns with complete, copy-paste-ready code (actionability).

Trim the Serialization, Streaming, and Engine Interaction sections to one-line pointers to references/advanced-features.md and references/plugin-protocol.md to remove duplication and reduce token cost (conciseness).

Mention assets/plugin-template/ in the body (e.g. in the Quick Start or Template Script section) so the scaffolding template is discoverable, since scripts/init_plugin.py presumably generates from it (progressive_disclosure).

DimensionReasoningScore

Conciseness

The body is code-forward and lean with minimal filler, but a few sections could be trimmed: the Serialization section and the Streaming/Engine Interaction snippets duplicate content already in references/advanced-features.md, and prose like 'This shows users exactly where the error occurred in their command' adds little. Fits 'efficient; minor instances of over-explanation that could be trimmed' rather than the every-token-earns-its-place anchor.

4 / 5

Actionability

Mostly executable guidance: a complete plugin skeleton, cargo commands, install/registration commands, signature builders, and a test harness. However some snippets are abbreviated rather than copy-paste ready — 'fn run(&self, call: &EvaluatedCall, ...)' uses ellipses, the streaming example has '/* condition */' and an undefined 'span', and the Table pattern uses an undefined 'span' variable. This places it at 'concrete code with minor gaps', below fully-executable.

4 / 5

Workflow Clarity

A clear Quick Start sequence (create project, plugin structure, build/install) with a test checkpoint ('"hello" | my-command') and an iterative development loop with explicit reload steps (plugin rm/add/use). Minor validation gaps: no explicit guidance on what to do when cargo build or plugin registration fails, keeping it below the explicit-feedback-loop anchor.

4 / 5

Progressive Disclosure

Good structure: the body is an overview with one-level-deep references (references/plugin-protocol.md, advanced-features.md, examples.md, testing-debugging.md — all verified to exist), signaled inline and consolidated in a 'Reference Documentation' section, plus scripts/init_plugin.py. Gaps: assets/plugin-template/ is present in the bundle but never referenced from the body, and some advanced content (streaming, engine interaction) is inlined where the reference file would suffice, fitting 'good structure; minor organization gaps' rather than the ideal split.

4 / 5

Total

16

/

20

Passed

Description

92%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 strong description: third-person, concise, concrete, with an explicit 'Use when...' trigger clause and specific technology names. Only minor gap is a few natural synonym trigger terms.

DimensionReasoningScore

Specificity

The description lists multiple concrete actions ('creating Nushell plugins in Rust using nu_plugin and nu_protocol crates', 'build custom Nushell commands', 'create data transformations', 'integrate external tools/APIs') and enumerates coverage areas (project setup, command implementation, streaming data, custom values, testing), matching the comprehensive-coverage anchor.

5 / 5

Completeness

It explicitly answers both what ('Guide for creating Nushell plugins in Rust using nu_plugin and nu_protocol crates... Covers project setup, command implementation, streaming data, custom values, and testing') and when ('Use when users want to build custom Nushell commands, extend Nushell with new functionality, create data transformations, or integrate external tools/APIs into Nushell') with concrete trigger phrases.

5 / 5

Trigger Term Quality

Good natural trigger phrases like 'build custom Nushell commands', 'extend Nushell', and 'integrate external tools/APIs' that users would naturally say, but a few common synonyms are missing (e.g. 'write/develop a plugin', 'nu plugin', 'custom command'), fitting the 'good keyword coverage; a few natural terms missing' anchor rather than the comprehensive one.

4 / 5

Distinctiveness Conflict Risk

It occupies a clear niche (Nushell plugins in Rust with specific crate names) with distinct triggers ('Nushell commands', 'extend Nushell'), so conflict risk with other skills is minimal.

5 / 5

Total

19

/

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
YPares/agent-skills
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.