CtrlK
BlogDocsLog inGet started
Tessl Logo

n8n-code-tool

Write JavaScript or Python for the n8n Custom Code Tool (@n8n/n8n-nodes-langchain.toolCode) — the AI-agent-callable tool, NOT the workflow Code node. Use when building a Code Tool attached to an AI Agent, writing code that an LLM will invoke, parsing the `query` input, returning a string result, defining an input schema for structured arguments (specifyInputSchema, jsonSchemaExample, DynamicStructuredTool), or troubleshooting errors like "Wrong output type returned", "No execution data available", "The response property should be a string, but it is an object", "Cannot assign to read only property 'name'", or an AI agent that refuses to call the tool. Covers the critical differences between Code node and Code Tool: return format (string vs `[{json:{...}}]`), unavailability of `$fromAI`/`$input`/`$helpers` in the Code Tool sandbox, naming rules for AI invocation, and when to use `toolWorkflow`/HTTP Request Tool instead.

72

Quality

89%

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

SKILL.md
Quality
Evals
Security

Quality

Content

78%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 highly actionable with executable examples, a clear Quick Start, and excellent error troubleshooting. The main weakness is progressive disclosure: the skill signals two reference files (INPUT_SCHEMA.md, ERROR_PATTERNS.md) that are not present in the bundle, so those links are broken. Conciseness is strong but slightly reduced by a duplicated full example.

Suggestions

Add the missing INPUT_SCHEMA.md and ERROR_PATTERNS.md files to the bundle (under references/), or remove the links and inline the essential parts — currently both links resolve to nothing.

Consider trimming the duplicated complete-working-example block or the verbose unstructured/structured tool-description examples, since the patterns they demonstrate already appear earlier in the body.

Add an explicit verify gate before the deploy checklist (e.g. a minimal test snippet showing how to confirm the tool is wired and returns a string) to push workflow clarity toward 5.

DimensionReasoningScore

Conciseness

The body is dense and assumes Claude's competence — there is no "what is n8n" or "what is LangChain" padding, and tables/inline code keep it information-rich. A few sections (e.g. the long jsCode block and the two full tool-description examples) repeat patterns already shown, which could be trimmed — that minor over-explanation prevents a 5.

4 / 5

Actionability

Fully executable and copy-paste ready: minimal JS/Python snippets, a complete production calculator example with full `jsCode`, exact node-type strings, and concrete error→fix mappings that cover the common cases.

5 / 5

Workflow Clarity

Clear sequence (Quick Start → input modes → return format → top errors → checklist) with an explicit pre-deploy checklist acting as a validation checkpoint, and a documented error→agent-reads→retries feedback loop. Not a 5 because the deploy/verify step is a checklist rather than an explicit validate-then-proceed gate, and there is no live test snippet to confirm wiring.

4 / 5

Progressive Disclosure

Structure and signaling are good — a clear overview with one-level-deep links to [INPUT_SCHEMA.md](INPUT_SCHEMA.md) and [ERROR_PATTERNS.md](ERROR_PATTERNS.md) — but neither referenced file exists in the bundle (no references/, scripts/, or assets/ directories are present), so the signaled references do not resolve. If the two .md files were present this would be a 5; their absence leaves inline-only content that belongs in those files, capping this below 4 per the bundle-structure guidance.

3 / 5

Total

16

/

20

Passed

Description

100%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 is highly specific, complete, and distinctive, with excellent natural trigger terms including verbatim error strings users would paste. Its only weakness is verbosity — the dense multi-clause construction could be tightened without losing the concrete triggers.

Suggestions

Trim the description: the verbatim error catalog is valuable as triggers but the sentence is very long; consider condensing the secondary "Covers the critical differences..." clause since those points are covered in the body.

Keep the verbatim error strings (they are excellent natural triggers) but lead with the core "Write JS/Python for the Code Tool" + "Use when..." clause so the trigger is parseable in one glance.

DimensionReasoningScore

Specificity

Lists multiple concrete actions — "Write JavaScript or Python for the n8n Custom Code Tool", "parsing the `query` input", "returning a string result", "defining an input schema (specifyInputSchema, jsonSchemaExample, DynamicStructuredTool)" — plus verbatim error strings and concrete return-format differences, giving comprehensive coverage.

5 / 5

Completeness

Explicitly answers both what ("Write JavaScript or Python for the n8n Custom Code Tool") and when ("Use when building a Code Tool attached to an AI Agent, writing code that an LLM will invoke, parsing the `query` input ... or troubleshooting errors like ...") with concrete trigger phrases.

5 / 5

Trigger Term Quality

Natural trigger terms a user would actually say are covered comprehensively, including the verbatim error messages users paste ("Wrong output type returned", "The response property should be a string, but it is an object", "Cannot assign to read only property 'name'") and "an AI agent that refuses to call the tool".

5 / 5

Distinctiveness Conflict Risk

Occupies a clear niche with an explicit disambiguator ("NOT the workflow Code node"), names the exact package `@n8n/n8n-nodes-langchain.toolCode`, and lists distinguishing triggers, giving minimal conflict risk with adjacent skills.

5 / 5

Total

20

/

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.

Validation15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

relative_links

Relative link issues: 4 missing

Warning

Total

15

/

16

Passed

Repository
czlonkowski/n8n-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.