Content
60%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 content is exceptionally actionable — verified wrong-vs-right pairs, real error messages, and concrete procedures — and the gatekeeper/debugging workflows are clearly sequenced. But it is severely bloated by 4-5x repetition of the same handful of rules and re-teaching of basic JavaScript, and it points to two reference files that do not exist while inlining the material they should hold.
Suggestions
Collapse the duplicated rule statements: "Validation Rules", "Common Mistakes" quick-fix table, "Best Practices" Do/Don't, and "Summary" all restate the same 5-6 rules already given in "Expression Format" and "Core Variables" — state each rule once and delete the repeats.
Cut "Expression Helpers/Available Methods" and "Data Type Handling", which list standard JavaScript (string/array methods, ternaries, dot vs bracket notation) Claude already knows; keep only n8n-specific behavior like the expression-only helper functions and silent-null runtime rule.
Create the referenced COMMON_MISTAKES.md and EXAMPLES.md (currently dangling) and move the inlined "Working Examples" and mistake tables into them, shrinking SKILL.md to an overview with one-level-deep, working references.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | At ~690 lines the body states the same core rules four to five times: the {{}} brace rule appears in "Expression Format", "Validation Rules" #1/#4, "Common Mistakes" quick-fix table, "Best Practices" Do/Don't, and "Summary"; the webhook `.body` rule and case-sensitive node names repeat similarly. "Expression Helpers/Available Methods" and "Data Type Handling" list standard JS (`.toLowerCase()`, `.split()`, `.map()`, ternaries, dot vs bracket notation) Claude already knows. Below anchor 3 because the duplication is extensive, though not anchor 1 since substantial high-value non-obvious content ($jmespath quoting table, silent-null runtime behavior) is interwoven. | 2 / 5 |
Actionability | Copy-paste-ready wrong-vs-right pairs (❌ `{{$json.name}}` / ✅ `{{$json.body.name}}`), exact error messages ("expected two arguments (Object, string)"), a tested $jmespath table, a debugging wrapper snippet, a concrete MCP removal sequence (removeConnection → addConnection → patchNodeField → removeNode), and worked examples covering the common cases. Fully executable with no gaps. | 5 / 5 |
Workflow Clarity | The "transform gatekeeper" is an explicitly ordered decision procedure ("walk this order and stop at the first that fits", numbered 1-4) and the debugging section sequences verification (editor preview → check output for `null` → temporary try/catch wrapper) with a recovery loop. Not 5: checkpoints are scattered across sections rather than consolidated into one validated workflow, and the Set-node removal procedure states steps but no verify step after the patch. This is not a destructive/batch skill, so no cap applies. | 4 / 5 |
Progressive Disclosure | No bundle files exist — neither references/ nor the referenced COMMON_MISTAKES.md and EXAMPLES.md are present, so both "See [COMMON_MISTAKES.md]" and "See [EXAMPLES.md]" links are dangling. Meanwhile the body inlines ~3 full worked examples in "Working Examples" and a quick-fix mistake table, i.e. the very content the missing files would hold. Falls below anchor 3 (references present but organization imperfect) because navigation to the referenced files actually fails; matches anchor 2's clause of content that belongs in separate files being inlined. | 2 / 5 |
Total | 13 / 20 Passed |