CtrlK
BlogDocsLog inGet started
Tessl Logo

write-workflow-as-code

MUST use when writing or modifying Windmill Workflow-as-Code scripts using workflow, task, step, sleep, approvals, taskScript, taskFlow, task_script, or task_flow.

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

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./system_prompts/auto-generated/skills/write-workflow-as-code/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.

An information-dense, highly actionable skill body with excellent executable examples and strong decision rules, undermined by structural bloat: duplicated API documentation for two languages and thrice-stated deploy/metadata warnings inflate the token cost. The inlined API reference is the clearest candidate for extraction into reference files.

Suggestions

Move the two full API reference blocks (lines ~242-413 and ~416-609) into references/ files such as references/typescript-api.md and references/python-api.md, keeping only a compact signature summary inline — progressive_disclosure is capped by ~370 lines of inlined API docs in a skill with no bundle files.

Deduplicate repeated guidance: state the deploy-only-on-explicit-request rule and the generate-metadata is-not-a-deploy behavior once instead of three times across the CLI list, 'Preview vs run', 'Keep metadata in sync', and 'After writing' sections.

Consolidate the post-edit flow (edit → preview → generate-metadata --dry-run → diff locks and report version bumps → deploy only on request) into a single ordered section so the workflow reads as one sequence instead of four scattered ones.

DimensionReasoningScore

Conciseness

The guidance is dense with genuinely non-obvious domain knowledge (checkpoint/replay model, suspension internals, error record shape) that Claude would not already know, but it is noticeably padded: the deploy-only-on-explicit-request rule is stated three times (CLI list, 'Preview vs run', 'After writing'), generate-metadata behavior is re-explained across sections, and two ~170-line API reference blocks (TypeScript and Python) duplicate the same semantics per language. It sits between the 'noticeably verbose' (2) and 'mostly efficient' (3) anchors, above the midpoint because the repetition is redundant restatement rather than explanation of known concepts.

3 / 5

Actionability

Fully executable throughout: exact CLI commands with flags ('wmill script preview <script_path>', 'wmill generate-metadata --dry-run', 'generate-metadata rehash'), complete copy-paste-ready dual-language examples for every construct, the concrete error shape '{"error": {"name", "message", "stack"?, "extra"?}}', and a per-dialect placeholder list ('$1 for PostgreSQL, ? for MySQL/Snowflake, @P1 for MSSQL'). Specific examples cover the common cases comprehensively.

5 / 5

Workflow Clarity

Decision rules are explicit and unambiguous ('If the user says "run the script" ... while there are local edits, use script preview'; 'Only suggest/run a deploy when the user explicitly asks'), and validation feedback loops are present (preview before deploy, '--dry-run' to list stale items, diff regenerated locks and report version changes). However, the write → preview → metadata → deploy flow is distributed across four separate sections rather than presented as one coherent ordered sequence, leaving minor assembly work to the reader — the clear-sequence-with-minor-gaps anchor.

4 / 5

Progressive Disclosure

Section headers are clear and well-organized, but roughly 370 lines of TypeScript and Python API reference ('## TypeScript Workflow-as-Code API (windmill-client)' and '## Python Workflow-as-Code API (wmill)') are inlined directly in SKILL.md with no bundle files at all — the textbook case of content that should be in separate reference files being inline. This matches the some-structure-but-could-be-better-organized anchor; not score 2 because headers and navigation exist, not score 4 because there are no references to separate files anywhere.

3 / 5

Total

15

/

20

Passed

Description

72%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, trigger-rich description that excels at when-to-fire and conflict avoidance, but it is purely a trigger clause: it never states what the skill provides. Adding a capability statement (e.g., authoring rules, checkpoint/replay semantics, SDK API and CLI workflow) would round it out.

Suggestions

State the 'what' explicitly, e.g. 'Guides Windmill Workflow-as-Code authoring: checkpoint/replay rules, the windmill-client (TypeScript) and wmill (Python) SDKs, and the wmill CLI workflow. Use when ...' — completeness is capped because the description is only a when-clause.

Add trigger terms users would naturally say but that are currently missing, such as 'wait_for_approval'/'waitForApproval', 'parallel', 'wmill', and 'Windmill flow'/'flow script', to broaden natural-keyword coverage.

DimensionReasoningScore

Specificity

The description names the domain precisely ('Windmill Workflow-as-Code scripts') and lists concrete SDK identifiers ('workflow, task, step, sleep, approvals, taskScript, taskFlow, task_script, or task_flow'), but the only actions stated are 'writing or modifying' — what the skill actually provides (authoring rules, API reference, CLI workflow) is never named. This matches the anchor for naming the domain with 1-2 concrete actions but not comprehensive coverage.

3 / 5

Completeness

The 'when' is explicit and trigger-rich ('MUST use when writing or modifying ... using workflow, task, ...'), but the 'what' is never stated — the skill's actual capabilities must be inferred from the domain name. It falls between the only-'when'-without-'what' anchor (2) and both-present anchor (4): the embedded activity ('writing or modifying ... scripts') supplies a partial implied what, keeping it at the midpoint rather than below.

3 / 5

Trigger Term Quality

'writing or modifying Windmill Workflow-as-Code scripts using workflow, task, step, sleep, approvals, taskScript, taskFlow, task_script, or task_flow' comprehensively covers the natural terms a user or agent would say in this niche, including both camelCase and snake_case synonyms. This is the comprehensive-with-synonyms anchor; nothing in the domain's everyday vocabulary is conspicuously missing.

5 / 5

Distinctiveness Conflict Risk

'Windmill Workflow-as-Code scripts' plus exact SDK identifiers like 'taskScript', 'taskFlow', 'task_script', 'task_flow' define a clear niche with distinct triggers and minimal overlap risk with other skills. Only WAC work would match this description.

5 / 5

Total

16

/

20

Passed

Validation

93%

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

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

skill_md_line_count

SKILL.md is long (610 lines); consider splitting into references/ and linking

Warning

Total

15

/

16

Passed

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.