[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-n8n-planned-task-runtime":3,"mdc--m8u9ib-key":48,"related-org-n8n-planned-task-runtime":827,"related-repo-n8n-planned-task-runtime":978},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":20,"repoUrl":21,"updatedAt":22,"license":23,"forks":24,"topics":25,"repo":43,"sourceUrl":46,"mdContent":47},"planned-task-runtime","manage n8n task runtimes","Handles system follow-up turns: planned-task-follow-up (synthesize, replan, build-workflow, checkpoint), background-task-completed, running-tasks context, and create-tasks silence rules. Load whenever any of these tags appear or after calling create-tasks.",{"slug":8,"name":8,"logoUrl":9,"githubOrg":10},"n8n","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fn8n.png","n8n-io",[12,14,17],{"name":8,"slug":8,"type":13},"tag",{"name":15,"slug":16,"type":13},"Automation","automation",{"name":18,"slug":19,"type":13},"Workflow Automation","workflow-automation",198156,"https:\u002F\u002Fgithub.com\u002Fn8n-io\u002Fn8n","2026-06-30T07:40:45.54",null,59655,[26,27,16,28,29,30,31,32,33,34,35,36,37,38,8,39,40,41,42,19],"ai","apis","cli","data-flow","development","integration-framework","integrations","ipaas","low-code","low-code-platform","mcp","mcp-client","mcp-server","no-code","self-hosted","typescript","workflow",{"repoUrl":21,"stars":20,"forks":24,"topics":44,"description":45},[26,27,16,28,29,30,31,32,33,34,35,36,37,38,8,39,40,41,42,19],"Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.","https:\u002F\u002Fgithub.com\u002Fn8n-io\u002Fn8n\u002Ftree\u002FHEAD\u002Fpackages\u002F@n8n\u002Finstance-ai\u002Fskills\u002Fplanned-task-runtime","---\nname: planned-task-runtime\ndescription: >-\n  Handles system follow-up turns: planned-task-follow-up (synthesize, replan,\n  build-workflow, checkpoint), background-task-completed, running-tasks context,\n  and create-tasks silence rules. Load whenever any of these tags appear or\n  after calling create-tasks.\nrecommended_tools:\n  - create-tasks\n  - complete-checkpoint\n  - build-workflow\n  - task-control\n  - workflows\n  - verify-built-workflow\n  - executions\n---\n\n# Planned Task Runtime\n\nLoad this skill when the current message contains `\u003Cplanned-task-follow-up>`,\n`\u003Cbackground-task-completed>`, `\u003Crunning-tasks>`, or immediately after calling\n`create-tasks`. Before calling `create-tasks`, load it via `load_tool` if it is\nnot already visible (search \"create tasks\" if needed).\n\n## Silence after spawning tasks\n\n**After calling `create-tasks`**: do not write any text. The task card or approval card shows the\nuser what's being built or done; restating it is redundant. Do NOT summarize the\nplan, list credentials, describe what the agent will do, or add status details.\nProgress is already visible to the user in real time.\n\nWhen `create-tasks` returns after approval, tasks are already running. Do not\nsummarize or add status text — the user already approved the plan and the\nchecklist shows progress. Wait for `\u003Cplanned-task-follow-up>` to arrive; do not\ninvent synthetic follow-up turns.\n\n## Never poll\n\n**Never poll and never sleep.** Background tasks settle via\n`\u003Cplanned-task-follow-up>` turns that arrive automatically when work finishes.\nAfter you spawn or acknowledge one, end your turn. Do not call\n`workflows(action=\"list\")`, `executions(action=\"list\")`, or any shell command\nto check progress — you will receive a follow-up turn the moment the task settles.\nIf a task appears stuck, tell the user and stop; do not try to detect completion\nyourself. Do not re-dispatch a build whose task ID is already visible in\n`\u003Crunning-tasks>`.\n\nWhen `\u003Crunning-tasks>` context is present, use it only to reference active task\nIDs for cancellation or corrections.\n\nIf the user sends a correction while a build is running, call\n`task-control(action=\"correct-task\")` with the task ID and correction.\n\n## Synthesize follow-up\n\nWhen `\u003Cplanned-task-follow-up type=\"synthesize\">` is present, all planned tasks\ncompleted successfully and any unsettled runtime verification obligations have\nalready been handled. Before the final message, inspect workflow task outcomes:\nif a workflow still has `verificationReadiness.status === \"needs_setup\"`, call\n`workflows(action=\"setup\")` for that workflowId; if it has\n`verificationReadiness.status === \"not_verifiable\"`, include the readiness\nguidance as a clear warning\u002Fmanual-test note and do not call it verified. Treat\nverified workflow drafts as finished deliverables — they are ready to use. If the\noriginal user request explicitly asked to run or execute the workflow after\nbuilding it, call `executions(action=\"run\")` once for the built workflow;\ncheckpoint verification does not satisfy a user-requested run. Otherwise write a\nconcise completion message that names each delivered artifact (data tables,\nworkflows) and summarizes what it does, using the user's time zone for any\nscheduled timings. Do not hedge with phrases like \"ready to go live\" or \"let me\nknow when you're ready\" — the work is done. If any workflow is unpublished,\nstate that plainly as a one-line next-step note (\"Publish when you want it live —\nyou can do that from the workflow editor.\"), not as a gating condition. Do not\ncreate another plan.\n\n## Replan follow-up\n\nWhen `\u003Cplanned-task-follow-up type=\"replan\">` is present, a planned task failed\nand the graph is in `awaiting_replan`. You MUST take action in this same turn —\nhandle a single simple task directly (matching tool: `build-workflow`,\n`data-tables`, etc.), load `create-tasks` via `load_tool` if needed and call\n`create-tasks` with\n`planningContext.source: \"replan\"` for multiple dependent tasks, or explain the\nblocker to the user if nothing sensible remains. Do NOT reply with an\nacknowledgement or status update alone — the scheduler will not fire another\nfollow-up until you act, and the thread will silently stall.\n\nReplan routing (do not re-plan from scratch):\n\n- One simple task remains (single data-table op, credential setup, single-workflow\n  patch) → handle directly with the matching tool.\n- Multiple dependent tasks still need scheduling → load `create-tasks` via\n  `load_tool` if needed, then call `create-tasks` with\n  `planningContext.source: \"replan\"`.\n- Nothing sensible remains → explain the blocker to the user.\n\n## Build-workflow follow-up\n\nWhen `\u003Cplanned-task-follow-up type=\"build-workflow\">` is present, load the\n`workflow-builder` skill and build exactly the `buildTask` in the payload. If\n`buildTask.workflowId` is present, update that workflow; otherwise create a new\none. If `buildTask.isSupportingWorkflow === true`, pass `isSupportingWorkflow:\ntrue` to `build-workflow`; that saved supporting workflow is the task's final\ndeliverable. Save with `build-workflow` and stop after a successful save — do not\nverify, set up credentials, publish, call `complete-checkpoint`, create a new\nplan, or write a user-facing message. If `build-workflow` returns fixable\nvalidation errors, patch in the same turn and save again. If the build is\nblocked, explain the blocker briefly; the planned task finalizer will mark the\ntask failed.\n\n## Checkpoint follow-up\n\nWhen `\u003Cplanned-task-follow-up type=\"checkpoint\">` is present, the block contains\nexactly one checkpoint task (`checkpoint.id`, `checkpoint.title`,\n`checkpoint.instructions`, and `checkpoint.dependsOn` — the outcomes of prior\ntasks, including workflow build outcomes with their `outcome.workItemId` \u002F\n`outcome.workflowId`). **Always require structured verification evidence —\nnever trust builder prose.** Before completing the checkpoint, inspect each\ndependent persisted workflow with `workflows(action=\"get-as-code\", workflowId)` or\nthe bound workspace source file, and compare the actual graph to the build task\nand checkpoint goal. Build\u002Fsave\nsuccess is not proof of workflow quality. If the saved workflow is only a draft,\nlacks the requested outcome, or verification evidence is weak, patch the same\nworkflow in this checkpoint turn and re-read\u002Fre-verify it. If a dependency outcome\ncontains successful `outcome.verification` tool evidence (`attempted: true`,\n`success: true`, an `executionId`, and executed-node evidence) and your\npersisted-workflow inspection agrees the requested outcome is present, use that\nevidence without re-running verification. Otherwise execute\n`checkpoint.instructions` using your tools — typically `verify-built-workflow`\nwith the workflow ID and, when available, the work item ID from the build\noutcome. Use `fixtureOverrides` for alternate deterministic scenarios. Use\n`executions(action=\"run\")` only for a workflow that was not built through the\nworkflow loop or when the user explicitly requested a live run. If verification\nsucceeds and any verified workflow dependency outcome has\n`outcome.setupRequirement.status === \"required\"`, call\n`workflows(action=\"setup\")` with that workflowId before `complete-checkpoint`;\nthe inline setup card appears automatically in the AI Assistant panel, so do not\ntell the user to open the editor, use the canvas, or click a Setup button. If\nsetup returns `deferred: true`, respect it and still complete the checkpoint\nwith a result that says setup was deferred. Do not call\n`credentials(action=\"setup\")` or `apply-workflow-credentials` for workflow\nsetup. Then call `complete-checkpoint(taskId, status, result)` **exactly once**\nto report the outcome (`status: \"succeeded\"` on pass, `\"failed\"` on a verification\nfailure). Do not create a new plan, do not write a user-facing message — the\ncheckpoint card in the plan checklist is the user-visible surface. End your turn\nas soon as `complete-checkpoint` returns.\n\n**If your verification surfaced a bug you can patch in place** (e.g., a Code-node\nshape issue), load the `workflow-builder` skill and call `build-workflow`\ndirectly during this checkpoint turn, passing the existing `workflowId` and the\ndependency `workItemId`. Then re-verify in the same checkpoint turn. Keep the\npatch count small: if the issue cannot be narrowed within two rounds, call\n`complete-checkpoint(status=\"failed\", error=...)` with a summary of what remains\nand let replan take over.\n\n## Background task completed\n\nWhen `\u003Cbackground-task-completed>` is present, a detached background task\nfinished (for example eval setup). The `result` field holds the task's\nauthoritative summary of what was actually done. **When you write the user-facing recap, take factual details —\nmodel IDs, node names, resource IDs, parameter values — directly from this\n`result` text.** Do not substitute values from conversation history or training\npriors: if the `result` says `gpt-5.4-mini`, write `gpt-5.4-mini`, not \"GPT-4o\nmini\" or any other name you associate with the provider. The task spec describes\nintent; the `result` describes what actually happened.\n",{"data":49,"body":58},{"name":4,"description":6,"recommended_tools":50},[51,52,53,54,55,56,57],"create-tasks","complete-checkpoint","build-workflow","task-control","workflows","verify-built-workflow","executions",{"type":59,"children":60},"root",[61,69,122,129,145,164,170,209,220,233,239,283,289,352,357,403,409,489,495,711,759,765],{"type":62,"tag":63,"props":64,"children":65},"element","h1",{"id":4},[66],{"type":67,"value":68},"text","Planned Task Runtime",{"type":62,"tag":70,"props":71,"children":72},"p",{},[73,75,82,84,90,92,98,100,105,107,112,114,120],{"type":67,"value":74},"Load this skill when the current message contains ",{"type":62,"tag":76,"props":77,"children":79},"code",{"className":78},[],[80],{"type":67,"value":81},"\u003Cplanned-task-follow-up>",{"type":67,"value":83},",\n",{"type":62,"tag":76,"props":85,"children":87},{"className":86},[],[88],{"type":67,"value":89},"\u003Cbackground-task-completed>",{"type":67,"value":91},", ",{"type":62,"tag":76,"props":93,"children":95},{"className":94},[],[96],{"type":67,"value":97},"\u003Crunning-tasks>",{"type":67,"value":99},", or immediately after calling\n",{"type":62,"tag":76,"props":101,"children":103},{"className":102},[],[104],{"type":67,"value":51},{"type":67,"value":106},". Before calling ",{"type":62,"tag":76,"props":108,"children":110},{"className":109},[],[111],{"type":67,"value":51},{"type":67,"value":113},", load it via ",{"type":62,"tag":76,"props":115,"children":117},{"className":116},[],[118],{"type":67,"value":119},"load_tool",{"type":67,"value":121}," if it is\nnot already visible (search \"create tasks\" if needed).",{"type":62,"tag":123,"props":124,"children":126},"h2",{"id":125},"silence-after-spawning-tasks",[127],{"type":67,"value":128},"Silence after spawning tasks",{"type":62,"tag":70,"props":130,"children":131},{},[132,143],{"type":62,"tag":133,"props":134,"children":135},"strong",{},[136,138],{"type":67,"value":137},"After calling ",{"type":62,"tag":76,"props":139,"children":141},{"className":140},[],[142],{"type":67,"value":51},{"type":67,"value":144},": do not write any text. The task card or approval card shows the\nuser what's being built or done; restating it is redundant. Do NOT summarize the\nplan, list credentials, describe what the agent will do, or add status details.\nProgress is already visible to the user in real time.",{"type":62,"tag":70,"props":146,"children":147},{},[148,150,155,157,162],{"type":67,"value":149},"When ",{"type":62,"tag":76,"props":151,"children":153},{"className":152},[],[154],{"type":67,"value":51},{"type":67,"value":156}," returns after approval, tasks are already running. Do not\nsummarize or add status text — the user already approved the plan and the\nchecklist shows progress. Wait for ",{"type":62,"tag":76,"props":158,"children":160},{"className":159},[],[161],{"type":67,"value":81},{"type":67,"value":163}," to arrive; do not\ninvent synthetic follow-up turns.",{"type":62,"tag":123,"props":165,"children":167},{"id":166},"never-poll",[168],{"type":67,"value":169},"Never poll",{"type":62,"tag":70,"props":171,"children":172},{},[173,178,180,185,187,193,194,200,202,207],{"type":62,"tag":133,"props":174,"children":175},{},[176],{"type":67,"value":177},"Never poll and never sleep.",{"type":67,"value":179}," Background tasks settle via\n",{"type":62,"tag":76,"props":181,"children":183},{"className":182},[],[184],{"type":67,"value":81},{"type":67,"value":186}," turns that arrive automatically when work finishes.\nAfter you spawn or acknowledge one, end your turn. Do not call\n",{"type":62,"tag":76,"props":188,"children":190},{"className":189},[],[191],{"type":67,"value":192},"workflows(action=\"list\")",{"type":67,"value":91},{"type":62,"tag":76,"props":195,"children":197},{"className":196},[],[198],{"type":67,"value":199},"executions(action=\"list\")",{"type":67,"value":201},", or any shell command\nto check progress — you will receive a follow-up turn the moment the task settles.\nIf a task appears stuck, tell the user and stop; do not try to detect completion\nyourself. Do not re-dispatch a build whose task ID is already visible in\n",{"type":62,"tag":76,"props":203,"children":205},{"className":204},[],[206],{"type":67,"value":97},{"type":67,"value":208},".",{"type":62,"tag":70,"props":210,"children":211},{},[212,213,218],{"type":67,"value":149},{"type":62,"tag":76,"props":214,"children":216},{"className":215},[],[217],{"type":67,"value":97},{"type":67,"value":219}," context is present, use it only to reference active task\nIDs for cancellation or corrections.",{"type":62,"tag":70,"props":221,"children":222},{},[223,225,231],{"type":67,"value":224},"If the user sends a correction while a build is running, call\n",{"type":62,"tag":76,"props":226,"children":228},{"className":227},[],[229],{"type":67,"value":230},"task-control(action=\"correct-task\")",{"type":67,"value":232}," with the task ID and correction.",{"type":62,"tag":123,"props":234,"children":236},{"id":235},"synthesize-follow-up",[237],{"type":67,"value":238},"Synthesize follow-up",{"type":62,"tag":70,"props":240,"children":241},{},[242,243,249,251,257,259,265,267,273,275,281],{"type":67,"value":149},{"type":62,"tag":76,"props":244,"children":246},{"className":245},[],[247],{"type":67,"value":248},"\u003Cplanned-task-follow-up type=\"synthesize\">",{"type":67,"value":250}," is present, all planned tasks\ncompleted successfully and any unsettled runtime verification obligations have\nalready been handled. Before the final message, inspect workflow task outcomes:\nif a workflow still has ",{"type":62,"tag":76,"props":252,"children":254},{"className":253},[],[255],{"type":67,"value":256},"verificationReadiness.status === \"needs_setup\"",{"type":67,"value":258},", call\n",{"type":62,"tag":76,"props":260,"children":262},{"className":261},[],[263],{"type":67,"value":264},"workflows(action=\"setup\")",{"type":67,"value":266}," for that workflowId; if it has\n",{"type":62,"tag":76,"props":268,"children":270},{"className":269},[],[271],{"type":67,"value":272},"verificationReadiness.status === \"not_verifiable\"",{"type":67,"value":274},", include the readiness\nguidance as a clear warning\u002Fmanual-test note and do not call it verified. Treat\nverified workflow drafts as finished deliverables — they are ready to use. If the\noriginal user request explicitly asked to run or execute the workflow after\nbuilding it, call ",{"type":62,"tag":76,"props":276,"children":278},{"className":277},[],[279],{"type":67,"value":280},"executions(action=\"run\")",{"type":67,"value":282}," once for the built workflow;\ncheckpoint verification does not satisfy a user-requested run. Otherwise write a\nconcise completion message that names each delivered artifact (data tables,\nworkflows) and summarizes what it does, using the user's time zone for any\nscheduled timings. Do not hedge with phrases like \"ready to go live\" or \"let me\nknow when you're ready\" — the work is done. If any workflow is unpublished,\nstate that plainly as a one-line next-step note (\"Publish when you want it live —\nyou can do that from the workflow editor.\"), not as a gating condition. Do not\ncreate another plan.",{"type":62,"tag":123,"props":284,"children":286},{"id":285},"replan-follow-up",[287],{"type":67,"value":288},"Replan follow-up",{"type":62,"tag":70,"props":290,"children":291},{},[292,293,299,301,307,309,314,315,321,323,328,330,335,337,342,344,350],{"type":67,"value":149},{"type":62,"tag":76,"props":294,"children":296},{"className":295},[],[297],{"type":67,"value":298},"\u003Cplanned-task-follow-up type=\"replan\">",{"type":67,"value":300}," is present, a planned task failed\nand the graph is in ",{"type":62,"tag":76,"props":302,"children":304},{"className":303},[],[305],{"type":67,"value":306},"awaiting_replan",{"type":67,"value":308},". You MUST take action in this same turn —\nhandle a single simple task directly (matching tool: ",{"type":62,"tag":76,"props":310,"children":312},{"className":311},[],[313],{"type":67,"value":53},{"type":67,"value":83},{"type":62,"tag":76,"props":316,"children":318},{"className":317},[],[319],{"type":67,"value":320},"data-tables",{"type":67,"value":322},", etc.), load ",{"type":62,"tag":76,"props":324,"children":326},{"className":325},[],[327],{"type":67,"value":51},{"type":67,"value":329}," via ",{"type":62,"tag":76,"props":331,"children":333},{"className":332},[],[334],{"type":67,"value":119},{"type":67,"value":336}," if needed and call\n",{"type":62,"tag":76,"props":338,"children":340},{"className":339},[],[341],{"type":67,"value":51},{"type":67,"value":343}," with\n",{"type":62,"tag":76,"props":345,"children":347},{"className":346},[],[348],{"type":67,"value":349},"planningContext.source: \"replan\"",{"type":67,"value":351}," for multiple dependent tasks, or explain the\nblocker to the user if nothing sensible remains. Do NOT reply with an\nacknowledgement or status update alone — the scheduler will not fire another\nfollow-up until you act, and the thread will silently stall.",{"type":62,"tag":70,"props":353,"children":354},{},[355],{"type":67,"value":356},"Replan routing (do not re-plan from scratch):",{"type":62,"tag":358,"props":359,"children":360},"ul",{},[361,367,398],{"type":62,"tag":362,"props":363,"children":364},"li",{},[365],{"type":67,"value":366},"One simple task remains (single data-table op, credential setup, single-workflow\npatch) → handle directly with the matching tool.",{"type":62,"tag":362,"props":368,"children":369},{},[370,372,377,379,384,386,391,392,397],{"type":67,"value":371},"Multiple dependent tasks still need scheduling → load ",{"type":62,"tag":76,"props":373,"children":375},{"className":374},[],[376],{"type":67,"value":51},{"type":67,"value":378}," via\n",{"type":62,"tag":76,"props":380,"children":382},{"className":381},[],[383],{"type":67,"value":119},{"type":67,"value":385}," if needed, then call ",{"type":62,"tag":76,"props":387,"children":389},{"className":388},[],[390],{"type":67,"value":51},{"type":67,"value":343},{"type":62,"tag":76,"props":393,"children":395},{"className":394},[],[396],{"type":67,"value":349},{"type":67,"value":208},{"type":62,"tag":362,"props":399,"children":400},{},[401],{"type":67,"value":402},"Nothing sensible remains → explain the blocker to the user.",{"type":62,"tag":123,"props":404,"children":406},{"id":405},"build-workflow-follow-up",[407],{"type":67,"value":408},"Build-workflow follow-up",{"type":62,"tag":70,"props":410,"children":411},{},[412,413,419,421,427,429,435,437,443,445,451,453,459,461,466,468,473,475,480,482,487],{"type":67,"value":149},{"type":62,"tag":76,"props":414,"children":416},{"className":415},[],[417],{"type":67,"value":418},"\u003Cplanned-task-follow-up type=\"build-workflow\">",{"type":67,"value":420}," is present, load the\n",{"type":62,"tag":76,"props":422,"children":424},{"className":423},[],[425],{"type":67,"value":426},"workflow-builder",{"type":67,"value":428}," skill and build exactly the ",{"type":62,"tag":76,"props":430,"children":432},{"className":431},[],[433],{"type":67,"value":434},"buildTask",{"type":67,"value":436}," in the payload. If\n",{"type":62,"tag":76,"props":438,"children":440},{"className":439},[],[441],{"type":67,"value":442},"buildTask.workflowId",{"type":67,"value":444}," is present, update that workflow; otherwise create a new\none. If ",{"type":62,"tag":76,"props":446,"children":448},{"className":447},[],[449],{"type":67,"value":450},"buildTask.isSupportingWorkflow === true",{"type":67,"value":452},", pass ",{"type":62,"tag":76,"props":454,"children":456},{"className":455},[],[457],{"type":67,"value":458},"isSupportingWorkflow: true",{"type":67,"value":460}," to ",{"type":62,"tag":76,"props":462,"children":464},{"className":463},[],[465],{"type":67,"value":53},{"type":67,"value":467},"; that saved supporting workflow is the task's final\ndeliverable. Save with ",{"type":62,"tag":76,"props":469,"children":471},{"className":470},[],[472],{"type":67,"value":53},{"type":67,"value":474}," and stop after a successful save — do not\nverify, set up credentials, publish, call ",{"type":62,"tag":76,"props":476,"children":478},{"className":477},[],[479],{"type":67,"value":52},{"type":67,"value":481},", create a new\nplan, or write a user-facing message. If ",{"type":62,"tag":76,"props":483,"children":485},{"className":484},[],[486],{"type":67,"value":53},{"type":67,"value":488}," returns fixable\nvalidation errors, patch in the same turn and save again. If the build is\nblocked, explain the blocker briefly; the planned task finalizer will mark the\ntask failed.",{"type":62,"tag":123,"props":490,"children":492},{"id":491},"checkpoint-follow-up",[493],{"type":67,"value":494},"Checkpoint follow-up",{"type":62,"tag":70,"props":496,"children":497},{},[498,499,505,507,513,514,520,521,527,529,535,537,543,545,551,553,558,560,566,568,574,576,582,583,589,591,597,599,604,606,611,613,619,621,626,628,634,635,640,642,647,649,655,657,663,665,671,673,679,681,686,688,694,696,702,704,709],{"type":67,"value":149},{"type":62,"tag":76,"props":500,"children":502},{"className":501},[],[503],{"type":67,"value":504},"\u003Cplanned-task-follow-up type=\"checkpoint\">",{"type":67,"value":506}," is present, the block contains\nexactly one checkpoint task (",{"type":62,"tag":76,"props":508,"children":510},{"className":509},[],[511],{"type":67,"value":512},"checkpoint.id",{"type":67,"value":91},{"type":62,"tag":76,"props":515,"children":517},{"className":516},[],[518],{"type":67,"value":519},"checkpoint.title",{"type":67,"value":83},{"type":62,"tag":76,"props":522,"children":524},{"className":523},[],[525],{"type":67,"value":526},"checkpoint.instructions",{"type":67,"value":528},", and ",{"type":62,"tag":76,"props":530,"children":532},{"className":531},[],[533],{"type":67,"value":534},"checkpoint.dependsOn",{"type":67,"value":536}," — the outcomes of prior\ntasks, including workflow build outcomes with their ",{"type":62,"tag":76,"props":538,"children":540},{"className":539},[],[541],{"type":67,"value":542},"outcome.workItemId",{"type":67,"value":544}," \u002F\n",{"type":62,"tag":76,"props":546,"children":548},{"className":547},[],[549],{"type":67,"value":550},"outcome.workflowId",{"type":67,"value":552},"). ",{"type":62,"tag":133,"props":554,"children":555},{},[556],{"type":67,"value":557},"Always require structured verification evidence —\nnever trust builder prose.",{"type":67,"value":559}," Before completing the checkpoint, inspect each\ndependent persisted workflow with ",{"type":62,"tag":76,"props":561,"children":563},{"className":562},[],[564],{"type":67,"value":565},"workflows(action=\"get-as-code\", workflowId)",{"type":67,"value":567}," or\nthe bound workspace source file, and compare the actual graph to the build task\nand checkpoint goal. Build\u002Fsave\nsuccess is not proof of workflow quality. If the saved workflow is only a draft,\nlacks the requested outcome, or verification evidence is weak, patch the same\nworkflow in this checkpoint turn and re-read\u002Fre-verify it. If a dependency outcome\ncontains successful ",{"type":62,"tag":76,"props":569,"children":571},{"className":570},[],[572],{"type":67,"value":573},"outcome.verification",{"type":67,"value":575}," tool evidence (",{"type":62,"tag":76,"props":577,"children":579},{"className":578},[],[580],{"type":67,"value":581},"attempted: true",{"type":67,"value":83},{"type":62,"tag":76,"props":584,"children":586},{"className":585},[],[587],{"type":67,"value":588},"success: true",{"type":67,"value":590},", an ",{"type":62,"tag":76,"props":592,"children":594},{"className":593},[],[595],{"type":67,"value":596},"executionId",{"type":67,"value":598},", and executed-node evidence) and your\npersisted-workflow inspection agrees the requested outcome is present, use that\nevidence without re-running verification. Otherwise execute\n",{"type":62,"tag":76,"props":600,"children":602},{"className":601},[],[603],{"type":67,"value":526},{"type":67,"value":605}," using your tools — typically ",{"type":62,"tag":76,"props":607,"children":609},{"className":608},[],[610],{"type":67,"value":56},{"type":67,"value":612},"\nwith the workflow ID and, when available, the work item ID from the build\noutcome. Use ",{"type":62,"tag":76,"props":614,"children":616},{"className":615},[],[617],{"type":67,"value":618},"fixtureOverrides",{"type":67,"value":620}," for alternate deterministic scenarios. Use\n",{"type":62,"tag":76,"props":622,"children":624},{"className":623},[],[625],{"type":67,"value":280},{"type":67,"value":627}," only for a workflow that was not built through the\nworkflow loop or when the user explicitly requested a live run. If verification\nsucceeds and any verified workflow dependency outcome has\n",{"type":62,"tag":76,"props":629,"children":631},{"className":630},[],[632],{"type":67,"value":633},"outcome.setupRequirement.status === \"required\"",{"type":67,"value":258},{"type":62,"tag":76,"props":636,"children":638},{"className":637},[],[639],{"type":67,"value":264},{"type":67,"value":641}," with that workflowId before ",{"type":62,"tag":76,"props":643,"children":645},{"className":644},[],[646],{"type":67,"value":52},{"type":67,"value":648},";\nthe inline setup card appears automatically in the AI Assistant panel, so do not\ntell the user to open the editor, use the canvas, or click a Setup button. If\nsetup returns ",{"type":62,"tag":76,"props":650,"children":652},{"className":651},[],[653],{"type":67,"value":654},"deferred: true",{"type":67,"value":656},", respect it and still complete the checkpoint\nwith a result that says setup was deferred. Do not call\n",{"type":62,"tag":76,"props":658,"children":660},{"className":659},[],[661],{"type":67,"value":662},"credentials(action=\"setup\")",{"type":67,"value":664}," or ",{"type":62,"tag":76,"props":666,"children":668},{"className":667},[],[669],{"type":67,"value":670},"apply-workflow-credentials",{"type":67,"value":672}," for workflow\nsetup. Then call ",{"type":62,"tag":76,"props":674,"children":676},{"className":675},[],[677],{"type":67,"value":678},"complete-checkpoint(taskId, status, result)",{"type":67,"value":680}," ",{"type":62,"tag":133,"props":682,"children":683},{},[684],{"type":67,"value":685},"exactly once",{"type":67,"value":687},"\nto report the outcome (",{"type":62,"tag":76,"props":689,"children":691},{"className":690},[],[692],{"type":67,"value":693},"status: \"succeeded\"",{"type":67,"value":695}," on pass, ",{"type":62,"tag":76,"props":697,"children":699},{"className":698},[],[700],{"type":67,"value":701},"\"failed\"",{"type":67,"value":703}," on a verification\nfailure). Do not create a new plan, do not write a user-facing message — the\ncheckpoint card in the plan checklist is the user-visible surface. End your turn\nas soon as ",{"type":62,"tag":76,"props":705,"children":707},{"className":706},[],[708],{"type":67,"value":52},{"type":67,"value":710}," returns.",{"type":62,"tag":70,"props":712,"children":713},{},[714,719,721,726,728,733,735,741,743,749,751,757],{"type":62,"tag":133,"props":715,"children":716},{},[717],{"type":67,"value":718},"If your verification surfaced a bug you can patch in place",{"type":67,"value":720}," (e.g., a Code-node\nshape issue), load the ",{"type":62,"tag":76,"props":722,"children":724},{"className":723},[],[725],{"type":67,"value":426},{"type":67,"value":727}," skill and call ",{"type":62,"tag":76,"props":729,"children":731},{"className":730},[],[732],{"type":67,"value":53},{"type":67,"value":734},"\ndirectly during this checkpoint turn, passing the existing ",{"type":62,"tag":76,"props":736,"children":738},{"className":737},[],[739],{"type":67,"value":740},"workflowId",{"type":67,"value":742}," and the\ndependency ",{"type":62,"tag":76,"props":744,"children":746},{"className":745},[],[747],{"type":67,"value":748},"workItemId",{"type":67,"value":750},". Then re-verify in the same checkpoint turn. Keep the\npatch count small: if the issue cannot be narrowed within two rounds, call\n",{"type":62,"tag":76,"props":752,"children":754},{"className":753},[],[755],{"type":67,"value":756},"complete-checkpoint(status=\"failed\", error=...)",{"type":67,"value":758}," with a summary of what remains\nand let replan take over.",{"type":62,"tag":123,"props":760,"children":762},{"id":761},"background-task-completed",[763],{"type":67,"value":764},"Background task completed",{"type":62,"tag":70,"props":766,"children":767},{},[768,769,774,776,782,784,796,798,803,805,811,813,818,820,825],{"type":67,"value":149},{"type":62,"tag":76,"props":770,"children":772},{"className":771},[],[773],{"type":67,"value":89},{"type":67,"value":775}," is present, a detached background task\nfinished (for example eval setup). The ",{"type":62,"tag":76,"props":777,"children":779},{"className":778},[],[780],{"type":67,"value":781},"result",{"type":67,"value":783}," field holds the task's\nauthoritative summary of what was actually done. ",{"type":62,"tag":133,"props":785,"children":786},{},[787,789,794],{"type":67,"value":788},"When you write the user-facing recap, take factual details —\nmodel IDs, node names, resource IDs, parameter values — directly from this\n",{"type":62,"tag":76,"props":790,"children":792},{"className":791},[],[793],{"type":67,"value":781},{"type":67,"value":795}," text.",{"type":67,"value":797}," Do not substitute values from conversation history or training\npriors: if the ",{"type":62,"tag":76,"props":799,"children":801},{"className":800},[],[802],{"type":67,"value":781},{"type":67,"value":804}," says ",{"type":62,"tag":76,"props":806,"children":808},{"className":807},[],[809],{"type":67,"value":810},"gpt-5.4-mini",{"type":67,"value":812},", write ",{"type":62,"tag":76,"props":814,"children":816},{"className":815},[],[817],{"type":67,"value":810},{"type":67,"value":819},", not \"GPT-4o\nmini\" or any other name you associate with the provider. The task spec describes\nintent; the ",{"type":62,"tag":76,"props":821,"children":823},{"className":822},[],[824],{"type":67,"value":781},{"type":67,"value":826}," describes what actually happened.",{"items":828,"total":977},[829,844,858,872,884,897,909,926,932,944,954,963],{"slug":830,"name":830,"fn":831,"description":832,"org":833,"tags":834,"stars":20,"repoUrl":21,"updatedAt":843},"config-evals","configure workflow evaluations","Builds and maintains configuration-based evaluations on a workflow with the eval-config tool. Use when the user asks to set up, add, view, change, or remove an evaluation, score, grade, or judge a workflow's output, or measure answer quality against a test dataset. This is the only eval form Instance AI handles — it does not touch on-canvas evaluation nodes.",{"slug":8,"name":8,"logoUrl":9,"githubOrg":10},[835,838,839,842],{"name":836,"slug":837,"type":13},"Evals","evals",{"name":8,"slug":8,"type":13},{"name":840,"slug":841,"type":13},"Testing","testing",{"name":18,"slug":19,"type":13},"2026-07-24T05:37:07.398695",{"slug":845,"name":845,"fn":846,"description":847,"org":848,"tags":849,"stars":20,"repoUrl":21,"updatedAt":22},"credential-setup-with-computer-use","configure n8n credentials via browser","Guides n8n credential setup through Computer Use browser tools. Use when a user needs OAuth apps, API keys, client IDs, client secrets, or other credential values from an external service console.",{"slug":8,"name":8,"logoUrl":9,"githubOrg":10},[850,851,854,855],{"name":15,"slug":16,"type":13},{"name":852,"slug":853,"type":13},"Configuration","configuration",{"name":8,"slug":8,"type":13},{"name":856,"slug":857,"type":13},"OAuth","oauth",{"slug":859,"name":859,"fn":860,"description":861,"org":862,"tags":863,"stars":20,"repoUrl":21,"updatedAt":871},"data-table-manager","manage n8n Data Tables","Load before calling data-tables or parse-file. Use for natural standalone requests like \"what data tables do I have?\", \"show\u002Flist my tables\", or \"what columns are in this table?\", and whenever the user asks to list, show, create, inspect, import, seed, query, update, clean up, rename columns in, or delete data tables and rows, especially from CSV\u002FXLSX\u002FJSON attachments. Also load before building or planning workflows that create or write to Data Tables (then load workflow-builder before build-workflow).",{"slug":8,"name":8,"logoUrl":9,"githubOrg":10},[864,867,870],{"name":865,"slug":866,"type":13},"Data Engineering","data-engineering",{"name":868,"slug":869,"type":13},"Database","database",{"name":8,"slug":8,"type":13},"2026-07-27T06:07:14.648144",{"slug":873,"name":873,"fn":874,"description":875,"org":876,"tags":877,"stars":20,"repoUrl":21,"updatedAt":22},"debugging-executions","debug failed n8n workflow executions","Debug failed or wrong-output workflow executions using executions tools. Load when the user reports execution failures, unexpected node output, empty parameter values after a successful run, or a node showing a red or failed expression error.",{"slug":8,"name":8,"logoUrl":9,"githubOrg":10},[878,879,882,883],{"name":15,"slug":16,"type":13},{"name":880,"slug":881,"type":13},"Debugging","debugging",{"name":8,"slug":8,"type":13},{"name":18,"slug":19,"type":13},{"slug":885,"name":885,"fn":886,"description":887,"org":888,"tags":889,"stars":20,"repoUrl":21,"updatedAt":896},"intent-recognition","classify automation requests by control flow","Classifies automation requests using two decisions: anchor (which primitive owns the top-level control flow — workflow-anchored, agent-anchored, needs-clarification, or out-of-scope) and embeds_other (whether the other primitive appears embedded inside — an agent step inside a workflow, or a workflow invoked as an agent tool). Must be used before deciding the intent of any automation request, including compound requests with multiple independent automations, mid-build extensions to an existing workflow or agent, one-off questions or reports that need external systems you cannot query directly, and requests that need clarification before an anchor can be chosen, before choosing workflow-builder, planning, or an agent-oriented design.",{"slug":8,"name":8,"logoUrl":9,"githubOrg":10},[890,893,894,895],{"name":891,"slug":892,"type":13},"Agents","agents",{"name":15,"slug":16,"type":13},{"name":8,"slug":8,"type":13},{"name":18,"slug":19,"type":13},"2026-07-30T05:30:06.772347",{"slug":898,"name":898,"fn":899,"description":900,"org":901,"tags":902,"stars":20,"repoUrl":21,"updatedAt":908},"n8n-cli","manage n8n workflows from the CLI","Use the n8n CLI to manage workflows, credentials, executions, and more on an n8n instance. Use when the user asks to interact with n8n, automate workflows, manage credentials, or operate their instance from the command line.",{"slug":8,"name":8,"logoUrl":9,"githubOrg":10},[903,904,906,907],{"name":15,"slug":16,"type":13},{"name":905,"slug":28,"type":13},"CLI",{"name":8,"slug":8,"type":13},{"name":18,"slug":19,"type":13},"2026-04-06T18:38:40.360123",{"slug":910,"name":910,"fn":911,"description":912,"org":913,"tags":914,"stars":20,"repoUrl":21,"updatedAt":925},"n8n-docs-assistant","retrieve n8n documentation and guidance","Answers n8n product, setup, credential, node, hosting, API, and usage questions from current n8n docs. Load n8n-docs via load_tool before calling it (search \"n8n docs\" if not visible). Use when the user asks how to configure, set up, troubleshoot, or understand n8n behavior, especially credential setup questions opened from the credential modal.",{"slug":8,"name":8,"logoUrl":9,"githubOrg":10},[915,918,919,922],{"name":916,"slug":917,"type":13},"Documentation","documentation",{"name":8,"slug":8,"type":13},{"name":920,"slug":921,"type":13},"Reference","reference",{"name":923,"slug":924,"type":13},"Search","search","2026-07-27T06:07:15.692906",{"slug":4,"name":4,"fn":5,"description":6,"org":927,"tags":928,"stars":20,"repoUrl":21,"updatedAt":22},{"slug":8,"name":8,"logoUrl":9,"githubOrg":10},[929,930,931],{"name":15,"slug":16,"type":13},{"name":8,"slug":8,"type":13},{"name":18,"slug":19,"type":13},{"slug":933,"name":933,"fn":934,"description":935,"org":936,"tags":937,"stars":20,"repoUrl":21,"updatedAt":943},"planning","coordinate multi-artifact workflows","ONLY for coordinated multi-artifact work: multiple workflows with dependencies, shared data-table schema\u002Fmigration across tasks, or the user explicitly asked to review a plan first. Load create-tasks via load_tool before calling it (search \"create tasks\" if not visible). Do NOT use for new one-off workflows, single-workflow edits, verification-only requests, or standalone data-table ops — use workflow-builder or data-table-manager instead.",{"slug":8,"name":8,"logoUrl":9,"githubOrg":10},[938,939,940,942],{"name":15,"slug":16,"type":13},{"name":8,"slug":8,"type":13},{"name":941,"slug":933,"type":13},"Planning",{"name":18,"slug":19,"type":13},"2026-07-27T06:07:16.673218",{"slug":945,"name":945,"fn":946,"description":947,"org":948,"tags":949,"stars":20,"repoUrl":21,"updatedAt":953},"post-build-flow","verify and set up n8n workflows","Handles workflow verification and setup after build-workflow succeeds, or when the message contains workflow-verification-follow-up or workflow-setup-required. Load after direct builds, when verificationReadiness requires action, or on orchestrator verify\u002Fsetup follow-up turns.",{"slug":8,"name":8,"logoUrl":9,"githubOrg":10},[950,951,952],{"name":15,"slug":16,"type":13},{"name":8,"slug":8,"type":13},{"name":18,"slug":19,"type":13},"2026-07-24T05:37:08.421329",{"slug":426,"name":426,"fn":955,"description":956,"org":957,"tags":958,"stars":20,"repoUrl":21,"updatedAt":962},"build and edit n8n workflows","Load before calling build-workflow. Default path for all single-workflow work: new one-off workflows, existing-workflow edits, verification repairs, and workflow-local data tables. Write or edit a workspace source file, then call build-workflow with filePath. When the workflow creates or writes Data Tables, load data-table-manager first, then this skill. Do not load planning or create-tasks first. Load planning only when multiple coordinated workflows or shared cross-task data tables require a dependency-aware task graph.",{"slug":8,"name":8,"logoUrl":9,"githubOrg":10},[959,960,961],{"name":15,"slug":16,"type":13},{"name":8,"slug":8,"type":13},{"name":18,"slug":19,"type":13},"2026-07-30T05:30:07.798011",{"slug":964,"name":964,"fn":965,"description":966,"org":967,"tags":968,"stars":974,"repoUrl":975,"updatedAt":976},"n8n-agents-official","build AI agents in n8n","Use when building or editing any AI feature in n8n: AI Agents, Text Classifier, Information Extractor, Sentiment Analysis, Summarization Chain, Basic LLM Chain, embeddings, vector stores, single one-shot LLM calls, or AI media generation (image \u002F audio \u002F video) via the native LangChain provider nodes. Triggers on any `@n8n\u002Fn8n-nodes-langchain.*` node, \"agent\", \"chat assistant\", \"LLM with tools\", \"tool calling\", \"fromAi\", \"system prompt\", \"memory window\", \"structured output\", \"outputParser\", \"function calling\", \"RAG\", \"vector store\", \"embeddings\", \"classify with AI\", \"extract fields with LLM\", \"sentiment analysis\", \"summarize with LLM\", \"single LLM call\", chat triggers with files, AI image \u002F video \u002F audio generation, or any multi-turn or one-shot LLM behavior.",{"slug":8,"name":8,"logoUrl":9,"githubOrg":10},[969,970,973],{"name":891,"slug":892,"type":13},{"name":971,"slug":972,"type":13},"LLM","llm",{"name":18,"slug":19,"type":13},319,"https:\u002F\u002Fgithub.com\u002Fn8n-io\u002Fskills","2026-07-08T05:44:47.938896",25,{"items":979,"total":1028},[980,987,994,1000,1007,1014,1021],{"slug":830,"name":830,"fn":831,"description":832,"org":981,"tags":982,"stars":20,"repoUrl":21,"updatedAt":843},{"slug":8,"name":8,"logoUrl":9,"githubOrg":10},[983,984,985,986],{"name":836,"slug":837,"type":13},{"name":8,"slug":8,"type":13},{"name":840,"slug":841,"type":13},{"name":18,"slug":19,"type":13},{"slug":845,"name":845,"fn":846,"description":847,"org":988,"tags":989,"stars":20,"repoUrl":21,"updatedAt":22},{"slug":8,"name":8,"logoUrl":9,"githubOrg":10},[990,991,992,993],{"name":15,"slug":16,"type":13},{"name":852,"slug":853,"type":13},{"name":8,"slug":8,"type":13},{"name":856,"slug":857,"type":13},{"slug":859,"name":859,"fn":860,"description":861,"org":995,"tags":996,"stars":20,"repoUrl":21,"updatedAt":871},{"slug":8,"name":8,"logoUrl":9,"githubOrg":10},[997,998,999],{"name":865,"slug":866,"type":13},{"name":868,"slug":869,"type":13},{"name":8,"slug":8,"type":13},{"slug":873,"name":873,"fn":874,"description":875,"org":1001,"tags":1002,"stars":20,"repoUrl":21,"updatedAt":22},{"slug":8,"name":8,"logoUrl":9,"githubOrg":10},[1003,1004,1005,1006],{"name":15,"slug":16,"type":13},{"name":880,"slug":881,"type":13},{"name":8,"slug":8,"type":13},{"name":18,"slug":19,"type":13},{"slug":885,"name":885,"fn":886,"description":887,"org":1008,"tags":1009,"stars":20,"repoUrl":21,"updatedAt":896},{"slug":8,"name":8,"logoUrl":9,"githubOrg":10},[1010,1011,1012,1013],{"name":891,"slug":892,"type":13},{"name":15,"slug":16,"type":13},{"name":8,"slug":8,"type":13},{"name":18,"slug":19,"type":13},{"slug":898,"name":898,"fn":899,"description":900,"org":1015,"tags":1016,"stars":20,"repoUrl":21,"updatedAt":908},{"slug":8,"name":8,"logoUrl":9,"githubOrg":10},[1017,1018,1019,1020],{"name":15,"slug":16,"type":13},{"name":905,"slug":28,"type":13},{"name":8,"slug":8,"type":13},{"name":18,"slug":19,"type":13},{"slug":910,"name":910,"fn":911,"description":912,"org":1022,"tags":1023,"stars":20,"repoUrl":21,"updatedAt":925},{"slug":8,"name":8,"logoUrl":9,"githubOrg":10},[1024,1025,1026,1027],{"name":916,"slug":917,"type":13},{"name":8,"slug":8,"type":13},{"name":920,"slug":921,"type":13},{"name":923,"slug":924,"type":13},11]