Install
openclaw skills install n8n-evol-iA harness to help coding agents build, deploy, maintain, and debug multi-workflow n8n-powered automation systems. No lock-in — work from the agent, continue from the n8n UI, hand back to the agent at any time.
openclaw skills install n8n-evol-iThis is the entry point. When the user asks anything n8n-related, route to the matching sub-skill.
${PWD}/n8n-evol-I-workspace/ (created by init.md).helpers/. Invoke them with python3 ${CLAUDE_PLUGIN_ROOT}/helpers/<name>.py [args] (plugin mode) or python3 <path-to-harness>/helpers/<name>.py [args] (skill mode).--workspace ${PWD}/n8n-evol-I-workspace. Pass --workspace <path> if the user runs from elsewhere.N8N-WORKSPACE-MEMORY.md in the workspace at the start of every session; append a dated entry whenever you learn something durable about this project. Full guidance in AGENTS.md (also in the workspace root).| Skill | When |
|---|---|
| init.md | First-time setup. Creates the workspace at ${PWD}/n8n-evol-I-workspace/. |
| bootstrap-env.md | Configure an environment (dev / staging / prod). Creates env YAML + .env, validates, mints placeholder workflow IDs. |
| doctor.md | Health check. Run before/after major changes. |
| create-new-workflow.md | Author a brand-new workflow. |
| register-workflow-to-error-handler.md | Wire settings.errorWorkflow. |
| create-lock.md | First-time setup for distributed locking (Redis-backed primitives). |
| copy-primitive.md | Copy a single primitive (any) into the workspace. General-purpose; doesn't register. |
| add-lock-to-workflow.md | Wrap a workflow's main flow in lock acquire/release. |
| add-rate-limit-to-workflow.md | Gate a workflow's main flow with a Redis-backed fixed-window rate-limit check. |
| tidy-workflow.md | Apply n8n's canvas-layout algorithm to a workflow template to clean up node positions. |
| deploy.md | Deploy one workflow to one env. |
| activate-single-workflow-in-env.md | Activate after deploy. |
| deactivate-single-workflow-in-env.md | Pause triggers (commonly during dev). |
| archive-workflow.md | Retire a deployed workflow (hidden + read-only on the live instance). |
| unarchive-workflow.md | Restore a previously-archived workflow so it accepts updates again. |
| deploy_all.md | Roll out an entire env in tier order. |
| resync.md | Pull live state of one workflow back into its template. |
| resync_all.md | Snapshot a full env back to templates. |
| dehydrate-workflow.md | Convert raw exported JSON into a template. |
| validate.md | Structural REST validation before deploy. |
| run.md | Fire a webhook + assert terminal status. |
| debug.md | Investigate a failing or missing execution — from vague symptom to root-cause with evidence. |
| deploy-run-assert.md | One-shot validate → deploy → run verify. |
| find-skills.md | While authoring, find applicable patterns/integrations. |
| manage-credentials.md | Create or link n8n credentials (Path A from .env.<env> / Path B from existing UI credential). |
| add-cloud-function.md | Scaffold a Python serverless function / cloud function / serverless API under <workspace>/cloud-functions/. |
| iterate-prompt.md | Optimize a prompt against a paired schema + dataset using DSPy. |
| test.md | Run unit tests over n8n Code-node JS and / or cloud-function Python. |
These are reference docs, not action triggers. Read them while authoring.
Templates use {{@:type:path}} (preferred form) or the canonical long form {{INTERPOLATE:type:path}}. The two are equivalent — @ is an alias for INTERPOLATE. Examples below use the @ form.
| Type | Syntax | Source |
|---|---|---|
env | {{@:env:key.path}} | YAML config value (dot notation) |
txt | {{@:txt:relative/path.txt}} | Text file in workspace |
json | {{@:json:relative/path.json}} | JSON file (stringified) |
html | {{@:html:relative/path.html}} | HTML file |
js | {{@:js:relative/path.js}} | JavaScript file |
py | {{@:py:relative/path.py}} | Python file (Code-node language: python) |
uuid | {{@:uuid:identifier}} | Fresh UUID v4 (consistent within one hydration) |