Credited skills
Skill 32 of 41
Writes and reviews the JSDoc on @Env(...) config properties.
3 minutes · 595 words · 4 sections
The JSDoc above every @Env('...') property is exported almost verbatim into
the environment variables reference (opens in a new tab)
on docs.n8n.io. The generated table has four columns: variable name,
description, data type, default. Your JSDoc is the description column. The
reader is a self-hosting operator, not an n8n developer.
Follow the n8n docs style guide (opens in a new tab)
for these comments. It overrides the ASD-STE100 rule in AGENTS.md for this
one case. The rules below are the parts of that guide that matter for a
one-paragraph description.
@Env property has a JSDoc. No exceptions. A missing comment
ships as an empty description cell.googleOAuth2Api or a mode like postgresdb.
The test: would the operator paste this into a config file, or would they
need the source to know what it means? Details for developers go in a
regular // comment on the implementation, not in the JSDoc.Number or String.sqlite,
postgresdb.” For a list, show one inline example in the sentence.@example, @default, @see, @deprecated. The
exporter copies the tag name into the docs. Put the example or the
deprecation notice in a sentence instead.n8n is always lowercase.Bad, as found in the generated docs:
/**
* Instance-level enablement for n8n Connect (AI Gateway). Licensed instances
* are enabled by default; false opts out. Budget / free allowance still comes
* from the license (`quota:aiGatewayBudget`).
*/Wrong product name, a restated default, and an internal license key. Good:
/**
* Whether Gateway credits are available on this instance. Set to false to
* turn them off on a licensed instance. The credit allowance comes from your
* license.
*/Bad:
/**
* Time to live in milliseconds for Redis cache entries. Set to 0 to disable
* expiry. Default: 1 hour.
*/The default is already in the table. Good:
/**
* Time to live in milliseconds for Redis cache entries. Set to 0 to keep
* entries until Redis evicts them.
*/Bad:
/**
* Comma-separated list of credential types for which overwrites are skipped
* when the credential has been customized.
* @example `N8N_SKIP_CREDENTIAL_OVERWRITE=zohoOAuth2Api,salesforceOAuth2Api`
*/The @example tag lands in the description as literal text. Good:
/**
* Comma-separated list of credential types to skip when applying credential
* overwrites, for example `zohoOAuth2Api,salesforceOAuth2Api`. n8n skips an
* overwrite only when a user has already changed one of its fields.
*/Bad:
/**
* Bind OAuth credential callbacks to the browser that initiated the flow.
* When enabled, a session-scoped `n8n-oauth-binding` cookie is set on flow
* initiation and verified on callback. Defeats phishing attacks where an
* attacker injects an OAuth authorize URL into a victim's browser to land
* tokens on the attacker's credential.
*/Attack narrative and an internal cookie name on a public page. Good:
/**
* Whether an OAuth credential connection must finish in the same browser
* that started it. When enabled, n8n rejects the callback if it arrives
* from a different browser.
*/When you review a PR that adds or changes an @Env property, check each
comment against this list and quote the fix in the review:
Credited
This skill is installed in n8n-io/n8n — in use here rather than published from here — so there is no install command for it on this page.
Writes and reviews the JSDoc on `@Env(...)` config properties. The docs team extracts these comments from source into the public environment variable reference, so they are user documentation, not code comments. Use when adding or changing an `@Env` property, a config class, or reviewing a PR that touches one.
The verbatim description from this skill’s front matter — the string an agent matches on to decide whether to load it.
master, last pushed 8 November 2026.SKILL.md, not by matching a directory convention. 6 distinct layouts observed: .agents/skills/*/SKILL.md, .claude/plugins/n8n/skills/*/SKILL.md, .opencode/skills/*/SKILL.md, docs/generated/*/skill.md, packages/@n8n/cli/skills/*/SKILL.md, packages/@n8n/instance-ai/skills/*/SKILL.md.h1 and no skipped levels:.claude-plugin/marketplace.json by n8n, declaring 1 plugin. It is read for editorial metadata only — never as the skill index, which is always the repository tree./n8n-io/n8n.md, and each skill at its own .md URL.