Quick reference for n8n patterns. Full docs /AGENTS.md
📚 Full Documentation:
/AGENTS.md - Architecture, commands, workflows/packages/frontend/AGENTS.md - CSS variables, timingUse this skill when you need quick reminders on critical patterns.
Technical writing (comments, PRs, issues, docs):
TypeScript:
any → use unknownsatisfies over as (except tests)@n8n/api-typesError Handling:
import { UnexpectedError } from 'n8n-workflow';
throw new UnexpectedError('message', { extra: { context } });
// DON'T use deprecated ApplicationErrorFrontend:
<script setup lang="ts">)/packages/frontend/AGENTS.md$t('key'))data-testid for E2E (single value, no spaces)Backend:
@n8n/di@n8n/configoffset + limit in controllers and services; translate to TypeORM skip/take only inside repositoriesTesting:
N8N_USER_FOLDER before importing settings codepushd packages/cli && pnpm testDatabase:
GitHub Workflows:
permissions: block
(usually contents: read); jobs needing more override at job levelCommands:
pnpm build > build.log 2>&1 # Always redirect
pnpm typecheck # Before commit
pnpm lint # Before commitSecrets: pnpm command lines may be recorded verbatim (opt-in dev metrics) — pass sensitive values via env vars, never inline on the command line.
| Package | Purpose |
|---|---|
packages/cli | Backend API |
packages/frontend/editor-ui | Vue 3 frontend shell |
packages/modules/<name>/frontend | Frontend feature modules. Guide: packages/@n8n/module-cli/frontend-module-guide.md |
packages/@n8n/api-types | Shared types |
packages/@n8n/db | TypeORM entities |
packages/workflow | Core interfaces |
Pinia Store:
import { STORES } from '@n8n/stores';
export const useMyStore = defineStore(STORES.MY_STORE, () => {
const state = shallowRef([]);
return { state };
});Vue Component:
<script setup lang="ts">
type Props = { title: string };
const props = defineProps<Props>();
</script>Service:
import { Service } from '@n8n/di';
import { Config } from '@n8n/config';
@Service()
export class MyService {
constructor(private readonly config: Config) {}
}📖 Need more details? Read /AGENTS.md and /packages/frontend/AGENTS.md
n8n-io/n8n
c44bd78
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.