{"skill":{"slug":"n8n-evol-i","displayName":"N8N EVOL I","summary":"A harness to help coding agents build, deploy, maintain, and debug multi-workflow n8n-powered automation systems. No lock-in — work from the agent, continue...","description":"---\nname: n8n-evol-I\ndescription: A 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.\n---\n\n# n8n-evol-I skill router\n\nThis is the entry point. When the user asks anything n8n-related, route to the matching sub-skill.\n\n## Mental model\n\n- The skill package (this directory) is **read-only**. You never edit files here.\n- The user's project state lives in `${PWD}/n8n-evol-I-workspace/` (created by `init.md`).\n- Helpers are Python scripts under `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).\n- All helpers default to `--workspace ${PWD}/n8n-evol-I-workspace`. Pass `--workspace <path>` if the user runs from elsewhere.\n- **Agent memory**: read `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).\n\n## Lifecycle skills (use when the user wants to do X)\n\n| Skill | When |\n|---|---|\n| [init.md](skills/init.md) | First-time setup. Creates the workspace at `${PWD}/n8n-evol-I-workspace/`. |\n| [bootstrap-env.md](skills/bootstrap-env.md) | Configure an environment (`dev` / `staging` / `prod`). Creates env YAML + `.env`, validates, mints placeholder workflow IDs. |\n| [doctor.md](skills/doctor.md) | Health check. Run before/after major changes. |\n| [create-new-workflow.md](skills/create-new-workflow.md) | Author a brand-new workflow. |\n| [register-workflow-to-error-handler.md](skills/register-workflow-to-error-handler.md) | Wire `settings.errorWorkflow`. |\n| [create-lock.md](skills/create-lock.md) | First-time setup for distributed locking (Redis-backed primitives). |\n| [copy-primitive.md](skills/copy-primitive.md) | Copy a single primitive (any) into the workspace. General-purpose; doesn't register. |\n| [add-lock-to-workflow.md](skills/add-lock-to-workflow.md) | Wrap a workflow's main flow in lock acquire/release. |\n| [add-rate-limit-to-workflow.md](skills/add-rate-limit-to-workflow.md) | Gate a workflow's main flow with a Redis-backed fixed-window rate-limit check. |\n| [create-queue.md](skills/create-queue.md) | First-time setup for queue primitive (Redis Streams + atomic-INCR semaphore). |\n| [add-queue-publish-to-workflow.md](skills/add-queue-publish-to-workflow.md) | Wrap a workflow with a producer-side XADD call. |\n| [add-queue-consumer-to-workflow.md](skills/add-queue-consumer-to-workflow.md) | Turn a workflow into a schedule-polled queue consumer with bounded concurrency. |\n| [tidy-workflow.md](skills/tidy-workflow.md) | Apply n8n's canvas-layout algorithm to a workflow template to clean up node positions. |\n| [deploy.md](skills/deploy.md) | Deploy one workflow to one env. |\n| [activate-single-workflow-in-env.md](skills/activate-single-workflow-in-env.md) | Activate after deploy. |\n| [deactivate-single-workflow-in-env.md](skills/deactivate-single-workflow-in-env.md) | Pause triggers (commonly during dev). |\n| [archive-workflow.md](skills/archive-workflow.md) | Retire a deployed workflow (hidden + read-only on the live instance). |\n| [unarchive-workflow.md](skills/unarchive-workflow.md) | Restore a previously-archived workflow so it accepts updates again. |\n| [deploy_all.md](skills/deploy_all.md) | Roll out an entire env in tier order. |\n| [resync.md](skills/resync.md) | Pull live state of one workflow back into its template. |\n| [resync_all.md](skills/resync_all.md) | Snapshot a full env back to templates. |\n| [dehydrate-workflow.md](skills/dehydrate-workflow.md) | Convert raw exported JSON into a template. |\n| [validate.md](skills/validate.md) | Structural REST validation before deploy. |\n| [run.md](skills/run.md) | Fire a webhook + assert terminal status. |\n| [debug.md](skills/debug.md) | Investigate a failing or missing execution — from vague symptom to root-cause with evidence. |\n| [deploy-run-assert.md](skills/deploy-run-assert.md) | One-shot validate → deploy → run verify. |\n| [find-skills.md](skills/find-skills.md) | While authoring, find applicable patterns/integrations. |\n| [manage-credentials.md](skills/manage-credentials.md) | Create or link n8n credentials (Path A from `.env.<env>` / Path B from existing UI credential). |\n| [manage-variables.md](skills/manage-variables.md) | Lifecycle for n8n Variables (`$vars.*` — non-credential runtime values, or secret fallback when `$env` is blocked). |\n| [add-cloud-function.md](skills/add-cloud-function.md) | Scaffold a Python serverless function / cloud function / serverless API under `<workspace>/cloud-functions/`. |\n| [iterate-prompt.md](skills/iterate-prompt.md) | Optimize a prompt against a paired schema + dataset using DSPy. |\n| [test.md](skills/test.md) | Run unit tests over n8n Code-node JS and / or cloud-function Python. |\n\n## Pattern skills (read-only knowledge)\n\nThese are reference docs, not action triggers. Read them while authoring.\n\n- [skills/patterns/subworkflows.md](skills/patterns/subworkflows.md)\n- [skills/patterns/error-handling.md](skills/patterns/error-handling.md)\n- [skills/patterns/credential-refs.md](skills/patterns/credential-refs.md)\n- [skills/patterns/multi-env-uuid-collision.md](skills/patterns/multi-env-uuid-collision.md)\n- [skills/patterns/validate-deploy.md](skills/patterns/validate-deploy.md)\n- [skills/patterns/code-node-discipline.md](skills/patterns/code-node-discipline.md)\n- [skills/patterns/llm-providers.md](skills/patterns/llm-providers.md)\n- [skills/patterns/locking.md](skills/patterns/locking.md)\n- [skills/patterns/queues.md](skills/patterns/queues.md)\n- [skills/patterns/pindata-hygiene.md](skills/patterns/pindata-hygiene.md)\n- [skills/patterns/position-recalculation.md](skills/patterns/position-recalculation.md)\n- [skills/patterns/prompt-and-schema-conventions.md](skills/patterns/prompt-and-schema-conventions.md)\n- [skills/patterns/agent-api-discipline.md](skills/patterns/agent-api-discipline.md)\n- [skills/patterns/investigation-discipline.md](skills/patterns/investigation-discipline.md)\n\n## Integration skills (per-service quirks)\n\n- [skills/integrations/microsoft-365/excel-and-sharepoint.md](skills/integrations/microsoft-365/excel-and-sharepoint.md)\n- [skills/integrations/gmail/sending-email.md](skills/integrations/gmail/sending-email.md)\n- [skills/integrations/redis/lock-pattern.md](skills/integrations/redis/lock-pattern.md)\n- [skills/integrations/sentry/README.md](skills/integrations/sentry/README.md)\n- [skills/integrations/datadog/README.md](skills/integrations/datadog/README.md)\n- [skills/integrations/slack/README.md](skills/integrations/slack/README.md)\n- [skills/integrations/google-drive/README.md](skills/integrations/google-drive/README.md)\n- [skills/integrations/notion/README.md](skills/integrations/notion/README.md)\n- [skills/integrations/airtable/README.md](skills/integrations/airtable/README.md)\n- [skills/integrations/webhooks/README.md](skills/integrations/webhooks/README.md)\n\n## Placeholder syntax (workflow templates)\n\nTemplates 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.\n\n| Type | Syntax | Source |\n|---|---|---|\n| `env` | `{{@env:key.path}}` | YAML config value (dot notation) |\n| `txt` | `{{@txt:relative/path.txt}}` | Text file in workspace |\n| `json` | `{{@json:relative/path.json}}` | JSON file (stringified) |\n| `html` | `{{@html:relative/path.html}}` | HTML file |\n| `js` | `{{@js:relative/path.js}}` | JavaScript file |\n| `py` | `{{@py:relative/path.py}}` | Python file (Code-node `language: python`) |\n| `uuid` | `{{@uuid:identifier}}` | Fresh UUID v4 (consistent within one hydration) |\n","tags":{"latest":"2.0.0"},"stats":{"comments":0,"downloads":500,"installsAllTime":0,"installsCurrent":0,"stars":0,"versions":3},"createdAt":1777805813106,"updatedAt":1779747410188},"latestVersion":{"version":"2.0.0","createdAt":1779747410188,"changelog":"Queue primitives and lifecycle support added + breaking change on interpolation syntax \n\n- Introduced primitives and helper scripts to support queue-based workflows (using Redis Streams).\n- Added lifecycle skills for queue creation, publishing, and consumption: `create-queue`, `add-queue-publish-to-workflow`, `add-queue-consumer-to-workflow`.\n- Added reference docs: patterns/queues and integrations/redis/queue-pattern.\n- Included primitive workflow templates for queue ack, publish, pop, sample producer/consumer, and error handler queue cleanup.\n- New lifecycle skill: `manage-variables` for n8n runtime variables.\n- Updated main skill index to list and describe new queue-related features.","license":"MIT-0"},"metadata":null,"owner":{"handle":"mwamedacen","userId":"s1796g7dypaz4std6t3senhtn5860gse","displayName":"Mo Acen","image":"https://avatars.githubusercontent.com/u/5844302?v=4"},"moderation":{"isSuspicious":false,"isMalwareBlocked":false,"verdict":"clean","reasonCodes":["review.llm_review"],"summary":"Review: review.llm_review","engineVersion":"v2.4.24","updatedAt":1779972744903}}