CtrlK
BlogDocsLog inGet started
Tessl Logo

write-script-rlang

MUST use when writing R scripts.

50

Quality

63%

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 ./system_prompts/auto-generated/skills/write-script-rlang/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

71%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 body is a strong operational guide: fully executable commands and R examples with explicit validation checkpoints for every mutating operation. Its weaknesses are redundancy (the deploy and not-a-deploy rules are each restated several times) and organization (generic Windmill content inlined in the R skill, external references that are not part of any bundle, and inconsistent heading levels).

Suggestions

State each safety rule once: consolidate the deploy-only-on-explicit-request rule (currently at lines 15, 19, 26, and 45) and the 'generate-metadata is not a deploy' clarification (lines 14, 33, 45) into a single authoritative section.

Move the language-agnostic Windmill material (CLI commands, general principles, preprocessor scripts) into a shared reference file and keep only the R-specific sections inline in this skill.

Fix the heading hierarchy (## CLI Commands currently precedes two # H1s) and clearly signal which referenced files (AGENTS.wmill.md, the preview skill) live outside this skill bundle.

DimensionReasoningScore

Conciseness

The R-specific guide is lean and all content is Windmill-specific knowledge Claude does not already have, but the CLI/metadata half is noticeably redundant: the deploy-only-on-explicit-request rule appears four times (lines 15, 19, 26, 45) and the 'generate-metadata is not a deploy' clarification three times (lines 14, 33, 45). This fits anchor 3 ('mostly efficient but includes some unnecessary explanation or could be tightened'); the repetition of identical rules pushes it below anchor 4 but the absence of known-concept padding keeps it above anchor 2.

3 / 5

Actionability

Fully executable throughout: concrete commands ('wmill script preview <script_path>', 'wmill generate-metadata --dry-run', 'wmill generate-metadata rehash', 'wmill resource-type list --schema'), complete copy-paste R examples, per-language placeholder syntax for args ('$1 for PostgreSQL, ? for MySQL/Snowflake, @P1 for MSSQL'), and decision rules keyed to exact user phrases. Only 'Place scripts in a folder' is underspecified, which is too minor to drop it from anchor 5.

5 / 5

Workflow Clarity

Decision rules (preview vs run vs sync push) are explicit with concrete trigger phrases, and real validation checkpoints exist: --dry-run lists stale items with reasons before regenerating, regenerated locks are diffed and version bumps reported, and preview validates before any deploy. However, the workflow is organized topically rather than as a linear sequence, and the repeated rules scatter the same step across four sections — anchor 4 ('clear sequence with most checkpoints present; minor validation gaps') rather than the fully sequenced/checklisted form of anchor 5. Deploying mutates remote state, but it is gated behind explicit user request and prior preview validation, so no destructive-operation cap applies.

4 / 5

Progressive Disclosure

No bundle files exist, so everything is inlined in SKILL.md. Section headers provide structure, but roughly half the body is language-agnostic Windmill material (CLI commands, general principles, TypeScript/Python preprocessors) inlined in an R-specific skill — content that belongs in a shared reference file. References to 'AGENTS.wmill.md' and the 'preview' skill point outside the skill without clear signaling, and the heading hierarchy is inconsistent (## sections precede two # H1s). Anchor 3 ('some structure but could be better organized; references present but not clearly signaled; content that should be separate is inline') is the best fit.

3 / 5

Total

15

/

20

Passed

Description

36%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 has a clear, natural trigger phrase but says nothing about what the skill actually does — the Windmill context, script structure, or tooling are all unstated. It reads as a bare activation rule rather than a capability description, creating overlap risk with any generic R-coding skill.

Suggestions

State the 'what' before the 'when': e.g., 'Write Windmill scripts in R — main() structure, resource-typed parameters, JSON returns, and wmill preview/generate-metadata workflows. Use when writing or editing R scripts for Windmill.'

Add scoping keywords ('Windmill', '.R') to the description so the skill does not trigger for ordinary, non-Windmill R script requests.

Add synonym coverage such as 'R code' or 'R language' alongside 'R scripts' to catch natural phrasing variations.

DimensionReasoningScore

Specificity

The description names the domain ("writing R scripts") but states no concrete actions whatsoever — nothing about Windmill, script structure, parameters, preview, or metadata generation. It is not entirely vague like 'Helps with documents' (1), but it lacks even the 1-2 concrete actions needed for anchor 3.

2 / 5

Completeness

The description is only a 'when' clause ("MUST use when writing R scripts") with no 'what' at all — the skill's purpose (Windmill R script authoring, running, metadata sync) is completely unstated. This exactly matches anchor 2 ('only when is present without what', cf. 'Use when working with documents'): the specific 'when' rules out 1, and the total absence of a 'what' rules out 3.

2 / 5

Trigger Term Quality

"writing R scripts" is a phrase a user would naturally say, so a relevant keyword is present, but there are no common variations or synonyms (".R files", "R code", "Windmill", "R language"), matching anchor 3. It is more natural than the generic one-two keywords of anchor 2, but far from the synonym-and-extension coverage of anchor 5.

3 / 5

Distinctiveness Conflict Risk

"Writing R scripts" is a specific language niche, but without 'Windmill' scoping it would trigger for any R script request, overlapping generic R-programming skills or sibling Windmill language skills. Anchor 3 ('somewhat specific but could still overlap with similar skills') is the best fit; anchor 4 would require the distinct trigger scoping that is missing.

3 / 5

Total

10

/

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
windmill-labs/windmill
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.