Content
71%Weight 40%Scale 1-5Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
The body is a dense, highly actionable Windmill raw-app guide with copy-paste commands, complete code examples, and well-sequenced workflows guarded by lint and consent checkpoints. Its weaknesses are structural: two merged H1 guides with duplicated guidance (roles, whitelisting) inlined in a single ~500-line file with no external references, despite the intro pointing to a 'companion authoring guide'.
Suggestions
Move the second document (the '# Windmill Raw Apps' authoring guide covering frontend shape, backend runnable types, chat UIs, and querying) into a reference file such as references/authoring.md and link to it from the CLI workflow body — the intro at the top already claims this content lives in a 'companion authoring guide'.
Deduplicate repeated guidance: role-passing is stated near-verbatim in both 'Data tables — raw_app.yaml config' and 'Data Tables → Critical rules' rule 5, and 'always whitelist tables' appears in the migration workflow, migration best practices, and Best Practices #6 — consolidate each into one authoritative section.
Collapse the two H1 titles ('Windmill Raw Apps — CLI workflow' and 'Windmill Raw Apps') into a single coherent document outline so the skill reads as one guide with a table of structure rather than two pasted-together files.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | Mostly efficient — the bulk is dense Windmill-specific knowledge Claude cannot know (non-interactive mode, esbuild classic transform requiring `import React from 'react'`, draft-vs-deployed runnables, lock-file staleness) — but the file inlines two merged H1 guides and repeats guidance: role-passing is explained nearly verbatim twice ('roles records the role the app uses each datatable through; the app's code must pass the same role' and Critical rule 5 'every wmill.datatable call on it passes that role'), and 'always whitelist tables' appears in three places (migration best practices, the migration workflow, and Best Practices #6). Not a 4 because the duplication is beyond minor; not a 2 because the content is largely necessary, not padded filler. | 3 / 5 |
Actionability | Fully executable throughout: a copy-paste `wmill app new --summary "Customer dashboard" --path f/sales/dashboard --framework react19` command, the exact on-disk layout tree, a 17-language extension table, complete runnable code in TypeScript and Python (imports, `main` signature, parameterized queries), and concrete YAML configs. Even failure modes come with exact symptoms ('React is not defined', a blank screen with 'no error thrown'). | 5 / 5 |
Workflow Clarity | App creation is sequenced as explicit Step 1–3 with a consent checkpoint for the destructive `--overwrite` flag, and `wmill app lint` is positioned as a validation gate 'after editing, before offering a preview or a deploy', plus a lock-diff review loop after `wmill generate-metadata`. Not a 5 because the creation workflow itself lacks a post-command verification step and the SQL migration workflow relies on an implicit browser modal rather than an explicit validate step. | 4 / 5 |
Progressive Disclosure | No bundle files exist (no references/, scripts/, or assets/), so all ~500 lines live in one SKILL.md — including a second H1 document ('# Windmill Raw Apps', the authoring/platform guide) that the intro claims 'is covered in the companion authoring guide'. The in-file structure (headers, tables) is good, but ~250 lines of authoring-guide and chat-UI content that clearly belongs in a separate reference file are inlined. Fits 'some structure, content that should be separate is inline'; not a 4 because an entire second document inlined in the overview file is more than a minor organization gap. | 3 / 5 |
Total | 15 / 20 Passed |