@caoscompanybr/merlin 3.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (762) hide show
  1. package/.claude/CLAUDE.md +216 -0
  2. package/.claude/hooks/README-license-gate.md +45 -0
  3. package/.claude/hooks/auto-summarize.js +47 -0
  4. package/.claude/hooks/context-monitor.js +60 -0
  5. package/.claude/hooks/doc-sync.js +111 -0
  6. package/.claude/hooks/license-gate.cjs +59 -0
  7. package/.claude/hooks/session-reset.js +27 -0
  8. package/.claude/hooks/thoughts-indexer.js +80 -0
  9. package/.claude/rules/merlin-constitution.md +27 -0
  10. package/.merlin-core/commands/README.md +19 -0
  11. package/.merlin-core/commands/founder-mode.md +51 -0
  12. package/.merlin-core/commands/git/commit.md +35 -0
  13. package/.merlin-core/commands/git/describe-pr.md +43 -0
  14. package/.merlin-core/commands/git/safe-commit.md +182 -0
  15. package/.merlin-core/commands/implementation/implement-plan.md +129 -0
  16. package/.merlin-core/commands/implementation/oneshot.md +63 -0
  17. package/.merlin-core/commands/implementation/tdd.md +152 -0
  18. package/.merlin-core/commands/planning/create-plan.md +184 -0
  19. package/.merlin-core/commands/planning/iterate-plan.md +45 -0
  20. package/.merlin-core/commands/planning/validate-plan.md +48 -0
  21. package/.merlin-core/commands/research/analyze-issue.md +155 -0
  22. package/.merlin-core/commands/research/research-codebase.md +157 -0
  23. package/.merlin-core/commands/review/adversarial-review.md +112 -0
  24. package/.merlin-core/commands/review/check.md +91 -0
  25. package/.merlin-core/commands/review/debug.md +135 -0
  26. package/.merlin-core/commands/review/doubts.md +178 -0
  27. package/.merlin-core/commands/review/engineering-audit.md +87 -0
  28. package/.merlin-core/commands/review/local-review.md +48 -0
  29. package/.merlin-core/commands/review/verify-goals.md +83 -0
  30. package/.merlin-core/commands/session/capture-feedback.md +74 -0
  31. package/.merlin-core/commands/session/capture-learning.md +155 -0
  32. package/.merlin-core/commands/session/check-objectives.md +85 -0
  33. package/.merlin-core/commands/session/conclude.md +125 -0
  34. package/.merlin-core/commands/session/create-handoff.md +88 -0
  35. package/.merlin-core/commands/session/create-objective.md +111 -0
  36. package/.merlin-core/commands/session/create-process.md +105 -0
  37. package/.merlin-core/commands/session/create-reminder.md +86 -0
  38. package/.merlin-core/commands/session/fast-start.md +261 -0
  39. package/.merlin-core/commands/session/recall-learnings.md +79 -0
  40. package/.merlin-core/commands/session/recall-processes.md +74 -0
  41. package/.merlin-core/commands/session/resume-handoff.md +51 -0
  42. package/.merlin-core/commands/session/run-process.md +53 -0
  43. package/.merlin-core/commands/special/beauty.md +89 -0
  44. package/.merlin-core/commands/special/common-ground.md +114 -0
  45. package/.merlin-core/commands/special/elicit.md +98 -0
  46. package/.merlin-core/commands/special/party.md +66 -0
  47. package/.merlin-core/commands/special/scrape.md +78 -0
  48. package/.merlin-core/commands/special/skill-audit.md +128 -0
  49. package/.merlin-core/commands/special/start-here.md +132 -0
  50. package/.merlin-core/constitution.md +442 -0
  51. package/.merlin-core/core/README.md +19 -0
  52. package/.merlin-core/core/alkimia/README.md +20 -0
  53. package/.merlin-core/core/alkimia/context/context-tracker.js +209 -0
  54. package/.merlin-core/core/alkimia/domain/domain-loader.js +215 -0
  55. package/.merlin-core/core/alkimia/engine.js +284 -0
  56. package/.merlin-core/core/alkimia/layers/l0-constitution.js +47 -0
  57. package/.merlin-core/core/alkimia/layers/l1-global.js +58 -0
  58. package/.merlin-core/core/alkimia/layers/l2-agent.js +58 -0
  59. package/.merlin-core/core/alkimia/layers/l3-workflow.js +54 -0
  60. package/.merlin-core/core/alkimia/layers/l4-task.js +45 -0
  61. package/.merlin-core/core/alkimia/layers/l5-squad.js +161 -0
  62. package/.merlin-core/core/alkimia/layers/l6-skill.js +520 -0
  63. package/.merlin-core/core/alkimia/layers/l7-star-command.js +87 -0
  64. package/.merlin-core/core/alkimia/layers/layer-processor.js +78 -0
  65. package/.merlin-core/core/alkimia/mandate.js +46 -0
  66. package/.merlin-core/core/alkimia/memory/doc-sync.js +201 -0
  67. package/.merlin-core/core/alkimia/memory/document-sharder.js +272 -0
  68. package/.merlin-core/core/alkimia/memory/git-history-retriever.js +225 -0
  69. package/.merlin-core/core/alkimia/memory/memory-bridge.js +97 -0
  70. package/.merlin-core/core/alkimia/memory/session-analyzer.js +400 -0
  71. package/.merlin-core/core/alkimia/memory/thoughts-indexer.js +477 -0
  72. package/.merlin-core/core/alkimia/memory/thoughts-provider.js +603 -0
  73. package/.merlin-core/core/alkimia/output/formatter.js +464 -0
  74. package/.merlin-core/core/alkimia/security/content-sanitizer.js +140 -0
  75. package/.merlin-core/core/alkimia/skill-importer.js +440 -0
  76. package/.merlin-core/core/alkimia/squads/default/.synapse/manifest +17 -0
  77. package/.merlin-core/core/alkimia/utils/frontmatter.js +321 -0
  78. package/.merlin-core/core/alkimia/utils/tokens.js +24 -0
  79. package/.merlin-core/core/approval/README.md +16 -0
  80. package/.merlin-core/core/approval/approval-engine.js +380 -0
  81. package/.merlin-core/core/approval/channels/cli-channel.js +50 -0
  82. package/.merlin-core/core/config/README.md +17 -0
  83. package/.merlin-core/core/config/config-cache.js +182 -0
  84. package/.merlin-core/core/config/config-loader.js +279 -0
  85. package/.merlin-core/core/config/config-resolver.js +411 -0
  86. package/.merlin-core/core/config/env-interpolator.js +123 -0
  87. package/.merlin-core/core/config/merge-utils.js +102 -0
  88. package/.merlin-core/core/config/schemas/core-config.schema.json +41 -0
  89. package/.merlin-core/core/config/schemas/framework-config.schema.json +24 -0
  90. package/.merlin-core/core/config/schemas/local-config.schema.json +23 -0
  91. package/.merlin-core/core/config/schemas/project-config.schema.json +189 -0
  92. package/.merlin-core/core/docs-consistency.js +140 -0
  93. package/.merlin-core/core/events/event-bus.js +344 -0
  94. package/.merlin-core/core/events/hook-handler.js +419 -0
  95. package/.merlin-core/core/execution/README.md +17 -0
  96. package/.merlin-core/core/execution/attempt-journal.js +380 -0
  97. package/.merlin-core/core/execution/autonomous-build-loop.js +637 -0
  98. package/.merlin-core/core/execution/build-orchestrator.js +296 -0
  99. package/.merlin-core/core/execution/build-state-manager.js +196 -0
  100. package/.merlin-core/core/execution/context-injector.js +204 -0
  101. package/.merlin-core/core/execution/cron-engine.js +247 -0
  102. package/.merlin-core/core/execution/cron-expression.js +148 -0
  103. package/.merlin-core/core/execution/env-preflight.js +423 -0
  104. package/.merlin-core/core/execution/guardrail-engine.js +745 -0
  105. package/.merlin-core/core/execution/heartbeat-engine.js +198 -0
  106. package/.merlin-core/core/execution/model-router.js +282 -0
  107. package/.merlin-core/core/execution/parallel-executor.js +378 -0
  108. package/.merlin-core/core/execution/parallel-monitor.js +201 -0
  109. package/.merlin-core/core/execution/party-session.js +311 -0
  110. package/.merlin-core/core/execution/rate-limit-manager.js +152 -0
  111. package/.merlin-core/core/execution/result-aggregator.js +215 -0
  112. package/.merlin-core/core/execution/semantic-merge-engine.js +320 -0
  113. package/.merlin-core/core/execution/subagent-dispatcher.js +721 -0
  114. package/.merlin-core/core/execution/success-verifier.js +227 -0
  115. package/.merlin-core/core/execution/task-metadata.js +105 -0
  116. package/.merlin-core/core/execution/team-executor.js +195 -0
  117. package/.merlin-core/core/execution/two-tier-editor.js +290 -0
  118. package/.merlin-core/core/execution/version-snapshot.js +294 -0
  119. package/.merlin-core/core/execution/wave-executor.js +224 -0
  120. package/.merlin-core/core/health-check/health-engine.js +415 -0
  121. package/.merlin-core/core/licensing/activation.js +281 -0
  122. package/.merlin-core/core/licensing/crc.js +103 -0
  123. package/.merlin-core/core/licensing/entitlement.js +99 -0
  124. package/.merlin-core/core/licensing/fingerprint.js +104 -0
  125. package/.merlin-core/core/licensing/gate.js +133 -0
  126. package/.merlin-core/core/licensing/hmac.js +42 -0
  127. package/.merlin-core/core/licensing/key.js +144 -0
  128. package/.merlin-core/core/licensing/license.js +212 -0
  129. package/.merlin-core/core/mcp/README.md +16 -0
  130. package/.merlin-core/core/mcp/browser-capability.js +191 -0
  131. package/.merlin-core/core/mcp/capability-mapper.js +92 -0
  132. package/.merlin-core/core/mcp/mcp-connector.js +278 -0
  133. package/.merlin-core/core/mcp/mcp-registry.js +101 -0
  134. package/.merlin-core/core/orchestration/README.md +17 -0
  135. package/.merlin-core/core/orchestration/agent-invoker.js +456 -0
  136. package/.merlin-core/core/orchestration/condition-evaluator.js +250 -0
  137. package/.merlin-core/core/orchestration/decision-tree.js +192 -0
  138. package/.merlin-core/core/orchestration/executor-assignment.js +372 -0
  139. package/.merlin-core/core/orchestration/gate-evaluator.js +653 -0
  140. package/.merlin-core/core/orchestration/intent-classifier.js +579 -0
  141. package/.merlin-core/core/orchestration/lock-manager.js +308 -0
  142. package/.merlin-core/core/orchestration/master-orchestrator.js +363 -0
  143. package/.merlin-core/core/orchestration/phase-tool-masks.js +194 -0
  144. package/.merlin-core/core/orchestration/recovery-handler.js +402 -0
  145. package/.merlin-core/core/orchestration/reflect-checkpoint.js +431 -0
  146. package/.merlin-core/core/orchestration/session-state.js +430 -0
  147. package/.merlin-core/core/orchestration/skill-dispatcher.js +255 -0
  148. package/.merlin-core/core/orchestration/step-loader.js +226 -0
  149. package/.merlin-core/core/orchestration/workflow-executor.js +864 -0
  150. package/.merlin-core/core/process/executor.js +231 -0
  151. package/.merlin-core/core/process/process-file.js +50 -0
  152. package/.merlin-core/core/process/secret-scan.js +86 -0
  153. package/.merlin-core/core/process/signature.js +77 -0
  154. package/.merlin-core/core/quality-gates/README.md +17 -0
  155. package/.merlin-core/core/quality-gates/layer1-precommit.js +110 -0
  156. package/.merlin-core/core/quality-gates/layer2-pr-automation.js +116 -0
  157. package/.merlin-core/core/quality-gates/layer3-human-review.js +133 -0
  158. package/.merlin-core/core/registry/service-registry.js +140 -0
  159. package/.merlin-core/core-config.yaml +159 -0
  160. package/.merlin-core/development/README.md +17 -0
  161. package/.merlin-core/development/agents/README.md +16 -0
  162. package/.merlin-core/development/agents/analyst.md +214 -0
  163. package/.merlin-core/development/agents/architect.md +166 -0
  164. package/.merlin-core/development/agents/data-engineer.md +154 -0
  165. package/.merlin-core/development/agents/dev.md +203 -0
  166. package/.merlin-core/development/agents/devops.md +236 -0
  167. package/.merlin-core/development/agents/grimorio.md +125 -0
  168. package/.merlin-core/development/agents/merlin-master.md +173 -0
  169. package/.merlin-core/development/agents/meta.md +190 -0
  170. package/.merlin-core/development/agents/pm.md +145 -0
  171. package/.merlin-core/development/agents/po.md +172 -0
  172. package/.merlin-core/development/agents/qa.md +275 -0
  173. package/.merlin-core/development/agents/researcher.md +218 -0
  174. package/.merlin-core/development/agents/scout.md +179 -0
  175. package/.merlin-core/development/agents/sm.md +148 -0
  176. package/.merlin-core/development/agents/ux.md +169 -0
  177. package/.merlin-core/development/agents/web-researcher.md +203 -0
  178. package/.merlin-core/development/checklists/adversarial-review-checklist.md +70 -0
  179. package/.merlin-core/development/checklists/operations-ci-checklist.md +40 -0
  180. package/.merlin-core/development/checklists/operations-deploy-checklist.md +54 -0
  181. package/.merlin-core/development/checklists/operations-publish-checklist.md +47 -0
  182. package/.merlin-core/development/checklists/source-verification-checklist.md +38 -0
  183. package/.merlin-core/development/templates/HEARTBEAT-template.md +46 -0
  184. package/.merlin-core/development/templates/ears-requirements-template.md +93 -0
  185. package/.merlin-core/development/templates/handoff-template.md +50 -0
  186. package/.merlin-core/development/templates/prd-template.md +62 -0
  187. package/.merlin-core/development/templates/research-template.md +53 -0
  188. package/.merlin-core/development/templates/spec-template.md +84 -0
  189. package/.merlin-core/development/workflows/brownfield-discovery.yaml +166 -0
  190. package/.merlin-core/development/workflows/brownfield-service.yaml +52 -0
  191. package/.merlin-core/development/workflows/development-cycle.yaml +57 -0
  192. package/.merlin-core/development/workflows/epic-orchestration.yaml +47 -0
  193. package/.merlin-core/development/workflows/folloni-funnel.yaml +177 -0
  194. package/.merlin-core/development/workflows/greenfield-fullstack.yaml +167 -0
  195. package/.merlin-core/development/workflows/greenfield-service.yaml +56 -0
  196. package/.merlin-core/development/workflows/qa-loop.yaml +115 -0
  197. package/.merlin-core/development/workflows/spec-pipeline.yaml +185 -0
  198. package/.merlin-core/development/workflows/steps/folloni-01-research.yaml +35 -0
  199. package/.merlin-core/development/workflows/steps/folloni-02-architecture.yaml +41 -0
  200. package/.merlin-core/development/workflows/steps/folloni-03-implementation.yaml +52 -0
  201. package/.merlin-core/development/workflows/story-development-cycle.yaml +67 -0
  202. package/.merlin-core/docs/GUIDE.md +413 -0
  203. package/.merlin-core/docs/merlin-commands-guide-pt.md +183 -0
  204. package/.merlin-core/framework-config.yaml +148 -0
  205. package/.merlin-core/hooks/README.md +16 -0
  206. package/.merlin-core/hooks/precompact-memory-flush.js +69 -0
  207. package/.merlin-core/hooks/pretooluse-remote-approve.js +113 -0
  208. package/.merlin-core/hooks/spikes/spike-b-hook.js +70 -0
  209. package/.merlin-core/hooks/spikes/spike-b-stub.js +70 -0
  210. package/.merlin-core/index.js +91 -0
  211. package/.merlin-core/local-config.yaml.template +31 -0
  212. package/.merlin-core/mcp-servers/lsp-bridge/index.js +397 -0
  213. package/.merlin-core/modules/scraping/module.json +23 -0
  214. package/.merlin-core/project-config.yaml +89 -0
  215. package/.merlin-core/schemas/README.md +18 -0
  216. package/.merlin-core/schemas/agent-hook-schema.json +152 -0
  217. package/.merlin-core/schemas/agent-schema.json +31 -0
  218. package/.merlin-core/schemas/command-schema.json +18 -0
  219. package/.merlin-core/schemas/feedback-schema.json +36 -0
  220. package/.merlin-core/schemas/handoff-schema.json +19 -0
  221. package/.merlin-core/schemas/learning-schema.json +51 -0
  222. package/.merlin-core/schemas/module.schema.json +124 -0
  223. package/.merlin-core/schemas/must-haves-schema.json +95 -0
  224. package/.merlin-core/schemas/objective-schema.json +23 -0
  225. package/.merlin-core/schemas/plan-schema.json +20 -0
  226. package/.merlin-core/schemas/process-schema.json +82 -0
  227. package/.merlin-core/schemas/reminder-schema.json +20 -0
  228. package/.merlin-core/schemas/skill-eval-schema.json +92 -0
  229. package/.merlin-core/schemas/skill-schema.json +77 -0
  230. package/.merlin-core/schemas/workflow-schema.json +38 -0
  231. package/.merlin-core/skills/README.md +16 -0
  232. package/.merlin-core/skills/domain/azure-cloud/SKILL.md +211 -0
  233. package/.merlin-core/skills/domain/azure-cloud/references/appinsights-instrumentation.md +63 -0
  234. package/.merlin-core/skills/domain/azure-cloud/references/azure-compliance.md +99 -0
  235. package/.merlin-core/skills/domain/azure-cloud/references/azure-cost-optimization.md +419 -0
  236. package/.merlin-core/skills/domain/azure-cloud/references/azure-deploy.md +82 -0
  237. package/.merlin-core/skills/domain/azure-cloud/references/azure-diagnostics.md +130 -0
  238. package/.merlin-core/skills/domain/azure-cloud/references/azure-prepare.md +134 -0
  239. package/.merlin-core/skills/domain/azure-cloud/references/azure-quotas.md +290 -0
  240. package/.merlin-core/skills/domain/azure-cloud/references/azure-rbac.md +11 -0
  241. package/.merlin-core/skills/domain/azure-cloud/references/azure-resource-lookup.md +97 -0
  242. package/.merlin-core/skills/domain/azure-cloud/references/azure-resource-visualizer.md +178 -0
  243. package/.merlin-core/skills/domain/azure-cloud/references/azure-storage.md +91 -0
  244. package/.merlin-core/skills/domain/azure-cloud/references/azure-validate.md +58 -0
  245. package/.merlin-core/skills/domain/azure-cloud/references/entra-app-registration.md +192 -0
  246. package/.merlin-core/skills/domain/browser-automation/SKILL.md +311 -0
  247. package/.merlin-core/skills/domain/browser-automation/references/agent-browser-skill.md +632 -0
  248. package/.merlin-core/skills/domain/browser-automation/references/authentication.md +308 -0
  249. package/.merlin-core/skills/domain/browser-automation/references/commands.md +266 -0
  250. package/.merlin-core/skills/domain/browser-automation/references/profiling.md +120 -0
  251. package/.merlin-core/skills/domain/browser-automation/references/proxy-support.md +194 -0
  252. package/.merlin-core/skills/domain/browser-automation/references/session-management.md +194 -0
  253. package/.merlin-core/skills/domain/browser-automation/references/snapshot-refs.md +196 -0
  254. package/.merlin-core/skills/domain/browser-automation/references/video-recording.md +173 -0
  255. package/.merlin-core/skills/domain/browser-automation/templates/authenticated-session.sh +105 -0
  256. package/.merlin-core/skills/domain/browser-automation/templates/capture-workflow.sh +69 -0
  257. package/.merlin-core/skills/domain/browser-automation/templates/form-automation.sh +62 -0
  258. package/.merlin-core/skills/domain/digital-marketing/SKILL.md +292 -0
  259. package/.merlin-core/skills/domain/digital-marketing/references/content-strategy.md +320 -0
  260. package/.merlin-core/skills/domain/digital-marketing/references/copy-formats.md +298 -0
  261. package/.merlin-core/skills/domain/digital-marketing/references/copy-methodology.md +180 -0
  262. package/.merlin-core/skills/domain/digital-marketing/references/email-sequences.md +135 -0
  263. package/.merlin-core/skills/domain/digital-marketing/references/launch-strategy.md +213 -0
  264. package/.merlin-core/skills/domain/digital-marketing/references/pricing-strategy.md +160 -0
  265. package/.merlin-core/skills/domain/digital-marketing/references/programmatic-seo.md +237 -0
  266. package/.merlin-core/skills/domain/digital-marketing/references/revops-lifecycle.md +170 -0
  267. package/.merlin-core/skills/domain/digital-marketing/references/revops-operations.md +167 -0
  268. package/.merlin-core/skills/domain/digital-marketing/references/schema-markup.md +190 -0
  269. package/.merlin-core/skills/domain/digital-marketing/references/strategy-frameworks.md +324 -0
  270. package/.merlin-core/skills/domain/digital-marketing/references/traffic-management.md +350 -0
  271. package/.merlin-core/skills/domain/expo-native-ui/SKILL.md +348 -0
  272. package/.merlin-core/skills/domain/expo-native-ui/references/animations.md +220 -0
  273. package/.merlin-core/skills/domain/expo-native-ui/references/api-routes.md +361 -0
  274. package/.merlin-core/skills/domain/expo-native-ui/references/cicd-workflows.md +84 -0
  275. package/.merlin-core/skills/domain/expo-native-ui/references/controls.md +266 -0
  276. package/.merlin-core/skills/domain/expo-native-ui/references/data-fetching.md +553 -0
  277. package/.merlin-core/skills/domain/expo-native-ui/references/deployment-stores.md +1353 -0
  278. package/.merlin-core/skills/domain/expo-native-ui/references/deployment.md +183 -0
  279. package/.merlin-core/skills/domain/expo-native-ui/references/dev-client.md +166 -0
  280. package/.merlin-core/skills/domain/expo-native-ui/references/dom-components.md +410 -0
  281. package/.merlin-core/skills/domain/expo-native-ui/references/form-sheet.md +253 -0
  282. package/.merlin-core/skills/domain/expo-native-ui/references/gradients.md +117 -0
  283. package/.merlin-core/skills/domain/expo-native-ui/references/icons.md +218 -0
  284. package/.merlin-core/skills/domain/expo-native-ui/references/media.md +245 -0
  285. package/.merlin-core/skills/domain/expo-native-ui/references/platform-native.md +75 -0
  286. package/.merlin-core/skills/domain/expo-native-ui/references/route-structure.md +229 -0
  287. package/.merlin-core/skills/domain/expo-native-ui/references/search.md +249 -0
  288. package/.merlin-core/skills/domain/expo-native-ui/references/storage.md +121 -0
  289. package/.merlin-core/skills/domain/expo-native-ui/references/tabs.md +433 -0
  290. package/.merlin-core/skills/domain/expo-native-ui/references/tailwind-native.md +473 -0
  291. package/.merlin-core/skills/domain/expo-native-ui/references/toolbar-and-headers.md +284 -0
  292. package/.merlin-core/skills/domain/expo-native-ui/references/upgrading-guides.md +674 -0
  293. package/.merlin-core/skills/domain/expo-native-ui/references/upgrading.md +127 -0
  294. package/.merlin-core/skills/domain/expo-native-ui/references/visual-effects.md +199 -0
  295. package/.merlin-core/skills/domain/expo-native-ui/references/webgpu-three.md +605 -0
  296. package/.merlin-core/skills/domain/expo-native-ui/references/zoom-transitions.md +161 -0
  297. package/.merlin-core/skills/domain/marketing-ops/SKILL.md +117 -0
  298. package/.merlin-core/skills/domain/marketing-ops/references/_index.md +78 -0
  299. package/.merlin-core/skills/domain/marketing-ops/references/acquire/ad-creative/references/generative-tools.md +19 -0
  300. package/.merlin-core/skills/domain/marketing-ops/references/acquire/ad-creative/references/platform-specs.md +19 -0
  301. package/.merlin-core/skills/domain/marketing-ops/references/acquire/ad-creative.md +251 -0
  302. package/.merlin-core/skills/domain/marketing-ops/references/acquire/ads/references/ad-copy-templates.md +19 -0
  303. package/.merlin-core/skills/domain/marketing-ops/references/acquire/ads/references/audience-targeting.md +19 -0
  304. package/.merlin-core/skills/domain/marketing-ops/references/acquire/ads/references/conversion-tracking.md +19 -0
  305. package/.merlin-core/skills/domain/marketing-ops/references/acquire/ads/references/platform-setup-checklists.md +19 -0
  306. package/.merlin-core/skills/domain/marketing-ops/references/acquire/ads.md +322 -0
  307. package/.merlin-core/skills/domain/marketing-ops/references/acquire/ai-seo/references/content-patterns.md +19 -0
  308. package/.merlin-core/skills/domain/marketing-ops/references/acquire/ai-seo/references/content-types.md +19 -0
  309. package/.merlin-core/skills/domain/marketing-ops/references/acquire/ai-seo/references/platform-ranking-factors.md +19 -0
  310. package/.merlin-core/skills/domain/marketing-ops/references/acquire/ai-seo.md +388 -0
  311. package/.merlin-core/skills/domain/marketing-ops/references/acquire/aso/references/apple-specs.md +19 -0
  312. package/.merlin-core/skills/domain/marketing-ops/references/acquire/aso/references/benchmarks.md +19 -0
  313. package/.merlin-core/skills/domain/marketing-ops/references/acquire/aso/references/google-play-specs.md +19 -0
  314. package/.merlin-core/skills/domain/marketing-ops/references/acquire/aso/references/report-template.md +19 -0
  315. package/.merlin-core/skills/domain/marketing-ops/references/acquire/aso/references/scoring-criteria.md +19 -0
  316. package/.merlin-core/skills/domain/marketing-ops/references/acquire/aso.md +316 -0
  317. package/.merlin-core/skills/domain/marketing-ops/references/acquire/co-marketing.md +305 -0
  318. package/.merlin-core/skills/domain/marketing-ops/references/acquire/community-marketing.md +169 -0
  319. package/.merlin-core/skills/domain/marketing-ops/references/acquire/competitor-profiling/references/templates.md +19 -0
  320. package/.merlin-core/skills/domain/marketing-ops/references/acquire/competitor-profiling/references/tool-reference.md +19 -0
  321. package/.merlin-core/skills/domain/marketing-ops/references/acquire/competitor-profiling.md +442 -0
  322. package/.merlin-core/skills/domain/marketing-ops/references/acquire/competitors/references/content-architecture.md +19 -0
  323. package/.merlin-core/skills/domain/marketing-ops/references/acquire/competitors/references/templates.md +19 -0
  324. package/.merlin-core/skills/domain/marketing-ops/references/acquire/competitors.md +281 -0
  325. package/.merlin-core/skills/domain/marketing-ops/references/acquire/content-strategy.md +16 -0
  326. package/.merlin-core/skills/domain/marketing-ops/references/acquire/directory-submissions/references/directory-list.md +19 -0
  327. package/.merlin-core/skills/domain/marketing-ops/references/acquire/directory-submissions/references/positioning-variations.md +19 -0
  328. package/.merlin-core/skills/domain/marketing-ops/references/acquire/directory-submissions/references/submission-tracker-template.md +19 -0
  329. package/.merlin-core/skills/domain/marketing-ops/references/acquire/directory-submissions.md +396 -0
  330. package/.merlin-core/skills/domain/marketing-ops/references/acquire/free-tools/references/tool-types.md +19 -0
  331. package/.merlin-core/skills/domain/marketing-ops/references/acquire/free-tools.md +196 -0
  332. package/.merlin-core/skills/domain/marketing-ops/references/acquire/image/references/ai-image-prompting.md +19 -0
  333. package/.merlin-core/skills/domain/marketing-ops/references/acquire/image.md +352 -0
  334. package/.merlin-core/skills/domain/marketing-ops/references/acquire/launch.md +18 -0
  335. package/.merlin-core/skills/domain/marketing-ops/references/acquire/lead-magnets/references/benchmarks.md +19 -0
  336. package/.merlin-core/skills/domain/marketing-ops/references/acquire/lead-magnets/references/format-guide.md +19 -0
  337. package/.merlin-core/skills/domain/marketing-ops/references/acquire/lead-magnets.md +333 -0
  338. package/.merlin-core/skills/domain/marketing-ops/references/acquire/programmatic-seo.md +16 -0
  339. package/.merlin-core/skills/domain/marketing-ops/references/acquire/schema.md +16 -0
  340. package/.merlin-core/skills/domain/marketing-ops/references/acquire/seo-audit/references/ai-writing-detection.md +19 -0
  341. package/.merlin-core/skills/domain/marketing-ops/references/acquire/seo-audit/references/international-seo.md +19 -0
  342. package/.merlin-core/skills/domain/marketing-ops/references/acquire/seo-audit.md +546 -0
  343. package/.merlin-core/skills/domain/marketing-ops/references/acquire/site-architecture/references/mermaid-templates.md +19 -0
  344. package/.merlin-core/skills/domain/marketing-ops/references/acquire/site-architecture/references/navigation-patterns.md +19 -0
  345. package/.merlin-core/skills/domain/marketing-ops/references/acquire/site-architecture/references/site-type-templates.md +19 -0
  346. package/.merlin-core/skills/domain/marketing-ops/references/acquire/site-architecture.md +371 -0
  347. package/.merlin-core/skills/domain/marketing-ops/references/acquire/social/references/platform-limits.md +19 -0
  348. package/.merlin-core/skills/domain/marketing-ops/references/acquire/social/references/platforms.md +19 -0
  349. package/.merlin-core/skills/domain/marketing-ops/references/acquire/social/references/post-templates.md +19 -0
  350. package/.merlin-core/skills/domain/marketing-ops/references/acquire/social/references/reverse-engineering.md +19 -0
  351. package/.merlin-core/skills/domain/marketing-ops/references/acquire/social/references/short-form-video.md +19 -0
  352. package/.merlin-core/skills/domain/marketing-ops/references/acquire/social.md +431 -0
  353. package/.merlin-core/skills/domain/marketing-ops/references/acquire/video/references/ai-video-prompting.md +19 -0
  354. package/.merlin-core/skills/domain/marketing-ops/references/acquire/video.md +353 -0
  355. package/.merlin-core/skills/domain/marketing-ops/references/activate/ab-testing/references/sample-size-guide.md +19 -0
  356. package/.merlin-core/skills/domain/marketing-ops/references/activate/ab-testing/references/test-templates.md +19 -0
  357. package/.merlin-core/skills/domain/marketing-ops/references/activate/ab-testing.md +379 -0
  358. package/.merlin-core/skills/domain/marketing-ops/references/activate/analytics/references/event-library.md +19 -0
  359. package/.merlin-core/skills/domain/marketing-ops/references/activate/analytics/references/ga4-implementation.md +19 -0
  360. package/.merlin-core/skills/domain/marketing-ops/references/activate/analytics/references/gtm-implementation.md +19 -0
  361. package/.merlin-core/skills/domain/marketing-ops/references/activate/analytics.md +323 -0
  362. package/.merlin-core/skills/domain/marketing-ops/references/activate/copy-editing.md +18 -0
  363. package/.merlin-core/skills/domain/marketing-ops/references/activate/copywriting.md +18 -0
  364. package/.merlin-core/skills/domain/marketing-ops/references/activate/cro/references/experiments.md +19 -0
  365. package/.merlin-core/skills/domain/marketing-ops/references/activate/cro/references/form.md +19 -0
  366. package/.merlin-core/skills/domain/marketing-ops/references/activate/cro.md +211 -0
  367. package/.merlin-core/skills/domain/marketing-ops/references/activate/emails.md +18 -0
  368. package/.merlin-core/skills/domain/marketing-ops/references/activate/paywalls/references/experiments.md +19 -0
  369. package/.merlin-core/skills/domain/marketing-ops/references/activate/paywalls.md +255 -0
  370. package/.merlin-core/skills/domain/marketing-ops/references/activate/popups.md +518 -0
  371. package/.merlin-core/skills/domain/marketing-ops/references/activate/pricing.md +18 -0
  372. package/.merlin-core/skills/domain/marketing-ops/references/activate/sales-enablement/references/deck-frameworks.md +19 -0
  373. package/.merlin-core/skills/domain/marketing-ops/references/activate/sales-enablement/references/demo-scripts.md +19 -0
  374. package/.merlin-core/skills/domain/marketing-ops/references/activate/sales-enablement/references/objection-library.md +19 -0
  375. package/.merlin-core/skills/domain/marketing-ops/references/activate/sales-enablement/references/one-pager-templates.md +19 -0
  376. package/.merlin-core/skills/domain/marketing-ops/references/activate/sales-enablement.md +371 -0
  377. package/.merlin-core/skills/domain/marketing-ops/references/activate/signup.md +406 -0
  378. package/.merlin-core/skills/domain/marketing-ops/references/expand/co-marketing.md +18 -0
  379. package/.merlin-core/skills/domain/marketing-ops/references/expand/community-marketing.md +18 -0
  380. package/.merlin-core/skills/domain/marketing-ops/references/expand/referrals/references/affiliate-programs.md +19 -0
  381. package/.merlin-core/skills/domain/marketing-ops/references/expand/referrals/references/program-examples.md +19 -0
  382. package/.merlin-core/skills/domain/marketing-ops/references/expand/referrals.md +278 -0
  383. package/.merlin-core/skills/domain/marketing-ops/references/foundation/customer-research/references/source-guides.md +425 -0
  384. package/.merlin-core/skills/domain/marketing-ops/references/foundation/customer-research.md +284 -0
  385. package/.merlin-core/skills/domain/marketing-ops/references/foundation/marketing-ideas/references/ideas-by-category.md +216 -0
  386. package/.merlin-core/skills/domain/marketing-ops/references/foundation/marketing-ideas.md +188 -0
  387. package/.merlin-core/skills/domain/marketing-ops/references/foundation/marketing-psychology.md +532 -0
  388. package/.merlin-core/skills/domain/marketing-ops/references/foundation/product-marketing.md +276 -0
  389. package/.merlin-core/skills/domain/marketing-ops/references/retain/churn-prevention/references/cancel-flow-patterns.md +19 -0
  390. package/.merlin-core/skills/domain/marketing-ops/references/retain/churn-prevention/references/dunning-playbook.md +19 -0
  391. package/.merlin-core/skills/domain/marketing-ops/references/retain/churn-prevention.md +442 -0
  392. package/.merlin-core/skills/domain/marketing-ops/references/retain/onboarding/references/experiments.md +19 -0
  393. package/.merlin-core/skills/domain/marketing-ops/references/retain/onboarding.md +243 -0
  394. package/.merlin-core/skills/domain/marketing-ops/references/retain/revops-lifecycle.md +18 -0
  395. package/.merlin-core/skills/domain/marketing-ops/references/retain/revops-operations.md +18 -0
  396. package/.merlin-core/skills/domain/n8n-automation/SKILL.md +149 -0
  397. package/.merlin-core/skills/domain/n8n-automation/references/code-javascript.md +3744 -0
  398. package/.merlin-core/skills/domain/n8n-automation/references/code-python.md +3293 -0
  399. package/.merlin-core/skills/domain/n8n-automation/references/expression-syntax.md +1662 -0
  400. package/.merlin-core/skills/domain/n8n-automation/references/mcp-tools-expert.md +2111 -0
  401. package/.merlin-core/skills/domain/n8n-automation/references/node-configuration.md +2523 -0
  402. package/.merlin-core/skills/domain/n8n-automation/references/validation-expert.md +2491 -0
  403. package/.merlin-core/skills/domain/n8n-automation/references/workflow-patterns.md +4624 -0
  404. package/.merlin-core/skills/domain/ops-manual/SKILL.md +225 -0
  405. package/.merlin-core/skills/domain/ops-manual/references/elicitation-questions.md +141 -0
  406. package/.merlin-core/skills/domain/ops-manual/references/external-skills-registry.md +63 -0
  407. package/.merlin-core/skills/domain/ops-manual/references/operations-template.yaml +132 -0
  408. package/.merlin-core/skills/domain/remotion-best-practices/SKILL.md +99 -0
  409. package/.merlin-core/skills/domain/remotion-best-practices/rules/3d.md +86 -0
  410. package/.merlin-core/skills/domain/remotion-best-practices/rules/animations.md +27 -0
  411. package/.merlin-core/skills/domain/remotion-best-practices/rules/assets/charts-bar-chart.tsx +173 -0
  412. package/.merlin-core/skills/domain/remotion-best-practices/rules/assets/text-animations-typewriter.tsx +100 -0
  413. package/.merlin-core/skills/domain/remotion-best-practices/rules/assets/text-animations-word-highlight.tsx +108 -0
  414. package/.merlin-core/skills/domain/remotion-best-practices/rules/assets.md +78 -0
  415. package/.merlin-core/skills/domain/remotion-best-practices/rules/audio.md +172 -0
  416. package/.merlin-core/skills/domain/remotion-best-practices/rules/calculate-metadata.md +131 -0
  417. package/.merlin-core/skills/domain/remotion-best-practices/rules/can-decode.md +75 -0
  418. package/.merlin-core/skills/domain/remotion-best-practices/rules/charts.md +68 -0
  419. package/.merlin-core/skills/domain/remotion-best-practices/rules/compositions.md +154 -0
  420. package/.merlin-core/skills/domain/remotion-best-practices/rules/display-captions.md +126 -0
  421. package/.merlin-core/skills/domain/remotion-best-practices/rules/extract-frames.md +229 -0
  422. package/.merlin-core/skills/domain/remotion-best-practices/rules/fonts.md +152 -0
  423. package/.merlin-core/skills/domain/remotion-best-practices/rules/get-audio-duration.md +58 -0
  424. package/.merlin-core/skills/domain/remotion-best-practices/rules/get-video-dimensions.md +68 -0
  425. package/.merlin-core/skills/domain/remotion-best-practices/rules/get-video-duration.md +58 -0
  426. package/.merlin-core/skills/domain/remotion-best-practices/rules/gifs.md +144 -0
  427. package/.merlin-core/skills/domain/remotion-best-practices/rules/images.md +134 -0
  428. package/.merlin-core/skills/domain/remotion-best-practices/rules/import-srt-captions.md +67 -0
  429. package/.merlin-core/skills/domain/remotion-best-practices/rules/lottie.md +70 -0
  430. package/.merlin-core/skills/domain/remotion-best-practices/rules/maps.md +414 -0
  431. package/.merlin-core/skills/domain/remotion-best-practices/rules/measuring-dom-nodes.md +34 -0
  432. package/.merlin-core/skills/domain/remotion-best-practices/rules/measuring-text.md +143 -0
  433. package/.merlin-core/skills/domain/remotion-best-practices/rules/parameters.md +109 -0
  434. package/.merlin-core/skills/domain/remotion-best-practices/rules/sequencing.md +118 -0
  435. package/.merlin-core/skills/domain/remotion-best-practices/rules/tailwind.md +11 -0
  436. package/.merlin-core/skills/domain/remotion-best-practices/rules/text-animations.md +20 -0
  437. package/.merlin-core/skills/domain/remotion-best-practices/rules/timing.md +179 -0
  438. package/.merlin-core/skills/domain/remotion-best-practices/rules/transcribe-captions.md +19 -0
  439. package/.merlin-core/skills/domain/remotion-best-practices/rules/transitions.md +137 -0
  440. package/.merlin-core/skills/domain/remotion-best-practices/rules/transparent-videos.md +106 -0
  441. package/.merlin-core/skills/domain/remotion-best-practices/rules/trimming.md +51 -0
  442. package/.merlin-core/skills/domain/remotion-best-practices/rules/videos.md +171 -0
  443. package/.merlin-core/skills/domain/resend-email/SKILL.md +377 -0
  444. package/.merlin-core/skills/general/adversarial-review/SKILL.md +144 -0
  445. package/.merlin-core/skills/general/api-design/SKILL.md +513 -0
  446. package/.merlin-core/skills/general/apify-scrape/SKILL.md +137 -0
  447. package/.merlin-core/skills/general/apify-scrape/scripts/apify-scrape.sh +68 -0
  448. package/.merlin-core/skills/general/backup/SKILL.md +87 -0
  449. package/.merlin-core/skills/general/blkskrn/SKILL.md +392 -0
  450. package/.merlin-core/skills/general/blkskrn/references/animation-patterns.md +521 -0
  451. package/.merlin-core/skills/general/blkskrn/references/design-system.md +637 -0
  452. package/.merlin-core/skills/general/blkskrn/references/html-templates.md +440 -0
  453. package/.merlin-core/skills/general/blkskrn/references/presenter-template.md +45 -0
  454. package/.merlin-core/skills/general/blkskrn/references/slide-types.md +424 -0
  455. package/.merlin-core/skills/general/blkskrn/scripts/canvas-manager.js +502 -0
  456. package/.merlin-core/skills/general/blkskrn/scripts/presenter.js +90 -0
  457. package/.merlin-core/skills/general/blkskrn/templates/presenter.html +273 -0
  458. package/.merlin-core/skills/general/blkskrn/templates/slide-base.html +277 -0
  459. package/.merlin-core/skills/general/blkskrn/templates/viewer.html +165 -0
  460. package/.merlin-core/skills/general/browser-takeover/SKILL.md +53 -0
  461. package/.merlin-core/skills/general/claude-api/SKILL.md +90 -0
  462. package/.merlin-core/skills/general/code-javascript/SKILL.md +268 -0
  463. package/.merlin-core/skills/general/code-python/SKILL.md +424 -0
  464. package/.merlin-core/skills/general/code-style/SKILL.md +97 -0
  465. package/.merlin-core/skills/general/code-typescript/SKILL.md +361 -0
  466. package/.merlin-core/skills/general/cold-email/SKILL.md +164 -0
  467. package/.merlin-core/skills/general/cold-email/references/benchmarks.md +18 -0
  468. package/.merlin-core/skills/general/cold-email/references/follow-up-sequences.md +18 -0
  469. package/.merlin-core/skills/general/cold-email/references/frameworks.md +18 -0
  470. package/.merlin-core/skills/general/cold-email/references/personalization.md +18 -0
  471. package/.merlin-core/skills/general/cold-email/references/subject-lines.md +18 -0
  472. package/.merlin-core/skills/general/container-security/SKILL.md +462 -0
  473. package/.merlin-core/skills/general/context-management/SKILL.md +79 -0
  474. package/.merlin-core/skills/general/copy-editing/SKILL.md +501 -0
  475. package/.merlin-core/skills/general/copy-editing/references/checklist.md +18 -0
  476. package/.merlin-core/skills/general/copy-editing/references/content-refresh.md +18 -0
  477. package/.merlin-core/skills/general/copy-editing/references/plain-english-alternatives.md +18 -0
  478. package/.merlin-core/skills/general/copywriting/SKILL.md +294 -0
  479. package/.merlin-core/skills/general/copywriting/references/copy-frameworks.md +392 -0
  480. package/.merlin-core/skills/general/copywriting/references/natural-transitions.md +276 -0
  481. package/.merlin-core/skills/general/database/SKILL.md +561 -0
  482. package/.merlin-core/skills/general/database/references/postgres-concurrency.md +182 -0
  483. package/.merlin-core/skills/general/database/references/postgres-connections.md +97 -0
  484. package/.merlin-core/skills/general/database/references/postgres-data-patterns.md +159 -0
  485. package/.merlin-core/skills/general/database/references/postgres-monitoring.md +136 -0
  486. package/.merlin-core/skills/general/database/references/postgres-rls.md +140 -0
  487. package/.merlin-core/skills/general/database-provision/SKILL.md +56 -0
  488. package/.merlin-core/skills/general/deploy/SKILL.md +65 -0
  489. package/.merlin-core/skills/general/design-inspiration/SKILL.md +146 -0
  490. package/.merlin-core/skills/general/design-palette/SKILL.md +99 -0
  491. package/.merlin-core/skills/general/design-palette/references/full-palettes.md +144 -0
  492. package/.merlin-core/skills/general/design-system/SKILL.md +94 -0
  493. package/.merlin-core/skills/general/design-typography/SKILL.md +115 -0
  494. package/.merlin-core/skills/general/design-typography/references/full-pairings.md +144 -0
  495. package/.merlin-core/skills/general/design-ux-patterns/SKILL.md +155 -0
  496. package/.merlin-core/skills/general/design-ux-patterns/references/charts-data-guidelines.md +197 -0
  497. package/.merlin-core/skills/general/design-ux-patterns/references/landing-patterns.md +199 -0
  498. package/.merlin-core/skills/general/design-ux-patterns/references/professional-ui-checklist.md +56 -0
  499. package/.merlin-core/skills/general/design-ux-patterns/references/style-catalog.md +89 -0
  500. package/.merlin-core/skills/general/design-ux-patterns/references/ux-guidelines.md +837 -0
  501. package/.merlin-core/skills/general/discover-cloud/SKILL.md +108 -0
  502. package/.merlin-core/skills/general/doc-sync/SKILL.md +52 -0
  503. package/.merlin-core/skills/general/document-sharding/SKILL.md +53 -0
  504. package/.merlin-core/skills/general/docx/SKILL.md +418 -0
  505. package/.merlin-core/skills/general/docx/references/windows-setup.md +27 -0
  506. package/.merlin-core/skills/general/docx/scripts/__init__.py +1 -0
  507. package/.merlin-core/skills/general/docx/scripts/accept_changes.py +135 -0
  508. package/.merlin-core/skills/general/docx/scripts/comment.py +318 -0
  509. package/.merlin-core/skills/general/docx/scripts/office/__init__.py +0 -0
  510. package/.merlin-core/skills/general/docx/scripts/office/helpers/__init__.py +0 -0
  511. package/.merlin-core/skills/general/docx/scripts/office/helpers/merge_runs.py +199 -0
  512. package/.merlin-core/skills/general/docx/scripts/office/helpers/simplify_redlines.py +197 -0
  513. package/.merlin-core/skills/general/docx/scripts/office/pack.py +159 -0
  514. package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
  515. package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
  516. package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
  517. package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
  518. package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
  519. package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
  520. package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
  521. package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
  522. package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
  523. package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
  524. package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
  525. package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
  526. package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
  527. package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
  528. package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
  529. package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
  530. package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
  531. package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
  532. package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
  533. package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
  534. package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
  535. package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
  536. package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
  537. package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
  538. package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
  539. package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
  540. package/.merlin-core/skills/general/docx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
  541. package/.merlin-core/skills/general/docx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
  542. package/.merlin-core/skills/general/docx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
  543. package/.merlin-core/skills/general/docx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
  544. package/.merlin-core/skills/general/docx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
  545. package/.merlin-core/skills/general/docx/scripts/office/schemas/mce/mc.xsd +75 -0
  546. package/.merlin-core/skills/general/docx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
  547. package/.merlin-core/skills/general/docx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
  548. package/.merlin-core/skills/general/docx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
  549. package/.merlin-core/skills/general/docx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
  550. package/.merlin-core/skills/general/docx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
  551. package/.merlin-core/skills/general/docx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
  552. package/.merlin-core/skills/general/docx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
  553. package/.merlin-core/skills/general/docx/scripts/office/soffice.py +183 -0
  554. package/.merlin-core/skills/general/docx/scripts/office/unpack.py +132 -0
  555. package/.merlin-core/skills/general/docx/scripts/office/validate.py +111 -0
  556. package/.merlin-core/skills/general/docx/scripts/office/validators/__init__.py +15 -0
  557. package/.merlin-core/skills/general/docx/scripts/office/validators/base.py +847 -0
  558. package/.merlin-core/skills/general/docx/scripts/office/validators/docx.py +446 -0
  559. package/.merlin-core/skills/general/docx/scripts/office/validators/pptx.py +275 -0
  560. package/.merlin-core/skills/general/docx/scripts/office/validators/redlining.py +247 -0
  561. package/.merlin-core/skills/general/docx/scripts/templates/comments.xml +3 -0
  562. package/.merlin-core/skills/general/docx/scripts/templates/commentsExtended.xml +3 -0
  563. package/.merlin-core/skills/general/docx/scripts/templates/commentsExtensible.xml +3 -0
  564. package/.merlin-core/skills/general/docx/scripts/templates/commentsIds.xml +3 -0
  565. package/.merlin-core/skills/general/docx/scripts/templates/people.xml +3 -0
  566. package/.merlin-core/skills/general/elicitation/SKILL.md +188 -0
  567. package/.merlin-core/skills/general/engineering-audit/SKILL.md +122 -0
  568. package/.merlin-core/skills/general/find-and-edit/SKILL.md +102 -0
  569. package/.merlin-core/skills/general/first-party-docs/SKILL.md +51 -0
  570. package/.merlin-core/skills/general/frontend-design/SKILL.md +204 -0
  571. package/.merlin-core/skills/general/guardrails/SKILL.md +144 -0
  572. package/.merlin-core/skills/general/image-gen/SKILL.md +49 -0
  573. package/.merlin-core/skills/general/learning-capture/SKILL.md +192 -0
  574. package/.merlin-core/skills/general/lgpd-compliance-audit/SKILL.md +448 -0
  575. package/.merlin-core/skills/general/load-testing/SKILL.md +114 -0
  576. package/.merlin-core/skills/general/load-testing/docker/Dockerfile.dashboard +21 -0
  577. package/.merlin-core/skills/general/load-testing/docker/docker-compose.locust.yml +39 -0
  578. package/.merlin-core/skills/general/load-testing/requirements.txt +1 -0
  579. package/.merlin-core/skills/general/load-testing/scripts/compare_baseline.py +172 -0
  580. package/.merlin-core/skills/general/load-testing/scripts/run_local.py +245 -0
  581. package/.merlin-core/skills/general/load-testing/templates/load_shape_stepped.py +35 -0
  582. package/.merlin-core/skills/general/load-testing/templates/locustfile_dashboard.py +47 -0
  583. package/.merlin-core/skills/general/load-testing/templates/threshold_hook.py +36 -0
  584. package/.merlin-core/skills/general/mage-beauty/SKILL.md +89 -0
  585. package/.merlin-core/skills/general/mage-beauty/references/anti-patterns.md +148 -0
  586. package/.merlin-core/skills/general/mage-beauty/references/color-and-contrast.md +87 -0
  587. package/.merlin-core/skills/general/mage-beauty/references/interaction-design.md +99 -0
  588. package/.merlin-core/skills/general/mage-beauty/references/motion-design.md +90 -0
  589. package/.merlin-core/skills/general/mage-beauty/references/remotion-bridge.md +187 -0
  590. package/.merlin-core/skills/general/mage-beauty/references/responsive-and-multi-format.md +98 -0
  591. package/.merlin-core/skills/general/mage-beauty/references/spatial-design.md +88 -0
  592. package/.merlin-core/skills/general/mage-beauty/references/typography.md +60 -0
  593. package/.merlin-core/skills/general/mage-beauty/references/verb-adapt.md +102 -0
  594. package/.merlin-core/skills/general/mage-beauty/references/verb-animate.md +97 -0
  595. package/.merlin-core/skills/general/mage-beauty/references/verb-audit.md +99 -0
  596. package/.merlin-core/skills/general/mage-beauty/references/verb-bolder.md +94 -0
  597. package/.merlin-core/skills/general/mage-beauty/references/verb-cinematic.md +128 -0
  598. package/.merlin-core/skills/general/mage-beauty/references/verb-clarify.md +107 -0
  599. package/.merlin-core/skills/general/mage-beauty/references/verb-colorize.md +106 -0
  600. package/.merlin-core/skills/general/mage-beauty/references/verb-critique.md +88 -0
  601. package/.merlin-core/skills/general/mage-beauty/references/verb-delight.md +98 -0
  602. package/.merlin-core/skills/general/mage-beauty/references/verb-distill.md +97 -0
  603. package/.merlin-core/skills/general/mage-beauty/references/verb-harden.md +79 -0
  604. package/.merlin-core/skills/general/mage-beauty/references/verb-layout.md +104 -0
  605. package/.merlin-core/skills/general/mage-beauty/references/verb-onboard.md +98 -0
  606. package/.merlin-core/skills/general/mage-beauty/references/verb-optimize.md +124 -0
  607. package/.merlin-core/skills/general/mage-beauty/references/verb-overdrive.md +105 -0
  608. package/.merlin-core/skills/general/mage-beauty/references/verb-polish.md +91 -0
  609. package/.merlin-core/skills/general/mage-beauty/references/verb-quieter.md +95 -0
  610. package/.merlin-core/skills/general/mage-beauty/references/verb-rebrand.md +127 -0
  611. package/.merlin-core/skills/general/mage-beauty/references/verb-shape.md +160 -0
  612. package/.merlin-core/skills/general/mage-beauty/references/verb-typeset.md +109 -0
  613. package/.merlin-core/skills/general/mage-beauty/references/voice-and-microcopy.md +137 -0
  614. package/.merlin-core/skills/general/mcp-builder/SKILL.md +92 -0
  615. package/.merlin-core/skills/general/network-debug/SKILL.md +51 -0
  616. package/.merlin-core/skills/general/next-best-practices/SKILL.md +177 -0
  617. package/.merlin-core/skills/general/next-best-practices/references/async-patterns.md +87 -0
  618. package/.merlin-core/skills/general/next-best-practices/references/bundling.md +182 -0
  619. package/.merlin-core/skills/general/next-best-practices/references/data-patterns.md +306 -0
  620. package/.merlin-core/skills/general/next-best-practices/references/debug-tricks.md +125 -0
  621. package/.merlin-core/skills/general/next-best-practices/references/directives.md +74 -0
  622. package/.merlin-core/skills/general/next-best-practices/references/error-handling.md +232 -0
  623. package/.merlin-core/skills/general/next-best-practices/references/file-conventions.md +141 -0
  624. package/.merlin-core/skills/general/next-best-practices/references/font.md +257 -0
  625. package/.merlin-core/skills/general/next-best-practices/references/functions.md +108 -0
  626. package/.merlin-core/skills/general/next-best-practices/references/hydration-error.md +88 -0
  627. package/.merlin-core/skills/general/next-best-practices/references/image.md +179 -0
  628. package/.merlin-core/skills/general/next-best-practices/references/metadata.md +296 -0
  629. package/.merlin-core/skills/general/next-best-practices/references/parallel-routes.md +298 -0
  630. package/.merlin-core/skills/general/next-best-practices/references/route-handlers.md +146 -0
  631. package/.merlin-core/skills/general/next-best-practices/references/rsc-boundaries.md +164 -0
  632. package/.merlin-core/skills/general/next-best-practices/references/runtime-selection.md +40 -0
  633. package/.merlin-core/skills/general/next-best-practices/references/scripts.md +141 -0
  634. package/.merlin-core/skills/general/next-best-practices/references/self-hosting.md +384 -0
  635. package/.merlin-core/skills/general/next-best-practices/references/suspense-boundaries.md +67 -0
  636. package/.merlin-core/skills/general/next-steps/SKILL.md +43 -0
  637. package/.merlin-core/skills/general/party-mode/SKILL.md +57 -0
  638. package/.merlin-core/skills/general/pdf/SKILL.md +298 -0
  639. package/.merlin-core/skills/general/pdf/references/forms.md +312 -0
  640. package/.merlin-core/skills/general/pdf/references/reference.md +640 -0
  641. package/.merlin-core/skills/general/pdf/references/windows-setup.md +40 -0
  642. package/.merlin-core/skills/general/pdf/scripts/check_bounding_boxes.py +65 -0
  643. package/.merlin-core/skills/general/pdf/scripts/check_fillable_fields.py +11 -0
  644. package/.merlin-core/skills/general/pdf/scripts/convert_pdf_to_images.py +33 -0
  645. package/.merlin-core/skills/general/pdf/scripts/create_validation_image.py +37 -0
  646. package/.merlin-core/skills/general/pdf/scripts/extract_form_field_info.py +122 -0
  647. package/.merlin-core/skills/general/pdf/scripts/extract_form_structure.py +115 -0
  648. package/.merlin-core/skills/general/pdf/scripts/fill_fillable_fields.py +98 -0
  649. package/.merlin-core/skills/general/pdf/scripts/fill_pdf_form_with_annotations.py +107 -0
  650. package/.merlin-core/skills/general/pptx/SKILL.md +133 -0
  651. package/.merlin-core/skills/general/pptx/references/editing.md +213 -0
  652. package/.merlin-core/skills/general/pptx/references/pptxgenjs.md +581 -0
  653. package/.merlin-core/skills/general/pptx/references/windows-setup.md +27 -0
  654. package/.merlin-core/skills/general/pptx/scripts/__init__.py +0 -0
  655. package/.merlin-core/skills/general/pptx/scripts/add_slide.py +195 -0
  656. package/.merlin-core/skills/general/pptx/scripts/clean.py +286 -0
  657. package/.merlin-core/skills/general/pptx/scripts/thumbnail.py +289 -0
  658. package/.merlin-core/skills/general/property-testing/SKILL.md +214 -0
  659. package/.merlin-core/skills/general/purge-leaked-secret/SKILL.md +383 -0
  660. package/.merlin-core/skills/general/reflection/SKILL.md +100 -0
  661. package/.merlin-core/skills/general/secret-safe-commit/SKILL.md +246 -0
  662. package/.merlin-core/skills/general/secret-safe-commit/templates/.gitleaks.toml +91 -0
  663. package/.merlin-core/skills/general/secret-safe-commit/templates/.pre-commit-config.yaml +57 -0
  664. package/.merlin-core/skills/general/secret-safe-commit/templates/secret-scan.yml +48 -0
  665. package/.merlin-core/skills/general/semantic-search/SKILL.md +79 -0
  666. package/.merlin-core/skills/general/skill-creator/SKILL.md +342 -0
  667. package/.merlin-core/skills/general/skill-creator/agents/analyzer.md +283 -0
  668. package/.merlin-core/skills/general/skill-creator/agents/comparator.md +211 -0
  669. package/.merlin-core/skills/general/skill-creator/agents/grader.md +227 -0
  670. package/.merlin-core/skills/general/skill-creator/assets/eval_review.html +146 -0
  671. package/.merlin-core/skills/general/skill-creator/eval-viewer/generate_review.py +471 -0
  672. package/.merlin-core/skills/general/skill-creator/eval-viewer/viewer.html +1325 -0
  673. package/.merlin-core/skills/general/skill-creator/references/schemas.md +439 -0
  674. package/.merlin-core/skills/general/skill-creator/scripts/__init__.py +0 -0
  675. package/.merlin-core/skills/general/skill-creator/scripts/aggregate_benchmark.py +401 -0
  676. package/.merlin-core/skills/general/skill-creator/scripts/generate_report.py +326 -0
  677. package/.merlin-core/skills/general/skill-creator/scripts/improve_description.py +247 -0
  678. package/.merlin-core/skills/general/skill-creator/scripts/package_skill.py +136 -0
  679. package/.merlin-core/skills/general/skill-creator/scripts/quick_validate.py +103 -0
  680. package/.merlin-core/skills/general/skill-creator/scripts/run_eval.py +310 -0
  681. package/.merlin-core/skills/general/skill-creator/scripts/run_loop.py +328 -0
  682. package/.merlin-core/skills/general/skill-creator/scripts/utils.py +47 -0
  683. package/.merlin-core/skills/general/start-here/SKILL.md +63 -0
  684. package/.merlin-core/skills/general/start-here/recipes.json +758 -0
  685. package/.merlin-core/skills/general/start-here/recipes.schema.json +57 -0
  686. package/.merlin-core/skills/general/static-analysis/SKILL.md +151 -0
  687. package/.merlin-core/skills/general/tailwind-design-system/SKILL.md +201 -0
  688. package/.merlin-core/skills/general/tailwind-design-system/references/advanced-v4.md +152 -0
  689. package/.merlin-core/skills/general/tailwind-design-system/references/component-patterns.md +353 -0
  690. package/.merlin-core/skills/general/teach-method/SKILL.md +86 -0
  691. package/.merlin-core/skills/general/team-execution/SKILL.md +67 -0
  692. package/.merlin-core/skills/general/testing/SKILL.md +412 -0
  693. package/.merlin-core/skills/general/token-economy/SKILL.md +55 -0
  694. package/.merlin-core/skills/general/vps-security-hardening/SKILL.md +406 -0
  695. package/.merlin-core/skills/general/web-quality/SKILL.md +180 -0
  696. package/.merlin-core/skills/general/webapp-testing/SKILL.md +153 -0
  697. package/.merlin-core/skills/general/webapp-testing/scripts/screenshot_compare.py +72 -0
  698. package/.merlin-core/skills/general/webapp-testing/scripts/with_server.py +103 -0
  699. package/.merlin-core/skills/general/xlsx/SKILL.md +167 -0
  700. package/.merlin-core/skills/general/xlsx/references/nodejs-sheetjs-styled-reports.md +141 -0
  701. package/.merlin-core/skills/general/xlsx/references/windows-setup.md +17 -0
  702. package/.merlin-core/skills/general/xlsx/scripts/recalc.py +184 -0
  703. package/.merlin-core/skills/general/xlsx/scripts/styled-report.js +130 -0
  704. package/.merlin-core/skills/general/yolo-mode/SKILL.md +60 -0
  705. package/.merlin-core/skills/general/youtube-transcript/SKILL.md +177 -0
  706. package/.merlin-core/skills/general/youtube-transcript/scripts/fetch_transcript.py +188 -0
  707. package/.merlin-core/skills/general/youtube-transcript/scripts/gladia_transcribe.mjs +230 -0
  708. package/.merlin-core/tools/commands/activate.js +72 -0
  709. package/.merlin-core/tools/commands/archive-thoughts.js +181 -0
  710. package/.merlin-core/tools/commands/backup.js +156 -0
  711. package/.merlin-core/tools/commands/certify-process.js +196 -0
  712. package/.merlin-core/tools/commands/convert.js +87 -0
  713. package/.merlin-core/tools/commands/cron.js +147 -0
  714. package/.merlin-core/tools/commands/disable.js +73 -0
  715. package/.merlin-core/tools/commands/doc-sync.js +127 -0
  716. package/.merlin-core/tools/commands/eval-skill.js +193 -0
  717. package/.merlin-core/tools/commands/frontmatter.js +49 -0
  718. package/.merlin-core/tools/commands/heartbeat.js +43 -0
  719. package/.merlin-core/tools/commands/index-thoughts.js +35 -0
  720. package/.merlin-core/tools/commands/install-remote-approve.js +184 -0
  721. package/.merlin-core/tools/commands/install.js +81 -0
  722. package/.merlin-core/tools/commands/lib/__verify__/diff-reports.js +170 -0
  723. package/.merlin-core/tools/commands/lib/fs-safe.js +186 -0
  724. package/.merlin-core/tools/commands/lib/preflight.js +607 -0
  725. package/.merlin-core/tools/commands/lib/preserve.js +232 -0
  726. package/.merlin-core/tools/commands/lib/project-config.template.yaml +69 -0
  727. package/.merlin-core/tools/commands/lib/report.js +231 -0
  728. package/.merlin-core/tools/commands/lib/settings-merge.js +134 -0
  729. package/.merlin-core/tools/commands/license.js +52 -0
  730. package/.merlin-core/tools/commands/list.js +125 -0
  731. package/.merlin-core/tools/commands/migrate-alkimia.js +271 -0
  732. package/.merlin-core/tools/commands/modules.js +68 -0
  733. package/.merlin-core/tools/commands/provision.js +83 -0
  734. package/.merlin-core/tools/commands/prune-feedback.js +114 -0
  735. package/.merlin-core/tools/commands/run-process.js +28 -0
  736. package/.merlin-core/tools/commands/state.js +79 -0
  737. package/.merlin-core/tools/commands/sync-bridges.js +197 -0
  738. package/.merlin-core/tools/commands/upgrade.js +1135 -0
  739. package/.merlin-core/tools/commands/validate-recipes.js +218 -0
  740. package/.merlin-core/tools/commands/validate.js +159 -0
  741. package/.merlin-core/tools/commands/yolo.js +82 -0
  742. package/.merlin-core/tools/compose-rules.mjs +179 -0
  743. package/.merlin-core/tools/disable-module.mjs +150 -0
  744. package/.merlin-core/tools/lib/deployer.mjs +131 -0
  745. package/.merlin-core/tools/lib/modules-activation.mjs +225 -0
  746. package/.merlin-core/tools/merlin-tools.js +153 -0
  747. package/.merlin-core/tools/migrate-frontmatter-v3.js +192 -0
  748. package/.merlin-core/tools/modules-catalog.mjs +174 -0
  749. package/.merlin-core/tools/provision-module.mjs +191 -0
  750. package/.merlin-core/tools/verify-module.mjs +99 -0
  751. package/.merlin-core/tools/vps-security-audit.sh +234 -0
  752. package/INSTALL.md +312 -0
  753. package/LICENSE +118 -0
  754. package/PRIVACY-LICENSING.md +65 -0
  755. package/README.md +391 -0
  756. package/bin/README.md +15 -0
  757. package/bin/convert-to-merlin.sh +109 -0
  758. package/bin/fleet-patch-hooks.sh +144 -0
  759. package/bin/fleet-patch-v3-fixes.sh +127 -0
  760. package/bin/merlin-init.js +232 -0
  761. package/bin/merlin.js +321 -0
  762. package/package.json +127 -0
@@ -0,0 +1,2111 @@
1
+ <!-- Adapted from czlonkowski/n8n-skills (MIT). Source files: SKILL.md, SEARCH_GUIDE.md, VALIDATION_GUIDE.md, WORKFLOW_GUIDE.md -->
2
+
3
+ # n8n MCP Tools Expert
4
+
5
+ Master guide for using n8n-mcp MCP server tools to build workflows.
6
+
7
+ ---
8
+
9
+ ## Tool Categories
10
+
11
+ n8n-mcp provides tools organized into categories:
12
+
13
+ 1. **Node Discovery** -- [Search Guide](#node-discovery-tools-guide)
14
+ 2. **Configuration Validation** -- [Validation Guide](#configuration-validation-tools-guide)
15
+ 3. **Workflow Management** -- [Workflow Guide](#workflow-management-tools-guide)
16
+ 4. **Template Library** - Search and deploy 2,700+ real workflows
17
+ 5. **Documentation & Guides** - Tool docs, AI agent guide, Code node guides
18
+
19
+ ---
20
+
21
+ ## Quick Reference
22
+
23
+ ### Most Used Tools (by success rate)
24
+
25
+ | Tool | Use When | Speed |
26
+ | ----------------------------- | ------------------------------------------------- | --------- |
27
+ | `search_nodes` | Finding nodes by keyword | <20ms |
28
+ | `get_node` | Understanding node operations (detail="standard") | <10ms |
29
+ | `validate_node` | Checking configurations (mode="full") | <100ms |
30
+ | `n8n_create_workflow` | Creating workflows | 100-500ms |
31
+ | `n8n_update_partial_workflow` | Editing workflows (MOST USED!) | 50-200ms |
32
+ | `validate_workflow` | Checking complete workflow | 100-500ms |
33
+ | `n8n_deploy_template` | Deploy template to n8n instance | 200-500ms |
34
+
35
+ ---
36
+
37
+ ## Tool Selection Guide
38
+
39
+ ### Finding the Right Node
40
+
41
+ **Workflow**:
42
+
43
+ ```
44
+ 1. search_nodes({query: "keyword"})
45
+ 2. get_node({nodeType: "nodes-base.name"})
46
+ 3. [Optional] get_node({nodeType: "nodes-base.name", mode: "docs"})
47
+ ```
48
+
49
+ **Example**:
50
+
51
+ ```javascript
52
+ // Step 1: Search
53
+ search_nodes({ query: "slack" });
54
+ // Returns: nodes-base.slack
55
+
56
+ // Step 2: Get details
57
+ get_node({ nodeType: "nodes-base.slack" });
58
+ // Returns: operations, properties, examples (standard detail)
59
+
60
+ // Step 3: Get readable documentation
61
+ get_node({ nodeType: "nodes-base.slack", mode: "docs" });
62
+ // Returns: markdown documentation
63
+ ```
64
+
65
+ **Common pattern**: search -> get_node (18s average)
66
+
67
+ ### Validating Configuration
68
+
69
+ > See also: [validation-expert.md](validation-expert.md) for detailed error handling patterns.
70
+
71
+ **Workflow**:
72
+
73
+ ```
74
+ 1. validate_node({nodeType, config: {}, mode: "minimal"}) - Check required fields
75
+ 2. validate_node({nodeType, config, profile: "runtime"}) - Full validation
76
+ 3. [Repeat] Fix errors, validate again
77
+ ```
78
+
79
+ **Common pattern**: validate -> fix -> validate (23s thinking, 58s fixing per cycle)
80
+
81
+ ### Managing Workflows
82
+
83
+ > See also: [workflow-patterns.md](workflow-patterns.md) for architectural pattern selection.
84
+
85
+ **Workflow**:
86
+
87
+ ```
88
+ 1. n8n_create_workflow({name, nodes, connections})
89
+ 2. n8n_validate_workflow({id})
90
+ 3. n8n_update_partial_workflow({id, operations: [...]})
91
+ 4. n8n_validate_workflow({id}) again
92
+ 5. n8n_update_partial_workflow({id, operations: [{type: "activateWorkflow"}]})
93
+ ```
94
+
95
+ **Common pattern**: iterative updates (56s average between edits)
96
+
97
+ ---
98
+
99
+ ## Critical: nodeType Formats
100
+
101
+ **Two different formats** for different tools!
102
+
103
+ ### Format 1: Search/Validate Tools
104
+
105
+ ```javascript
106
+ // Use SHORT prefix
107
+ "nodes-base.slack";
108
+ "nodes-base.httpRequest";
109
+ "nodes-base.webhook";
110
+ "nodes-langchain.agent";
111
+ ```
112
+
113
+ **Tools that use this**:
114
+
115
+ - search_nodes (returns this format)
116
+ - get_node
117
+ - validate_node
118
+ - validate_workflow
119
+
120
+ ### Format 2: Workflow Tools
121
+
122
+ ```javascript
123
+ // Use FULL prefix
124
+ "n8n-nodes-base.slack";
125
+ "n8n-nodes-base.httpRequest";
126
+ "n8n-nodes-base.webhook";
127
+ "@n8n/n8n-nodes-langchain.agent";
128
+ ```
129
+
130
+ **Tools that use this**:
131
+
132
+ - n8n_create_workflow
133
+ - n8n_update_partial_workflow
134
+
135
+ ### Conversion
136
+
137
+ ```javascript
138
+ // search_nodes returns BOTH formats
139
+ {
140
+ "nodeType": "nodes-base.slack", // For search/validate tools
141
+ "workflowNodeType": "n8n-nodes-base.slack" // For workflow tools
142
+ }
143
+ ```
144
+
145
+ ---
146
+
147
+ ## Common Mistakes
148
+
149
+ ### Mistake 1: Wrong nodeType Format
150
+
151
+ **Problem**: "Node not found" error
152
+
153
+ ```javascript
154
+ // WRONG
155
+ get_node({ nodeType: "slack" }); // Missing prefix
156
+ get_node({ nodeType: "n8n-nodes-base.slack" }); // Wrong prefix
157
+
158
+ // CORRECT
159
+ get_node({ nodeType: "nodes-base.slack" });
160
+ ```
161
+
162
+ ### Mistake 2: Using detail="full" by Default
163
+
164
+ **Problem**: Huge payload, slower response, token waste
165
+
166
+ ```javascript
167
+ // WRONG - Returns 3-8K tokens, use sparingly
168
+ get_node({ nodeType: "nodes-base.slack", detail: "full" });
169
+
170
+ // CORRECT - Returns 1-2K tokens, covers 95% of use cases
171
+ get_node({ nodeType: "nodes-base.slack" }); // detail="standard" is default
172
+ get_node({ nodeType: "nodes-base.slack", detail: "standard" });
173
+ ```
174
+
175
+ **When to use detail="full"**:
176
+
177
+ - Debugging complex configuration issues
178
+ - Need complete property schema with all nested options
179
+ - Exploring advanced features
180
+
181
+ **Better alternatives**:
182
+
183
+ 1. `get_node({detail: "standard"})` - for operations list (default)
184
+ 2. `get_node({mode: "docs"})` - for readable documentation
185
+ 3. `get_node({mode: "search_properties", propertyQuery: "auth"})` - for specific property
186
+
187
+ ### Mistake 3: Not Using Validation Profiles
188
+
189
+ > See also: [validation-expert.md](validation-expert.md) for profile selection guidance.
190
+
191
+ **Problem**: Too many false positives OR missing real errors
192
+
193
+ **Profiles**:
194
+
195
+ - `minimal` - Only required fields (fast, permissive)
196
+ - `runtime` - Values + types (recommended for pre-deployment)
197
+ - `ai-friendly` - Reduce false positives (for AI configuration)
198
+ - `strict` - Maximum validation (for production)
199
+
200
+ ```javascript
201
+ // WRONG - Uses default profile
202
+ validate_node({ nodeType, config });
203
+
204
+ // CORRECT - Explicit profile
205
+ validate_node({ nodeType, config, profile: "runtime" });
206
+ ```
207
+
208
+ ### Mistake 4: Ignoring Auto-Sanitization
209
+
210
+ **What happens**: ALL nodes sanitized on ANY workflow update
211
+
212
+ **Auto-fixes**:
213
+
214
+ - Binary operators (equals, contains) -> removes singleValue
215
+ - Unary operators (isEmpty, isNotEmpty) -> adds singleValue: true
216
+ - IF/Switch nodes -> adds missing metadata
217
+
218
+ **Cannot fix**:
219
+
220
+ - Broken connections
221
+ - Branch count mismatches
222
+ - Paradoxical corrupt states
223
+
224
+ ```javascript
225
+ // After ANY update, auto-sanitization runs on ALL nodes
226
+ n8n_update_partial_workflow({id, operations: [...]})
227
+ // -> Automatically fixes operator structures
228
+ ```
229
+
230
+ ### Mistake 5: Not Using Smart Parameters
231
+
232
+ **Problem**: Complex sourceIndex calculations for multi-output nodes
233
+
234
+ **Old way** (manual):
235
+
236
+ ```javascript
237
+ // IF node connection
238
+ {
239
+ type: "addConnection",
240
+ source: "IF",
241
+ target: "Handler",
242
+ sourceIndex: 0 // Which output? Hard to remember!
243
+ }
244
+ ```
245
+
246
+ **New way** (smart parameters):
247
+
248
+ ```javascript
249
+ // IF node - semantic branch names
250
+ {
251
+ type: "addConnection",
252
+ source: "IF",
253
+ target: "True Handler",
254
+ branch: "true" // Clear and readable!
255
+ }
256
+
257
+ {
258
+ type: "addConnection",
259
+ source: "IF",
260
+ target: "False Handler",
261
+ branch: "false"
262
+ }
263
+
264
+ // Switch node - semantic case numbers
265
+ {
266
+ type: "addConnection",
267
+ source: "Switch",
268
+ target: "Handler A",
269
+ case: 0
270
+ }
271
+ ```
272
+
273
+ ### Mistake 6: Not Using intent Parameter
274
+
275
+ **Problem**: Less helpful tool responses
276
+
277
+ ```javascript
278
+ // WRONG - No context for response
279
+ n8n_update_partial_workflow({
280
+ id: "abc",
281
+ operations: [{type: "addNode", node: {...}}]
282
+ })
283
+
284
+ // CORRECT - Better AI responses
285
+ n8n_update_partial_workflow({
286
+ id: "abc",
287
+ intent: "Add error handling for API failures",
288
+ operations: [{type: "addNode", node: {...}}]
289
+ })
290
+ ```
291
+
292
+ ---
293
+
294
+ ## Tool Usage Patterns
295
+
296
+ ### Pattern 1: Node Discovery (Most Common)
297
+
298
+ **Common workflow**: 18s average between steps
299
+
300
+ ```javascript
301
+ // Step 1: Search (fast!)
302
+ const results = await search_nodes({
303
+ query: "slack",
304
+ mode: "OR", // Default: any word matches
305
+ limit: 20,
306
+ });
307
+ // -> Returns: nodes-base.slack, nodes-base.slackTrigger
308
+
309
+ // Step 2: Get details (~18s later, user reviewing results)
310
+ const details = await get_node({
311
+ nodeType: "nodes-base.slack",
312
+ includeExamples: true, // Get real template configs
313
+ });
314
+ // -> Returns: operations, properties, metadata
315
+ ```
316
+
317
+ ### Pattern 2: Validation Loop
318
+
319
+ **Typical cycle**: 23s thinking, 58s fixing
320
+
321
+ ```javascript
322
+ // Step 1: Validate
323
+ const result = await validate_node({
324
+ nodeType: "nodes-base.slack",
325
+ config: {
326
+ resource: "channel",
327
+ operation: "create"
328
+ },
329
+ profile: "runtime"
330
+ });
331
+
332
+ // Step 2: Check errors (~23s thinking)
333
+ if (!result.valid) {
334
+ console.log(result.errors); // "Missing required field: name"
335
+ }
336
+
337
+ // Step 3: Fix config (~58s fixing)
338
+ config.name = "general";
339
+
340
+ // Step 4: Validate again
341
+ await validate_node({...}); // Repeat until clean
342
+ ```
343
+
344
+ ### Pattern 3: Workflow Editing
345
+
346
+ **Most used update tool**: 99.0% success rate, 56s average between edits
347
+
348
+ ```javascript
349
+ // Iterative workflow building (NOT one-shot!)
350
+ // Edit 1
351
+ await n8n_update_partial_workflow({
352
+ id: "workflow-id",
353
+ intent: "Add webhook trigger",
354
+ operations: [{type: "addNode", node: {...}}]
355
+ });
356
+
357
+ // ~56s later...
358
+
359
+ // Edit 2
360
+ await n8n_update_partial_workflow({
361
+ id: "workflow-id",
362
+ intent: "Connect webhook to processor",
363
+ operations: [{type: "addConnection", source: "...", target: "..."}]
364
+ });
365
+
366
+ // ~56s later...
367
+
368
+ // Edit 3 (validation)
369
+ await n8n_validate_workflow({id: "workflow-id"});
370
+
371
+ // Ready? Activate!
372
+ await n8n_update_partial_workflow({
373
+ id: "workflow-id",
374
+ intent: "Activate workflow for production",
375
+ operations: [{type: "activateWorkflow"}]
376
+ });
377
+ ```
378
+
379
+ ---
380
+
381
+ ## Template Usage
382
+
383
+ ### Search Templates
384
+
385
+ ```javascript
386
+ // Search by keyword (default mode)
387
+ search_templates({
388
+ query: "webhook slack",
389
+ limit: 20,
390
+ });
391
+
392
+ // Search by node types
393
+ search_templates({
394
+ searchMode: "by_nodes",
395
+ nodeTypes: ["n8n-nodes-base.httpRequest", "n8n-nodes-base.slack"],
396
+ });
397
+
398
+ // Search by task type
399
+ search_templates({
400
+ searchMode: "by_task",
401
+ task: "webhook_processing",
402
+ });
403
+
404
+ // Search by metadata (complexity, setup time)
405
+ search_templates({
406
+ searchMode: "by_metadata",
407
+ complexity: "simple",
408
+ maxSetupMinutes: 15,
409
+ });
410
+ ```
411
+
412
+ ### Get Template Details
413
+
414
+ ```javascript
415
+ get_template({
416
+ templateId: 2947,
417
+ mode: "structure", // nodes+connections only
418
+ });
419
+
420
+ get_template({
421
+ templateId: 2947,
422
+ mode: "full", // complete workflow JSON
423
+ });
424
+ ```
425
+
426
+ ### Deploy Template Directly
427
+
428
+ ```javascript
429
+ // Deploy template to your n8n instance
430
+ n8n_deploy_template({
431
+ templateId: 2947,
432
+ name: "My Weather to Slack", // Custom name (optional)
433
+ autoFix: true, // Auto-fix common issues (default)
434
+ autoUpgradeVersions: true, // Upgrade node versions (default)
435
+ });
436
+ // Returns: workflow ID, required credentials, fixes applied
437
+ ```
438
+
439
+ ---
440
+
441
+ ## Self-Help Tools
442
+
443
+ ### Get Tool Documentation
444
+
445
+ ```javascript
446
+ // Overview of all tools
447
+ tools_documentation();
448
+
449
+ // Specific tool details
450
+ tools_documentation({
451
+ topic: "search_nodes",
452
+ depth: "full",
453
+ });
454
+
455
+ // Code node guides
456
+ tools_documentation({ topic: "javascript_code_node_guide", depth: "full" });
457
+ tools_documentation({ topic: "python_code_node_guide", depth: "full" });
458
+ ```
459
+
460
+ ### AI Agent Guide
461
+
462
+ ```javascript
463
+ // Comprehensive AI workflow guide
464
+ ai_agents_guide();
465
+ // Returns: Architecture, connections, tools, validation, best practices
466
+ ```
467
+
468
+ ### Health Check
469
+
470
+ ```javascript
471
+ // Quick health check
472
+ n8n_health_check();
473
+
474
+ // Detailed diagnostics
475
+ n8n_health_check({ mode: "diagnostic" });
476
+ // -> Returns: status, env vars, tool status, API connectivity
477
+ ```
478
+
479
+ ---
480
+
481
+ ## Tool Availability
482
+
483
+ **Always Available** (no n8n API needed):
484
+
485
+ - search_nodes, get_node
486
+ - validate_node, validate_workflow
487
+ - search_templates, get_template
488
+ - tools_documentation, ai_agents_guide
489
+
490
+ **Requires n8n API** (N8N_API_URL + N8N_API_KEY):
491
+
492
+ - n8n_create_workflow
493
+ - n8n_update_partial_workflow
494
+ - n8n_validate_workflow (by ID)
495
+ - n8n_list_workflows, n8n_get_workflow
496
+ - n8n_test_workflow
497
+ - n8n_executions
498
+ - n8n_deploy_template
499
+ - n8n_workflow_versions
500
+ - n8n_autofix_workflow
501
+
502
+ If API tools unavailable, use templates and validation-only workflows.
503
+
504
+ ---
505
+
506
+ ## Unified Tool Reference
507
+
508
+ ### get_node (Unified Node Information)
509
+
510
+ **Detail Levels** (mode="info", default):
511
+
512
+ - `minimal` (~200 tokens) - Basic metadata only
513
+ - `standard` (~1-2K tokens) - Essential properties + operations (RECOMMENDED)
514
+ - `full` (~3-8K tokens) - Complete schema (use sparingly)
515
+
516
+ **Operation Modes**:
517
+
518
+ - `info` (default) - Node schema with detail level
519
+ - `docs` - Readable markdown documentation
520
+ - `search_properties` - Find specific properties (use with propertyQuery)
521
+ - `versions` - List all versions with breaking changes
522
+ - `compare` - Compare two versions
523
+ - `breaking` - Show only breaking changes
524
+ - `migrations` - Show auto-migratable changes
525
+
526
+ ```javascript
527
+ // Standard (recommended)
528
+ get_node({ nodeType: "nodes-base.httpRequest" });
529
+
530
+ // Get documentation
531
+ get_node({ nodeType: "nodes-base.webhook", mode: "docs" });
532
+
533
+ // Search for properties
534
+ get_node({
535
+ nodeType: "nodes-base.httpRequest",
536
+ mode: "search_properties",
537
+ propertyQuery: "auth",
538
+ });
539
+
540
+ // Check versions
541
+ get_node({ nodeType: "nodes-base.executeWorkflow", mode: "versions" });
542
+ ```
543
+
544
+ ### validate_node (Unified Validation)
545
+
546
+ **Modes**:
547
+
548
+ - `full` (default) - Comprehensive validation with errors/warnings/suggestions
549
+ - `minimal` - Quick required fields check only
550
+
551
+ **Profiles** (for mode="full"):
552
+
553
+ - `minimal` - Very lenient
554
+ - `runtime` - Standard (default, recommended)
555
+ - `ai-friendly` - Balanced for AI workflows
556
+ - `strict` - Most thorough (production)
557
+
558
+ ```javascript
559
+ // Full validation with runtime profile
560
+ validate_node({nodeType: "nodes-base.slack", config: {...}, profile: "runtime"})
561
+
562
+ // Quick required fields check
563
+ validate_node({nodeType: "nodes-base.webhook", config: {}, mode: "minimal"})
564
+ ```
565
+
566
+ ---
567
+
568
+ ## Performance Characteristics
569
+
570
+ | Tool | Response Time | Payload Size |
571
+ | --------------------------- | ------------- | ------------ |
572
+ | search_nodes | <20ms | Small |
573
+ | get_node (standard) | <10ms | ~1-2KB |
574
+ | get_node (full) | <100ms | 3-8KB |
575
+ | validate_node (minimal) | <50ms | Small |
576
+ | validate_node (full) | <100ms | Medium |
577
+ | validate_workflow | 100-500ms | Medium |
578
+ | n8n_create_workflow | 100-500ms | Medium |
579
+ | n8n_update_partial_workflow | 50-200ms | Small |
580
+ | n8n_deploy_template | 200-500ms | Medium |
581
+
582
+ ---
583
+
584
+ ## Best Practices
585
+
586
+ ### Do
587
+
588
+ - Use `get_node({detail: "standard"})` for most use cases
589
+ - Specify validation profile explicitly (`profile: "runtime"`)
590
+ - Use smart parameters (`branch`, `case`) for clarity
591
+ - Include `intent` parameter in workflow updates
592
+ - Follow search -> get_node -> validate workflow
593
+ - Iterate workflows (avg 56s between edits)
594
+ - Validate after every significant change
595
+ - Use `includeExamples: true` for real configs
596
+ - Use `n8n_deploy_template` for quick starts
597
+
598
+ ### Don't
599
+
600
+ - Use `detail: "full"` unless necessary (wastes tokens)
601
+ - Forget nodeType prefix (`nodes-base.*`)
602
+ - Skip validation profiles
603
+ - Try to build workflows in one shot (iterate!)
604
+ - Ignore auto-sanitization behavior
605
+ - Use full prefix (`n8n-nodes-base.*`) with search/validate tools
606
+ - Forget to activate workflows after building
607
+
608
+ ---
609
+
610
+ ## Summary
611
+
612
+ **Most Important**:
613
+
614
+ 1. Use **get_node** with `detail: "standard"` (default) - covers 95% of use cases
615
+ 2. nodeType formats differ: `nodes-base.*` (search/validate) vs `n8n-nodes-base.*` (workflows)
616
+ 3. Specify **validation profiles** (`runtime` recommended)
617
+ 4. Use **smart parameters** (`branch="true"`, `case=0`)
618
+ 5. Include **intent parameter** in workflow updates
619
+ 6. **Auto-sanitization** runs on ALL nodes during updates
620
+ 7. Workflows can be **activated via API** (`activateWorkflow` operation)
621
+ 8. Workflows are built **iteratively** (56s avg between edits)
622
+
623
+ **Common Workflow**:
624
+
625
+ 1. search_nodes -> find node
626
+ 2. get_node -> understand config
627
+ 3. validate_node -> check config
628
+ 4. n8n_create_workflow -> build
629
+ 5. n8n_validate_workflow -> verify
630
+ 6. n8n_update_partial_workflow -> iterate
631
+ 7. activateWorkflow -> go live!
632
+
633
+ **Related Skills**:
634
+
635
+ - [validation-expert.md](validation-expert.md) - Interpret validation errors
636
+ - [node-configuration.md](node-configuration.md) - Operation-specific node setup
637
+ - [workflow-patterns.md](workflow-patterns.md) - Architectural patterns from templates
638
+ - n8n Expression Syntax - Write expressions in workflow fields
639
+ - n8n Code JavaScript - Write JavaScript in Code nodes
640
+ - n8n Code Python - Write Python in Code nodes
641
+
642
+ ---
643
+
644
+ # Node Discovery Tools Guide
645
+
646
+ Complete guide for finding and understanding n8n nodes.
647
+
648
+ ---
649
+
650
+ ## search_nodes (START HERE!)
651
+
652
+ **Speed**: <20ms
653
+
654
+ **Use when**: You know what you're looking for (keyword, service, use case)
655
+
656
+ **Syntax**:
657
+
658
+ ```javascript
659
+ search_nodes({
660
+ query: "slack", // Required: search keywords
661
+ mode: "OR", // Optional: OR (default), AND, FUZZY
662
+ limit: 20, // Optional: max results (default 20)
663
+ source: "all", // Optional: all, core, community, verified
664
+ includeExamples: false, // Optional: include template configs
665
+ });
666
+ ```
667
+
668
+ **Returns**:
669
+
670
+ ```javascript
671
+ {
672
+ "query": "slack",
673
+ "results": [
674
+ {
675
+ "nodeType": "nodes-base.slack", // For search/validate tools
676
+ "workflowNodeType": "n8n-nodes-base.slack", // For workflow tools
677
+ "displayName": "Slack",
678
+ "description": "Consume Slack API",
679
+ "category": "output",
680
+ "relevance": "high"
681
+ }
682
+ ]
683
+ }
684
+ ```
685
+
686
+ **Tips**:
687
+
688
+ - Common searches: webhook, http, database, email, slack, google, ai
689
+ - `OR` mode (default): matches any word
690
+ - `AND` mode: requires all words
691
+ - `FUZZY` mode: typo-tolerant (finds "slak" -> Slack)
692
+ - Use `source: "core"` for only built-in nodes
693
+ - Use `includeExamples: true` for real-world configs
694
+
695
+ ---
696
+
697
+ ## get_node (UNIFIED NODE INFORMATION)
698
+
699
+ The `get_node` tool provides all node information with different detail levels and modes.
700
+
701
+ > See also: [node-configuration.md](node-configuration.md) for operation-specific configuration requirements.
702
+
703
+ ### Detail Levels (mode="info")
704
+
705
+ | Detail | Tokens | Use When |
706
+ | ---------- | ------ | ---------------------------- |
707
+ | `minimal` | ~200 | Quick metadata check |
708
+ | `standard` | ~1-2K | **Most use cases (DEFAULT)** |
709
+ | `full` | ~3-8K | Complex debugging only |
710
+
711
+ ### Standard Detail (RECOMMENDED)
712
+
713
+ **Speed**: <10ms | **Size**: ~1-2K tokens
714
+
715
+ **Use when**: You've found the node and need configuration details
716
+
717
+ ```javascript
718
+ get_node({
719
+ nodeType: "nodes-base.slack", // Required: SHORT prefix format
720
+ includeExamples: true, // Optional: get real template configs
721
+ });
722
+ // detail="standard" is the default
723
+ ```
724
+
725
+ **Returns**:
726
+
727
+ - Available operations and resources
728
+ - Essential properties (10-20 most common)
729
+ - Metadata (isAITool, isTrigger, hasCredentials)
730
+ - Real examples from templates (if includeExamples: true)
731
+
732
+ ### Minimal Detail
733
+
734
+ **Speed**: <5ms | **Size**: ~200 tokens
735
+
736
+ **Use when**: Just need basic metadata
737
+
738
+ ```javascript
739
+ get_node({
740
+ nodeType: "nodes-base.slack",
741
+ detail: "minimal",
742
+ });
743
+ ```
744
+
745
+ **Returns**: nodeType, displayName, description, category
746
+
747
+ ### Full Detail (USE SPARINGLY)
748
+
749
+ **Speed**: <100ms | **Size**: ~3-8K tokens
750
+
751
+ **Use when**: Debugging complex configuration, need complete schema
752
+
753
+ ```javascript
754
+ get_node({
755
+ nodeType: "nodes-base.httpRequest",
756
+ detail: "full",
757
+ });
758
+ ```
759
+
760
+ **Warning**: Large payload! Use `standard` for most cases.
761
+
762
+ ---
763
+
764
+ ## get_node Modes
765
+
766
+ ### mode="docs" (READABLE DOCUMENTATION)
767
+
768
+ **Use when**: Need human-readable documentation with examples
769
+
770
+ ```javascript
771
+ get_node({
772
+ nodeType: "nodes-base.slack",
773
+ mode: "docs",
774
+ });
775
+ ```
776
+
777
+ **Returns**: Formatted markdown with:
778
+
779
+ - Usage examples
780
+ - Authentication guide
781
+ - Common patterns
782
+ - Best practices
783
+
784
+ **Better than raw schema for learning!**
785
+
786
+ ### mode="search_properties" (FIND SPECIFIC FIELDS)
787
+
788
+ **Use when**: Looking for specific property in a node
789
+
790
+ ```javascript
791
+ get_node({
792
+ nodeType: "nodes-base.httpRequest",
793
+ mode: "search_properties",
794
+ propertyQuery: "auth", // Required for this mode
795
+ maxPropertyResults: 20, // Optional: default 20
796
+ });
797
+ ```
798
+
799
+ **Returns**: Property paths and descriptions matching query
800
+
801
+ **Common searches**: auth, header, body, json, url, method, credential
802
+
803
+ ### mode="versions" (VERSION HISTORY)
804
+
805
+ **Use when**: Need to check node version history
806
+
807
+ ```javascript
808
+ get_node({
809
+ nodeType: "nodes-base.executeWorkflow",
810
+ mode: "versions",
811
+ });
812
+ ```
813
+
814
+ **Returns**: Version history with breaking changes flags
815
+
816
+ ### mode="compare" (COMPARE VERSIONS)
817
+
818
+ **Use when**: Need to see differences between versions
819
+
820
+ ```javascript
821
+ get_node({
822
+ nodeType: "nodes-base.httpRequest",
823
+ mode: "compare",
824
+ fromVersion: "3.0",
825
+ toVersion: "4.1", // Optional: defaults to latest
826
+ });
827
+ ```
828
+
829
+ **Returns**: Property-level changes between versions
830
+
831
+ ### mode="breaking" (BREAKING CHANGES ONLY)
832
+
833
+ **Use when**: Checking for breaking changes before upgrades
834
+
835
+ ```javascript
836
+ get_node({
837
+ nodeType: "nodes-base.httpRequest",
838
+ mode: "breaking",
839
+ fromVersion: "3.0",
840
+ });
841
+ ```
842
+
843
+ **Returns**: Only breaking changes (not all changes)
844
+
845
+ ### mode="migrations" (AUTO-MIGRATABLE)
846
+
847
+ **Use when**: Checking what can be auto-migrated
848
+
849
+ ```javascript
850
+ get_node({
851
+ nodeType: "nodes-base.httpRequest",
852
+ mode: "migrations",
853
+ fromVersion: "3.0",
854
+ });
855
+ ```
856
+
857
+ **Returns**: Changes that can be automatically migrated
858
+
859
+ ---
860
+
861
+ ## Additional Parameters
862
+
863
+ ### includeTypeInfo
864
+
865
+ Add type structure metadata (validation rules, JS types)
866
+
867
+ ```javascript
868
+ get_node({
869
+ nodeType: "nodes-base.if",
870
+ includeTypeInfo: true, // Adds ~80-120 tokens per property
871
+ });
872
+ ```
873
+
874
+ Use for complex nodes like filter, resourceMapper
875
+
876
+ ### includeExamples
877
+
878
+ Include real-world configuration examples from templates
879
+
880
+ ```javascript
881
+ get_node({
882
+ nodeType: "nodes-base.slack",
883
+ includeExamples: true, // Adds ~200-400 tokens per example
884
+ });
885
+ ```
886
+
887
+ Only works with `mode: "info"` and `detail: "standard"`
888
+
889
+ ---
890
+
891
+ ## Common Workflow: Finding & Configuring
892
+
893
+ ```
894
+ Step 1: Search
895
+ search_nodes({query: "slack"})
896
+ -> Returns: nodes-base.slack
897
+
898
+ Step 2: Get Operations (18s avg thinking time)
899
+ get_node({
900
+ nodeType: "nodes-base.slack",
901
+ includeExamples: true
902
+ })
903
+ -> Returns: operations list + example configs
904
+
905
+ Step 3: Validate Config
906
+ validate_node({
907
+ nodeType: "nodes-base.slack",
908
+ config: {resource: "channel", operation: "create"},
909
+ profile: "runtime"
910
+ })
911
+ -> Returns: validation result
912
+
913
+ Step 4: Use in Workflow
914
+ (Configuration ready!)
915
+ ```
916
+
917
+ **Most common pattern**: search -> get_node (18s average)
918
+
919
+ ---
920
+
921
+ ## Quick Comparison
922
+
923
+ | Tool/Mode | When to Use | Speed | Size |
924
+ | ------------------------------ | ------------------------ | ------ | ------ |
925
+ | `search_nodes` | Find by keyword | <20ms | Small |
926
+ | `get_node (standard)` | **Get config (DEFAULT)** | <10ms | 1-2K |
927
+ | `get_node (minimal)` | Quick metadata | <5ms | 200 |
928
+ | `get_node (full)` | Complex debugging | <100ms | 3-8K |
929
+ | `get_node (docs)` | Learn usage | Fast | Medium |
930
+ | `get_node (search_properties)` | Find specific field | Fast | Small |
931
+ | `get_node (versions)` | Check versions | Fast | Small |
932
+
933
+ **Best Practice**: search -> get_node(standard) -> validate
934
+
935
+ ---
936
+
937
+ ## nodeType Format (CRITICAL!)
938
+
939
+ **Search/Validate Tools** (SHORT prefix):
940
+
941
+ ```javascript
942
+ "nodes-base.slack";
943
+ "nodes-base.httpRequest";
944
+ "nodes-langchain.agent";
945
+ ```
946
+
947
+ **Workflow Tools** (FULL prefix):
948
+
949
+ ```javascript
950
+ "n8n-nodes-base.slack";
951
+ "n8n-nodes-base.httpRequest";
952
+ "@n8n/n8n-nodes-langchain.agent";
953
+ ```
954
+
955
+ **Conversion**: search_nodes returns BOTH formats:
956
+
957
+ ```javascript
958
+ {
959
+ "nodeType": "nodes-base.slack", // Use with get_node, validate_node
960
+ "workflowNodeType": "n8n-nodes-base.slack" // Use with n8n_create_workflow
961
+ }
962
+ ```
963
+
964
+ ---
965
+
966
+ ## Examples
967
+
968
+ ### Find and Configure HTTP Request
969
+
970
+ ```javascript
971
+ // Step 1: Search
972
+ search_nodes({ query: "http request" });
973
+
974
+ // Step 2: Get standard info
975
+ get_node({ nodeType: "nodes-base.httpRequest" });
976
+
977
+ // Step 3: Find auth options
978
+ get_node({
979
+ nodeType: "nodes-base.httpRequest",
980
+ mode: "search_properties",
981
+ propertyQuery: "authentication",
982
+ });
983
+
984
+ // Step 4: Validate config
985
+ validate_node({
986
+ nodeType: "nodes-base.httpRequest",
987
+ config: { method: "POST", url: "https://api.example.com" },
988
+ profile: "runtime",
989
+ });
990
+ ```
991
+
992
+ ### Explore AI Nodes
993
+
994
+ ```javascript
995
+ // Find all AI-related nodes
996
+ search_nodes({ query: "ai agent", source: "all" });
997
+
998
+ // Get AI Agent documentation
999
+ get_node({ nodeType: "nodes-langchain.agent", mode: "docs" });
1000
+
1001
+ // Get configuration details with examples
1002
+ get_node({
1003
+ nodeType: "nodes-langchain.agent",
1004
+ includeExamples: true,
1005
+ });
1006
+ ```
1007
+
1008
+ ### Check Version Compatibility
1009
+
1010
+ ```javascript
1011
+ // See all versions
1012
+ get_node({ nodeType: "nodes-base.executeWorkflow", mode: "versions" });
1013
+
1014
+ // Check breaking changes from v1 to v2
1015
+ get_node({
1016
+ nodeType: "nodes-base.executeWorkflow",
1017
+ mode: "breaking",
1018
+ fromVersion: "1.0",
1019
+ });
1020
+ ```
1021
+
1022
+ ---
1023
+
1024
+ # Configuration Validation Tools Guide
1025
+
1026
+ Complete guide for validating node configurations and workflows.
1027
+
1028
+ > See also: [validation-expert.md](validation-expert.md) for interpreting validation errors and advanced error handling strategies.
1029
+
1030
+ ---
1031
+
1032
+ ## Validation Philosophy
1033
+
1034
+ **Validate early, validate often**
1035
+
1036
+ Validation is typically iterative with validate -> fix cycles
1037
+
1038
+ ---
1039
+
1040
+ ## validate_node (UNIFIED VALIDATION)
1041
+
1042
+ The `validate_node` tool provides all validation capabilities with different modes.
1043
+
1044
+ ### Quick Check (mode="minimal")
1045
+
1046
+ **Speed**: <50ms
1047
+
1048
+ **Use when**: Checking what fields are required
1049
+
1050
+ ```javascript
1051
+ validate_node({
1052
+ nodeType: "nodes-base.slack",
1053
+ config: {}, // Empty to see all required fields
1054
+ mode: "minimal",
1055
+ });
1056
+ ```
1057
+
1058
+ **Returns**:
1059
+
1060
+ ```javascript
1061
+ {
1062
+ "valid": true, // Usually true (most nodes have no strict requirements)
1063
+ "missingRequiredFields": []
1064
+ }
1065
+ ```
1066
+
1067
+ **When to use**: Planning configuration, seeing basic requirements
1068
+
1069
+ ### Full Validation (mode="full", DEFAULT)
1070
+
1071
+ **Speed**: <100ms
1072
+
1073
+ **Use when**: Validating actual configuration before deployment
1074
+
1075
+ ```javascript
1076
+ validate_node({
1077
+ nodeType: "nodes-base.slack",
1078
+ config: {
1079
+ resource: "channel",
1080
+ operation: "create",
1081
+ channel: "general",
1082
+ },
1083
+ profile: "runtime", // Recommended!
1084
+ });
1085
+ // mode="full" is the default
1086
+ ```
1087
+
1088
+ ---
1089
+
1090
+ ## Validation Profiles
1091
+
1092
+ Choose based on your stage:
1093
+
1094
+ **minimal** - Only required fields
1095
+
1096
+ - Fastest
1097
+ - Most permissive
1098
+ - Use: Quick checks during editing
1099
+
1100
+ **runtime** - Values + types (**RECOMMENDED**)
1101
+
1102
+ - Balanced validation
1103
+ - Catches real errors
1104
+ - Use: Pre-deployment validation
1105
+
1106
+ **ai-friendly** - Reduce false positives
1107
+
1108
+ - For AI-generated configs
1109
+ - Tolerates minor issues
1110
+ - Use: When AI configures nodes
1111
+
1112
+ **strict** - Maximum validation
1113
+
1114
+ - Strictest rules
1115
+ - May have false positives
1116
+ - Use: Production deployment
1117
+
1118
+ ---
1119
+
1120
+ ## Validation Response
1121
+
1122
+ ```javascript
1123
+ {
1124
+ "nodeType": "nodes-base.slack",
1125
+ "workflowNodeType": "n8n-nodes-base.slack",
1126
+ "displayName": "Slack",
1127
+ "valid": false,
1128
+ "errors": [
1129
+ {
1130
+ "type": "missing_required",
1131
+ "property": "name",
1132
+ "message": "Channel name is required",
1133
+ "fix": "Provide a channel name (lowercase, no spaces, 1-80 characters)"
1134
+ }
1135
+ ],
1136
+ "warnings": [
1137
+ {
1138
+ "type": "best_practice",
1139
+ "property": "errorHandling",
1140
+ "message": "Slack API can have rate limits",
1141
+ "suggestion": "Add onError: 'continueRegularOutput' with retryOnFail"
1142
+ }
1143
+ ],
1144
+ "suggestions": [],
1145
+ "summary": {
1146
+ "hasErrors": true,
1147
+ "errorCount": 1,
1148
+ "warningCount": 1,
1149
+ "suggestionCount": 0
1150
+ }
1151
+ }
1152
+ ```
1153
+
1154
+ ### Error Types
1155
+
1156
+ - `missing_required` - Must fix
1157
+ - `invalid_value` - Must fix
1158
+ - `type_mismatch` - Must fix
1159
+ - `best_practice` - Should fix (warning)
1160
+ - `suggestion` - Optional improvement
1161
+
1162
+ ---
1163
+
1164
+ ## validate_workflow (STRUCTURE VALIDATION)
1165
+
1166
+ **Speed**: 100-500ms
1167
+
1168
+ **Use when**: Checking complete workflow before execution
1169
+
1170
+ **Syntax**:
1171
+
1172
+ ```javascript
1173
+ validate_workflow({
1174
+ workflow: {
1175
+ nodes: [...], // Array of nodes
1176
+ connections: {...} // Connections object
1177
+ },
1178
+ options: {
1179
+ validateNodes: true, // Default: true
1180
+ validateConnections: true, // Default: true
1181
+ validateExpressions: true, // Default: true
1182
+ profile: "runtime" // For node validation
1183
+ }
1184
+ })
1185
+ ```
1186
+
1187
+ **Validates**:
1188
+
1189
+ - Node configurations
1190
+ - Connection validity (no broken references)
1191
+ - Expression syntax ({{ }} patterns)
1192
+ - Workflow structure (triggers, flow)
1193
+ - AI connections (8 types)
1194
+
1195
+ **Returns**: Comprehensive validation report with errors, warnings, suggestions
1196
+
1197
+ ### Validate by Workflow ID
1198
+
1199
+ ```javascript
1200
+ // Validate workflow already in n8n
1201
+ n8n_validate_workflow({
1202
+ id: "workflow-id",
1203
+ options: {
1204
+ validateNodes: true,
1205
+ validateConnections: true,
1206
+ validateExpressions: true,
1207
+ profile: "runtime",
1208
+ },
1209
+ });
1210
+ ```
1211
+
1212
+ ---
1213
+
1214
+ ## Validation Loop Pattern
1215
+
1216
+ **Typical cycle**: 23s thinking, 58s fixing
1217
+
1218
+ ```
1219
+ 1. Configure node
1220
+ |
1221
+ 2. validate_node (23s thinking about errors)
1222
+ |
1223
+ 3. Fix errors
1224
+ |
1225
+ 4. validate_node again (58s fixing)
1226
+ |
1227
+ 5. Repeat until valid
1228
+ ```
1229
+
1230
+ **Example**:
1231
+
1232
+ ```javascript
1233
+ // Iteration 1
1234
+ let config = {
1235
+ resource: "channel",
1236
+ operation: "create",
1237
+ };
1238
+
1239
+ const result1 = validate_node({
1240
+ nodeType: "nodes-base.slack",
1241
+ config,
1242
+ profile: "runtime",
1243
+ });
1244
+ // -> Error: Missing "name"
1245
+
1246
+ // Iteration 2 (~58s later)
1247
+ config.name = "general";
1248
+
1249
+ const result2 = validate_node({
1250
+ nodeType: "nodes-base.slack",
1251
+ config,
1252
+ profile: "runtime",
1253
+ });
1254
+ // -> Valid!
1255
+ ```
1256
+
1257
+ ---
1258
+
1259
+ ## Auto-Sanitization System
1260
+
1261
+ **When it runs**: On ANY workflow update (create or update_partial)
1262
+
1263
+ **What it fixes** (automatically on ALL nodes):
1264
+
1265
+ 1. Binary operators (equals, contains, greaterThan) -> removes `singleValue`
1266
+ 2. Unary operators (isEmpty, isNotEmpty, true, false) -> adds `singleValue: true`
1267
+ 3. Invalid operator structures -> corrects to proper format
1268
+ 4. IF v2.2+ nodes -> adds complete `conditions.options` metadata
1269
+ 5. Switch v3.2+ nodes -> adds complete `conditions.options` for all rules
1270
+
1271
+ **What it CANNOT fix**:
1272
+
1273
+ - Broken connections (references to non-existent nodes)
1274
+ - Branch count mismatches (3 Switch rules but only 2 outputs)
1275
+ - Paradoxical corrupt states (API returns corrupt, rejects updates)
1276
+
1277
+ **Example**:
1278
+
1279
+ ```javascript
1280
+ // Before auto-sanitization
1281
+ {
1282
+ "type": "boolean",
1283
+ "operation": "equals",
1284
+ "singleValue": true // Binary operators shouldn't have this
1285
+ }
1286
+
1287
+ // After auto-sanitization (automatic!)
1288
+ {
1289
+ "type": "boolean",
1290
+ "operation": "equals"
1291
+ // singleValue removed automatically
1292
+ }
1293
+ ```
1294
+
1295
+ **Recovery tools**:
1296
+
1297
+ - `cleanStaleConnections` operation - removes broken connections
1298
+ - `n8n_autofix_workflow({id})` - preview/apply fixes
1299
+
1300
+ ---
1301
+
1302
+ ## n8n_autofix_workflow (AUTO-FIX TOOL)
1303
+
1304
+ **Use when**: Validation errors need automatic fixes
1305
+
1306
+ ```javascript
1307
+ // Preview fixes (default - doesn't apply)
1308
+ n8n_autofix_workflow({
1309
+ id: "workflow-id",
1310
+ applyFixes: false, // Preview mode
1311
+ confidenceThreshold: "medium", // high, medium, low
1312
+ });
1313
+
1314
+ // Apply fixes
1315
+ n8n_autofix_workflow({
1316
+ id: "workflow-id",
1317
+ applyFixes: true,
1318
+ });
1319
+ ```
1320
+
1321
+ **Fix Types**:
1322
+
1323
+ - `expression-format` - Fix expression syntax
1324
+ - `typeversion-correction` - Correct typeVersion
1325
+ - `error-output-config` - Fix error output settings
1326
+ - `webhook-missing-path` - Add missing webhook paths
1327
+ - `typeversion-upgrade` - Upgrade to latest version
1328
+ - `version-migration` - Apply version migrations
1329
+
1330
+ ---
1331
+
1332
+ ## Binary vs Unary Operators
1333
+
1334
+ **Binary operators** (compare two values):
1335
+
1336
+ - equals, notEquals, contains, notContains
1337
+ - greaterThan, lessThan, startsWith, endsWith
1338
+ - **Must NOT have** `singleValue: true`
1339
+
1340
+ **Unary operators** (check single value):
1341
+
1342
+ - isEmpty, isNotEmpty, true, false
1343
+ - **Must have** `singleValue: true`
1344
+
1345
+ **Auto-sanitization fixes these automatically!**
1346
+
1347
+ ---
1348
+
1349
+ ## Handling Validation Errors
1350
+
1351
+ > See also: [validation-expert.md](validation-expert.md) for comprehensive error interpretation and resolution strategies.
1352
+
1353
+ ### Process
1354
+
1355
+ ```
1356
+ 1. Read error message carefully
1357
+ 2. Check if it's a known false positive
1358
+ 3. Fix real errors
1359
+ 4. Validate again
1360
+ 5. Iterate until clean
1361
+ ```
1362
+
1363
+ ### Common Errors
1364
+
1365
+ **"Required field missing"**
1366
+ -> Add the field with appropriate value
1367
+
1368
+ **"Invalid value"**
1369
+ -> Check allowed values in get_node output
1370
+
1371
+ **"Type mismatch"**
1372
+ -> Convert to correct type (string/number/boolean)
1373
+
1374
+ **"Cannot have singleValue"**
1375
+ -> Auto-sanitization will fix on next update
1376
+
1377
+ **"Missing operator metadata"**
1378
+ -> Auto-sanitization will fix on next update
1379
+
1380
+ ### False Positives
1381
+
1382
+ Some validation warnings may be acceptable:
1383
+
1384
+ - Optional best practices
1385
+ - Node-specific edge cases
1386
+ - Profile-dependent issues
1387
+
1388
+ Use **ai-friendly** profile to reduce false positives.
1389
+
1390
+ ---
1391
+
1392
+ ## Validation Best Practices
1393
+
1394
+ ### Do
1395
+
1396
+ - Use **runtime** profile for pre-deployment
1397
+ - Validate after every configuration change
1398
+ - Fix errors immediately (avg 58s)
1399
+ - Iterate validation loop
1400
+ - Trust auto-sanitization for operator issues
1401
+ - Use `mode: "minimal"` for quick checks
1402
+ - Use `n8n_autofix_workflow` for bulk fixes
1403
+ - Activate workflows via API when ready (`activateWorkflow` operation)
1404
+
1405
+ ### Don't
1406
+
1407
+ - Skip validation before deployment
1408
+ - Ignore error messages
1409
+ - Use strict profile during development (too many warnings)
1410
+ - Assume validation passed (check result)
1411
+ - Try to manually fix auto-sanitization issues
1412
+
1413
+ ---
1414
+
1415
+ ## Example: Complete Validation Workflow
1416
+
1417
+ ```javascript
1418
+ // Step 1: Get node requirements (quick check)
1419
+ validate_node({
1420
+ nodeType: "nodes-base.slack",
1421
+ config: {},
1422
+ mode: "minimal"
1423
+ });
1424
+ // -> Know what's required
1425
+
1426
+ // Step 2: Configure node
1427
+ const config = {
1428
+ resource: "message",
1429
+ operation: "post",
1430
+ channel: "#general",
1431
+ text: "Hello!"
1432
+ };
1433
+
1434
+ // Step 3: Validate configuration (full validation)
1435
+ const result = validate_node({
1436
+ nodeType: "nodes-base.slack",
1437
+ config,
1438
+ profile: "runtime"
1439
+ });
1440
+
1441
+ // Step 4: Check result
1442
+ if (result.valid) {
1443
+ console.log("Configuration valid!");
1444
+ } else {
1445
+ console.log("Errors:", result.errors);
1446
+ // Fix and validate again
1447
+ }
1448
+
1449
+ // Step 5: Validate in workflow context
1450
+ validate_workflow({
1451
+ workflow: {
1452
+ nodes: [{...config as node...}],
1453
+ connections: {...}
1454
+ }
1455
+ });
1456
+
1457
+ // Step 6: Apply auto-fixes if needed
1458
+ n8n_autofix_workflow({
1459
+ id: "workflow-id",
1460
+ applyFixes: true
1461
+ });
1462
+ ```
1463
+
1464
+ ---
1465
+
1466
+ ## Validation Tool Selection
1467
+
1468
+ - **validate_node({mode: "minimal"})**: Quick required fields check
1469
+ - **validate_node({profile: "runtime"})**: Full config validation (**use this!**)
1470
+ - **validate_workflow**: Complete workflow check
1471
+ - **n8n_validate_workflow({id})**: Validate existing workflow
1472
+ - **n8n_autofix_workflow({id})**: Auto-fix common issues
1473
+
1474
+ ---
1475
+
1476
+ # Workflow Management Tools Guide
1477
+
1478
+ Complete guide for creating, updating, and managing n8n workflows.
1479
+
1480
+ > See also: [workflow-patterns.md](workflow-patterns.md) for architectural patterns and when to use each.
1481
+
1482
+ ---
1483
+
1484
+ ## Tool Availability
1485
+
1486
+ **Requires n8n API**: All tools in this guide need `N8N_API_URL` and `N8N_API_KEY` configured.
1487
+
1488
+ If unavailable, use template examples and validation-only workflows.
1489
+
1490
+ ---
1491
+
1492
+ ## n8n_create_workflow
1493
+
1494
+ **Speed**: 100-500ms
1495
+
1496
+ **Use when**: Creating new workflows from scratch
1497
+
1498
+ **Syntax**:
1499
+
1500
+ ```javascript
1501
+ n8n_create_workflow({
1502
+ name: "Webhook to Slack", // Required
1503
+ nodes: [...], // Required: array of nodes
1504
+ connections: {...}, // Required: connections object
1505
+ settings: {...} // Optional: workflow settings
1506
+ })
1507
+ ```
1508
+
1509
+ **Returns**: Created workflow with ID
1510
+
1511
+ **Example**:
1512
+
1513
+ ```javascript
1514
+ n8n_create_workflow({
1515
+ name: "Webhook to Slack",
1516
+ nodes: [
1517
+ {
1518
+ id: "webhook-1",
1519
+ name: "Webhook",
1520
+ type: "n8n-nodes-base.webhook", // Full prefix!
1521
+ typeVersion: 2,
1522
+ position: [250, 300],
1523
+ parameters: {
1524
+ path: "slack-notify",
1525
+ httpMethod: "POST",
1526
+ },
1527
+ },
1528
+ {
1529
+ id: "slack-1",
1530
+ name: "Slack",
1531
+ type: "n8n-nodes-base.slack",
1532
+ typeVersion: 2,
1533
+ position: [450, 300],
1534
+ parameters: {
1535
+ resource: "message",
1536
+ operation: "post",
1537
+ channel: "#general",
1538
+ text: "={{$json.body.message}}",
1539
+ },
1540
+ },
1541
+ ],
1542
+ connections: {
1543
+ Webhook: {
1544
+ main: [[{ node: "Slack", type: "main", index: 0 }]],
1545
+ },
1546
+ },
1547
+ });
1548
+ ```
1549
+
1550
+ **Notes**:
1551
+
1552
+ - Workflows created **inactive** (activate with `activateWorkflow` operation)
1553
+ - Auto-sanitization runs on creation
1554
+ - Validate before creating for best results
1555
+
1556
+ ---
1557
+
1558
+ ## n8n_update_partial_workflow (MOST USED!)
1559
+
1560
+ **Speed**: 50-200ms | **Uses**: 38,287 (most used tool!)
1561
+
1562
+ **Use when**: Making incremental changes to workflows
1563
+
1564
+ **Common pattern**: 56s average between edits (iterative building!)
1565
+
1566
+ ### 17 Operation Types
1567
+
1568
+ **Node Operations** (6 types):
1569
+
1570
+ 1. `addNode` - Add new node
1571
+ 2. `removeNode` - Remove node by ID or name
1572
+ 3. `updateNode` - Update node properties (use dot notation)
1573
+ 4. `moveNode` - Change position
1574
+ 5. `enableNode` - Enable disabled node
1575
+ 6. `disableNode` - Disable active node
1576
+
1577
+ **Connection Operations** (5 types): 7. `addConnection` - Connect nodes (supports smart params) 8. `removeConnection` - Remove connection (supports ignoreErrors) 9. `rewireConnection` - Change connection target 10. `cleanStaleConnections` - Auto-remove broken connections 11. `replaceConnections` - Replace entire connections object
1578
+
1579
+ **Metadata Operations** (4 types): 12. `updateSettings` - Workflow settings 13. `updateName` - Rename workflow 14. `addTag` - Add tag 15. `removeTag` - Remove tag
1580
+
1581
+ **Activation Operations** (2 types): 16. `activateWorkflow` - Activate workflow for automatic execution 17. `deactivateWorkflow` - Deactivate workflow
1582
+
1583
+ ### Intent Parameter (IMPORTANT!)
1584
+
1585
+ Always include `intent` for better responses:
1586
+
1587
+ ```javascript
1588
+ n8n_update_partial_workflow({
1589
+ id: "workflow-id",
1590
+ intent: "Add error handling for API failures", // Describe what you're doing
1591
+ operations: [...]
1592
+ })
1593
+ ```
1594
+
1595
+ ### Smart Parameters
1596
+
1597
+ > See also: [node-configuration.md](node-configuration.md) for IF/Switch node setup details.
1598
+
1599
+ **IF nodes** - Use semantic branch names:
1600
+
1601
+ ```javascript
1602
+ {
1603
+ type: "addConnection",
1604
+ source: "IF",
1605
+ target: "True Handler",
1606
+ branch: "true" // Instead of sourceIndex: 0
1607
+ }
1608
+
1609
+ {
1610
+ type: "addConnection",
1611
+ source: "IF",
1612
+ target: "False Handler",
1613
+ branch: "false" // Instead of sourceIndex: 1
1614
+ }
1615
+ ```
1616
+
1617
+ **Switch nodes** - Use semantic case numbers:
1618
+
1619
+ ```javascript
1620
+ {
1621
+ type: "addConnection",
1622
+ source: "Switch",
1623
+ target: "Handler A",
1624
+ case: 0
1625
+ }
1626
+
1627
+ {
1628
+ type: "addConnection",
1629
+ source: "Switch",
1630
+ target: "Handler B",
1631
+ case: 1
1632
+ }
1633
+ ```
1634
+
1635
+ ### AI Connection Types (8 types)
1636
+
1637
+ **Full support** for AI workflows:
1638
+
1639
+ ```javascript
1640
+ // Language Model
1641
+ {
1642
+ type: "addConnection",
1643
+ source: "OpenAI Chat Model",
1644
+ target: "AI Agent",
1645
+ sourceOutput: "ai_languageModel"
1646
+ }
1647
+
1648
+ // Tool
1649
+ {
1650
+ type: "addConnection",
1651
+ source: "HTTP Request Tool",
1652
+ target: "AI Agent",
1653
+ sourceOutput: "ai_tool"
1654
+ }
1655
+
1656
+ // Memory
1657
+ {
1658
+ type: "addConnection",
1659
+ source: "Window Buffer Memory",
1660
+ target: "AI Agent",
1661
+ sourceOutput: "ai_memory"
1662
+ }
1663
+
1664
+ // All 8 types:
1665
+ // - ai_languageModel
1666
+ // - ai_tool
1667
+ // - ai_memory
1668
+ // - ai_outputParser
1669
+ // - ai_embedding
1670
+ // - ai_vectorStore
1671
+ // - ai_document
1672
+ // - ai_textSplitter
1673
+ ```
1674
+
1675
+ ### Property Removal with undefined
1676
+
1677
+ Remove properties by setting them to `undefined`:
1678
+
1679
+ ```javascript
1680
+ // Remove a property
1681
+ {
1682
+ type: "updateNode",
1683
+ nodeName: "HTTP Request",
1684
+ updates: { onError: undefined }
1685
+ }
1686
+
1687
+ // Migrate from deprecated property
1688
+ {
1689
+ type: "updateNode",
1690
+ nodeName: "HTTP Request",
1691
+ updates: {
1692
+ continueOnFail: undefined, // Remove old
1693
+ onError: "continueErrorOutput" // Add new
1694
+ }
1695
+ }
1696
+ ```
1697
+
1698
+ ### Activation Operations
1699
+
1700
+ ```javascript
1701
+ // Activate workflow
1702
+ n8n_update_partial_workflow({
1703
+ id: "workflow-id",
1704
+ intent: "Activate workflow for production",
1705
+ operations: [{ type: "activateWorkflow" }],
1706
+ });
1707
+
1708
+ // Deactivate workflow
1709
+ n8n_update_partial_workflow({
1710
+ id: "workflow-id",
1711
+ intent: "Deactivate workflow for maintenance",
1712
+ operations: [{ type: "deactivateWorkflow" }],
1713
+ });
1714
+ ```
1715
+
1716
+ ### Example Usage
1717
+
1718
+ ```javascript
1719
+ n8n_update_partial_workflow({
1720
+ id: "workflow-id",
1721
+ intent: "Add transform node after IF condition",
1722
+ operations: [
1723
+ // Add node
1724
+ {
1725
+ type: "addNode",
1726
+ node: {
1727
+ name: "Transform",
1728
+ type: "n8n-nodes-base.set",
1729
+ position: [400, 300],
1730
+ parameters: {},
1731
+ },
1732
+ },
1733
+ // Connect it (smart parameter)
1734
+ {
1735
+ type: "addConnection",
1736
+ source: "IF",
1737
+ target: "Transform",
1738
+ branch: "true", // Clear and semantic!
1739
+ },
1740
+ ],
1741
+ });
1742
+ ```
1743
+
1744
+ ### Cleanup & Recovery
1745
+
1746
+ **cleanStaleConnections** - Remove broken connections:
1747
+
1748
+ ```javascript
1749
+ {
1750
+ type: "cleanStaleConnections";
1751
+ }
1752
+ ```
1753
+
1754
+ **rewireConnection** - Change target atomically:
1755
+
1756
+ ```javascript
1757
+ {
1758
+ type: "rewireConnection",
1759
+ source: "Webhook",
1760
+ from: "Old Handler",
1761
+ to: "New Handler"
1762
+ }
1763
+ ```
1764
+
1765
+ **Best-effort mode** - Apply what works:
1766
+
1767
+ ```javascript
1768
+ n8n_update_partial_workflow({
1769
+ id: "workflow-id",
1770
+ operations: [...],
1771
+ continueOnError: true // Don't fail if some operations fail
1772
+ })
1773
+ ```
1774
+
1775
+ **Validate before applying**:
1776
+
1777
+ ```javascript
1778
+ n8n_update_partial_workflow({
1779
+ id: "workflow-id",
1780
+ operations: [...],
1781
+ validateOnly: true // Preview without applying
1782
+ })
1783
+ ```
1784
+
1785
+ ---
1786
+
1787
+ ## n8n_deploy_template (QUICK START!)
1788
+
1789
+ **Speed**: 200-500ms
1790
+
1791
+ **Use when**: Deploying a template directly to n8n instance
1792
+
1793
+ ```javascript
1794
+ n8n_deploy_template({
1795
+ templateId: 2947, // Required: from n8n.io
1796
+ name: "My Weather to Slack", // Optional: custom name
1797
+ autoFix: true, // Default: auto-fix common issues
1798
+ autoUpgradeVersions: true, // Default: upgrade node versions
1799
+ stripCredentials: true, // Default: remove credential refs
1800
+ });
1801
+ ```
1802
+
1803
+ **Returns**:
1804
+
1805
+ - Workflow ID
1806
+ - Required credentials
1807
+ - Fixes applied
1808
+
1809
+ **Example**:
1810
+
1811
+ ```javascript
1812
+ // Deploy a webhook to Slack template
1813
+ const result = n8n_deploy_template({
1814
+ templateId: 2947,
1815
+ name: "Production Slack Notifier",
1816
+ });
1817
+
1818
+ // Result includes:
1819
+ // - id: "new-workflow-id"
1820
+ // - requiredCredentials: ["slack"]
1821
+ // - fixesApplied: ["typeVersion upgraded", "expression format fixed"]
1822
+ ```
1823
+
1824
+ ---
1825
+
1826
+ ## n8n_workflow_versions (VERSION CONTROL)
1827
+
1828
+ **Use when**: Managing workflow history, rollback, cleanup
1829
+
1830
+ ### List Versions
1831
+
1832
+ ```javascript
1833
+ n8n_workflow_versions({
1834
+ mode: "list",
1835
+ workflowId: "workflow-id",
1836
+ limit: 10,
1837
+ });
1838
+ ```
1839
+
1840
+ ### Get Specific Version
1841
+
1842
+ ```javascript
1843
+ n8n_workflow_versions({
1844
+ mode: "get",
1845
+ versionId: 123,
1846
+ });
1847
+ ```
1848
+
1849
+ ### Rollback to Previous Version
1850
+
1851
+ ```javascript
1852
+ n8n_workflow_versions({
1853
+ mode: "rollback",
1854
+ workflowId: "workflow-id",
1855
+ versionId: 123, // Optional: specific version
1856
+ validateBefore: true, // Default: validate before rollback
1857
+ });
1858
+ ```
1859
+
1860
+ ### Delete Versions
1861
+
1862
+ ```javascript
1863
+ // Delete specific version
1864
+ n8n_workflow_versions({
1865
+ mode: "delete",
1866
+ workflowId: "workflow-id",
1867
+ versionId: 123,
1868
+ });
1869
+
1870
+ // Delete all versions for workflow
1871
+ n8n_workflow_versions({
1872
+ mode: "delete",
1873
+ workflowId: "workflow-id",
1874
+ deleteAll: true,
1875
+ });
1876
+ ```
1877
+
1878
+ ### Prune Old Versions
1879
+
1880
+ ```javascript
1881
+ n8n_workflow_versions({
1882
+ mode: "prune",
1883
+ workflowId: "workflow-id",
1884
+ maxVersions: 10, // Keep 10 most recent
1885
+ });
1886
+ ```
1887
+
1888
+ ---
1889
+
1890
+ ## n8n_test_workflow (TRIGGER EXECUTION)
1891
+
1892
+ **Use when**: Testing workflow execution
1893
+
1894
+ **Auto-detects** trigger type (webhook, form, chat)
1895
+
1896
+ ```javascript
1897
+ // Test webhook workflow
1898
+ n8n_test_workflow({
1899
+ workflowId: "workflow-id",
1900
+ triggerType: "webhook", // Optional: auto-detected
1901
+ httpMethod: "POST",
1902
+ data: { message: "Hello!" },
1903
+ waitForResponse: true,
1904
+ timeout: 120000,
1905
+ });
1906
+
1907
+ // Test chat workflow
1908
+ n8n_test_workflow({
1909
+ workflowId: "workflow-id",
1910
+ triggerType: "chat",
1911
+ message: "Hello, AI agent!",
1912
+ sessionId: "session-123", // For conversation continuity
1913
+ });
1914
+ ```
1915
+
1916
+ ---
1917
+
1918
+ ## n8n_validate_workflow (by ID)
1919
+
1920
+ **Use when**: Validating workflow stored in n8n
1921
+
1922
+ ```javascript
1923
+ n8n_validate_workflow({
1924
+ id: "workflow-id",
1925
+ options: {
1926
+ validateNodes: true,
1927
+ validateConnections: true,
1928
+ validateExpressions: true,
1929
+ profile: "runtime",
1930
+ },
1931
+ });
1932
+ ```
1933
+
1934
+ ---
1935
+
1936
+ ## n8n_get_workflow
1937
+
1938
+ **Use when**: Retrieving workflow details
1939
+
1940
+ **Modes**:
1941
+
1942
+ - `full` (default) - Complete workflow JSON
1943
+ - `details` - Full + execution stats
1944
+ - `structure` - Nodes + connections only
1945
+ - `minimal` - ID, name, active, tags
1946
+
1947
+ ```javascript
1948
+ // Full workflow
1949
+ n8n_get_workflow({ id: "workflow-id" });
1950
+
1951
+ // Just structure
1952
+ n8n_get_workflow({ id: "workflow-id", mode: "structure" });
1953
+
1954
+ // Minimal metadata
1955
+ n8n_get_workflow({ id: "workflow-id", mode: "minimal" });
1956
+ ```
1957
+
1958
+ ---
1959
+
1960
+ ## n8n_executions (EXECUTION MANAGEMENT)
1961
+
1962
+ **Use when**: Managing workflow executions
1963
+
1964
+ ### Get Execution Details
1965
+
1966
+ ```javascript
1967
+ n8n_executions({
1968
+ action: "get",
1969
+ id: "execution-id",
1970
+ mode: "summary", // preview, summary, filtered, full, error
1971
+ });
1972
+
1973
+ // Error mode for debugging
1974
+ n8n_executions({
1975
+ action: "get",
1976
+ id: "execution-id",
1977
+ mode: "error",
1978
+ includeStackTrace: true,
1979
+ });
1980
+ ```
1981
+
1982
+ ### List Executions
1983
+
1984
+ ```javascript
1985
+ n8n_executions({
1986
+ action: "list",
1987
+ workflowId: "workflow-id",
1988
+ status: "error", // success, error, waiting
1989
+ limit: 100,
1990
+ });
1991
+ ```
1992
+
1993
+ ### Delete Execution
1994
+
1995
+ ```javascript
1996
+ n8n_executions({
1997
+ action: "delete",
1998
+ id: "execution-id",
1999
+ });
2000
+ ```
2001
+
2002
+ ---
2003
+
2004
+ ## Workflow Lifecycle
2005
+
2006
+ **Standard pattern**:
2007
+
2008
+ ```
2009
+ 1. CREATE
2010
+ n8n_create_workflow({...})
2011
+ -> Returns workflow ID
2012
+
2013
+ 2. VALIDATE
2014
+ n8n_validate_workflow({id})
2015
+ -> Check for errors
2016
+
2017
+ 3. EDIT (iterative! 56s avg between edits)
2018
+ n8n_update_partial_workflow({id, intent: "...", operations: [...]})
2019
+ -> Make changes
2020
+
2021
+ 4. VALIDATE AGAIN
2022
+ n8n_validate_workflow({id})
2023
+ -> Verify changes
2024
+
2025
+ 5. ACTIVATE
2026
+ n8n_update_partial_workflow({
2027
+ id,
2028
+ intent: "Activate workflow",
2029
+ operations: [{type: "activateWorkflow"}]
2030
+ })
2031
+ -> Workflow now runs on triggers!
2032
+
2033
+ 6. MONITOR
2034
+ n8n_executions({action: "list", workflowId: id})
2035
+ n8n_executions({action: "get", id: execution_id})
2036
+ ```
2037
+
2038
+ ---
2039
+
2040
+ ## Common Patterns from Telemetry
2041
+
2042
+ ### Pattern 1: Edit -> Validate (7,841 occurrences)
2043
+
2044
+ ```javascript
2045
+ n8n_update_partial_workflow({...})
2046
+ // | 23s (thinking about what to validate)
2047
+ n8n_validate_workflow({id})
2048
+ ```
2049
+
2050
+ ### Pattern 2: Validate -> Fix (7,266 occurrences)
2051
+
2052
+ ```javascript
2053
+ n8n_validate_workflow({id})
2054
+ // | 58s (fixing errors)
2055
+ n8n_update_partial_workflow({...})
2056
+ ```
2057
+
2058
+ ### Pattern 3: Iterative Building (31,464 occurrences)
2059
+
2060
+ ```javascript
2061
+ update -> update -> update -> ... (56s avg between edits)
2062
+ ```
2063
+
2064
+ **This shows**: Workflows are built **iteratively**, not in one shot!
2065
+
2066
+ ---
2067
+
2068
+ ## Workflow Management Best Practices
2069
+
2070
+ ### Do
2071
+
2072
+ - Build workflows **iteratively** (avg 56s between edits)
2073
+ - Include **intent** parameter for better responses
2074
+ - Use **smart parameters** (branch, case) for clarity
2075
+ - Validate **after** significant changes
2076
+ - Use **atomic mode** (default) for critical updates
2077
+ - Specify **sourceOutput** for AI connections
2078
+ - Clean stale connections after node renames/deletions
2079
+ - Use `n8n_deploy_template` for quick starts
2080
+ - Activate workflows via API when ready
2081
+
2082
+ ### Don't
2083
+
2084
+ - Try to build workflows in one shot
2085
+ - Skip the intent parameter
2086
+ - Use sourceIndex when branch/case available
2087
+ - Skip validation before activation
2088
+ - Forget to test workflows after creation
2089
+ - Ignore auto-sanitization behavior
2090
+
2091
+ ---
2092
+
2093
+ ## Workflow Management Summary
2094
+
2095
+ **Most Important**:
2096
+
2097
+ 1. **n8n_update_partial_workflow** is most-used tool (38,287 uses)
2098
+ 2. Include **intent** parameter for better responses
2099
+ 3. Workflows built **iteratively** (56s avg between edits)
2100
+ 4. Use **smart parameters** (branch="true", case=0) for clarity
2101
+ 5. **AI connections** supported (8 types with sourceOutput)
2102
+ 6. **Workflow activation** supported via API (`activateWorkflow` operation)
2103
+ 7. **Auto-sanitization** runs on all operations
2104
+ 8. Use **n8n_deploy_template** for quick starts
2105
+
2106
+ **Additional Tools**:
2107
+
2108
+ - `n8n_deploy_template` - Deploy templates directly
2109
+ - `n8n_workflow_versions` - Version control & rollback
2110
+ - `n8n_test_workflow` - Trigger execution
2111
+ - `n8n_executions` - Manage executions