{"id":"acefeec5-6753-4c4c-9cb6-603a190bf508","shortId":"q9Csbx","kind":"skill","title":"n8n-validation-expert","tagline":"Expert guide for interpreting and fixing n8n validation errors.","description":"# n8n Validation Expert\n\nExpert guide for interpreting and fixing n8n validation errors.\n\n## When to Use\n- You need to interpret or fix validation errors in an n8n workflow.\n- The task involves `missing_required`, `invalid_value`, expression failures, or iterative validate-fix loops.\n- You want concrete remediation guidance for workflow validation output.\n\n---\n\n## Validation Philosophy\n\n**Validate early, validate often**\n\nValidation is typically iterative:\n- Expect validation feedback loops\n- Usually 2-3 validate → fix cycles\n- Average: 23s thinking about errors, 58s fixing them\n\n**Key insight**: Validation is an iterative process, not one-shot!\n\n---\n\n## Error Severity Levels\n\n### 1. Errors (Must Fix)\n**Blocks workflow execution** - Must be resolved before activation\n\n**Types**:\n- `missing_required` - Required field not provided\n- `invalid_value` - Value doesn't match allowed options\n- `type_mismatch` - Wrong data type (string instead of number)\n- `invalid_reference` - Referenced node doesn't exist\n- `invalid_expression` - Expression syntax error\n\n**Example**:\n```json\n{\n  \"type\": \"missing_required\",\n  \"property\": \"channel\",\n  \"message\": \"Channel name is required\",\n  \"fix\": \"Provide a channel name (lowercase, no spaces, 1-80 characters)\"\n}\n```\n\n### 2. Warnings (Should Fix)\n**Doesn't block execution** - Workflow can be activated but may have issues\n\n**Types**:\n- `best_practice` - Recommended but not required\n- `deprecated` - Using old API/feature\n- `performance` - Potential performance issue\n\n**Example**:\n```json\n{\n  \"type\": \"best_practice\",\n  \"property\": \"errorHandling\",\n  \"message\": \"Slack API can have rate limits\",\n  \"suggestion\": \"Add onError: 'continueRegularOutput' with retryOnFail\"\n}\n```\n\n### 3. Suggestions (Optional)\n**Nice to have** - Improvements that could enhance workflow\n\n**Types**:\n- `optimization` - Could be more efficient\n- `alternative` - Better way to achieve same result\n\n---\n\n## The Validation Loop\n\n### Pattern from Telemetry\n**7,841 occurrences** of this pattern:\n\n```\n1. Configure node\n   ↓\n2. validate_node (23 seconds thinking about errors)\n   ↓\n3. Read error messages carefully\n   ↓\n4. Fix errors\n   ↓\n5. validate_node again (58 seconds fixing)\n   ↓\n6. Repeat until valid (usually 2-3 iterations)\n```\n\n### Example\n```javascript\n// Iteration 1\nlet config = {\n  resource: \"channel\",\n  operation: \"create\"\n};\n\nconst result1 = validate_node({\n  nodeType: \"nodes-base.slack\",\n  config,\n  profile: \"runtime\"\n});\n// → Error: Missing \"name\"\n\n// ⏱️  23 seconds thinking...\n\n// Iteration 2\nconfig.name = \"general\";\n\nconst result2 = validate_node({\n  nodeType: \"nodes-base.slack\",\n  config,\n  profile: \"runtime\"\n});\n// → Error: Missing \"text\"\n\n// ⏱️  58 seconds fixing...\n\n// Iteration 3\nconfig.text = \"Hello!\";\n\nconst result3 = validate_node({\n  nodeType: \"nodes-base.slack\",\n  config,\n  profile: \"runtime\"\n});\n// → Valid! ✅\n```\n\n**This is normal!** Don't be discouraged by multiple iterations.\n\n---\n\n## Validation Profiles\n\nChoose the right profile for your stage:\n\n### minimal\n**Use when**: Quick checks during editing\n\n**Validates**:\n- Only required fields\n- Basic structure\n\n**Pros**: Fastest, most permissive\n**Cons**: May miss issues\n\n### runtime (RECOMMENDED)\n**Use when**: Pre-deployment validation\n\n**Validates**:\n- Required fields\n- Value types\n- Allowed values\n- Basic dependencies\n\n**Pros**: Balanced, catches real errors\n**Cons**: Some edge cases missed\n\n**This is the recommended profile for most use cases**\n\n### ai-friendly\n**Use when**: AI-generated configurations\n\n**Validates**:\n- Same as runtime\n- Reduces false positives\n- More tolerant of minor issues\n\n**Pros**: Less noisy for AI workflows\n**Cons**: May allow some questionable configs\n\n### strict\n**Use when**: Production deployment, critical workflows\n\n**Validates**:\n- Everything\n- Best practices\n- Performance concerns\n- Security issues\n\n**Pros**: Maximum safety\n**Cons**: Many warnings, some false positives\n\n---\n\n## Common Error Types\n\n### 1. missing_required\n**What it means**: A required field is not provided\n\n**How to fix**:\n1. Use `get_node` to see required fields\n2. Add the missing field to your configuration\n3. Provide an appropriate value\n\n**Example**:\n```javascript\n// Error\n{\n  \"type\": \"missing_required\",\n  \"property\": \"channel\",\n  \"message\": \"Channel name is required\"\n}\n\n// Fix\nconfig.channel = \"#general\";\n```\n\n### 2. invalid_value\n**What it means**: Value doesn't match allowed options\n\n**How to fix**:\n1. Check error message for allowed values\n2. Use `get_node` to see options\n3. Update to a valid value\n\n**Example**:\n```javascript\n// Error\n{\n  \"type\": \"invalid_value\",\n  \"property\": \"operation\",\n  \"message\": \"Operation must be one of: post, update, delete\",\n  \"current\": \"send\"\n}\n\n// Fix\nconfig.operation = \"post\";  // Use valid operation\n```\n\n### 3. type_mismatch\n**What it means**: Wrong data type for field\n\n**How to fix**:\n1. Check expected type in error message\n2. Convert value to correct type\n\n**Example**:\n```javascript\n// Error\n{\n  \"type\": \"type_mismatch\",\n  \"property\": \"limit\",\n  \"message\": \"Expected number, got string\",\n  \"current\": \"100\"\n}\n\n// Fix\nconfig.limit = 100;  // Number, not string\n```\n\n### 4. invalid_expression\n**What it means**: Expression syntax error\n\n**How to fix**:\n1. Use n8n Expression Syntax skill\n2. Check for missing `{{}}` or typos\n3. Verify node/field references\n\n**Example**:\n```javascript\n// Error\n{\n  \"type\": \"invalid_expression\",\n  \"property\": \"text\",\n  \"message\": \"Invalid expression: $json.name\",\n  \"current\": \"$json.name\"\n}\n\n// Fix\nconfig.text = \"={{$json.name}}\";  // Add {{}}\n```\n\n### 5. invalid_reference\n**What it means**: Referenced node doesn't exist\n\n**How to fix**:\n1. Check node name spelling\n2. Verify node exists in workflow\n3. Update reference to correct name\n\n**Example**:\n```javascript\n// Error\n{\n  \"type\": \"invalid_reference\",\n  \"property\": \"expression\",\n  \"message\": \"Node 'HTTP Requets' does not exist\",\n  \"current\": \"={{$node['HTTP Requets'].json.data}}\"\n}\n\n// Fix - correct typo\nconfig.expression = \"={{$node['HTTP Request'].json.data}}\";\n```\n\n---\n\n## Auto-Sanitization System\n\n### What It Does\n**Automatically fixes common operator structure issues** on ANY workflow update\n\n**Runs when**:\n- `n8n_create_workflow`\n- `n8n_update_partial_workflow`\n- Any workflow save operation\n\n### What It Fixes\n\n#### 1. Binary Operators (Two Values)\n**Operators**: equals, notEquals, contains, notContains, greaterThan, lessThan, startsWith, endsWith\n\n**Fix**: Removes `singleValue` property (binary operators compare two values)\n\n**Before**:\n```javascript\n{\n  \"type\": \"boolean\",\n  \"operation\": \"equals\",\n  \"singleValue\": true  // ❌ Wrong!\n}\n```\n\n**After** (automatic):\n```javascript\n{\n  \"type\": \"boolean\",\n  \"operation\": \"equals\"\n  // singleValue removed ✅\n}\n```\n\n#### 2. Unary Operators (One Value)\n**Operators**: isEmpty, isNotEmpty, true, false\n\n**Fix**: Adds `singleValue: true` (unary operators check single value)\n\n**Before**:\n```javascript\n{\n  \"type\": \"boolean\",\n  \"operation\": \"isEmpty\"\n  // Missing singleValue ❌\n}\n```\n\n**After** (automatic):\n```javascript\n{\n  \"type\": \"boolean\",\n  \"operation\": \"isEmpty\",\n  \"singleValue\": true  // ✅ Added\n}\n```\n\n#### 3. IF/Switch Metadata\n**Fix**: Adds complete `conditions.options` metadata for IF v2.2+ and Switch v3.2+\n\n### What It CANNOT Fix\n\n#### 1. Broken Connections\nReferences to non-existent nodes\n\n**Solution**: Use `cleanStaleConnections` operation in `n8n_update_partial_workflow`\n\n#### 2. Branch Count Mismatches\n3 Switch rules but only 2 output connections\n\n**Solution**: Add missing connections or remove extra rules\n\n#### 3. Paradoxical Corrupt States\nAPI returns corrupt data but rejects updates\n\n**Solution**: May require manual database intervention\n\n---\n\n## False Positives\n\n### What Are They?\nValidation warnings that are technically \"wrong\" but acceptable in your use case\n\n### Common False Positives\n\n#### 1. \"Missing error handling\"\n**Warning**: No error handling configured\n\n**When acceptable**:\n- Simple workflows where failures are obvious\n- Testing/development workflows\n- Non-critical notifications\n\n**When to fix**: Production workflows handling important data\n\n#### 2. \"No retry logic\"\n**Warning**: Node doesn't retry on failure\n\n**When acceptable**:\n- APIs with their own retry logic\n- Idempotent operations\n- Manual trigger workflows\n\n**When to fix**: Flaky external services, production automation\n\n#### 3. \"Missing rate limiting\"\n**Warning**: No rate limiting for API calls\n\n**When acceptable**:\n- Internal APIs with no limits\n- Low-volume workflows\n- APIs with server-side rate limiting\n\n**When to fix**: Public APIs, high-volume workflows\n\n#### 4. \"Unbounded query\"\n**Warning**: SELECT without LIMIT\n\n**When acceptable**:\n- Small known datasets\n- Aggregation queries\n- Development/testing\n\n**When to fix**: Production queries on large tables\n\n### Reducing False Positives\n\n**Use `ai-friendly` profile**:\n```javascript\nvalidate_node({\n  nodeType: \"nodes-base.slack\",\n  config: {...},\n  profile: \"ai-friendly\"  // Fewer false positives\n})\n```\n\n---\n\n## Validation Result Structure\n\n### Complete Response\n```javascript\n{\n  \"valid\": false,\n  \"errors\": [\n    {\n      \"type\": \"missing_required\",\n      \"property\": \"channel\",\n      \"message\": \"Channel name is required\",\n      \"fix\": \"Provide a channel name (lowercase, no spaces)\"\n    }\n  ],\n  \"warnings\": [\n    {\n      \"type\": \"best_practice\",\n      \"property\": \"errorHandling\",\n      \"message\": \"Slack API can have rate limits\",\n      \"suggestion\": \"Add onError: 'continueRegularOutput'\"\n    }\n  ],\n  \"suggestions\": [\n    {\n      \"type\": \"optimization\",\n      \"message\": \"Consider using batch operations for multiple messages\"\n    }\n  ],\n  \"summary\": {\n    \"hasErrors\": true,\n    \"errorCount\": 1,\n    \"warningCount\": 1,\n    \"suggestionCount\": 1\n  }\n}\n```\n\n### How to Read It\n\n#### 1. Check `valid` field\n```javascript\nif (result.valid) {\n  // ✅ Configuration is valid\n} else {\n  // ❌ Has errors - must fix before deployment\n}\n```\n\n#### 2. Fix errors first\n```javascript\nresult.errors.forEach(error => {\n  console.log(`Error in ${error.property}: ${error.message}`);\n  console.log(`Fix: ${error.fix}`);\n});\n```\n\n#### 3. Review warnings\n```javascript\nresult.warnings.forEach(warning => {\n  console.log(`Warning: ${warning.message}`);\n  console.log(`Suggestion: ${warning.suggestion}`);\n  // Decide if you need to address this\n});\n```\n\n#### 4. Consider suggestions\n```javascript\n// Optional improvements\n// Not required but may enhance workflow\n```\n\n---\n\n## Workflow Validation\n\n### validate_workflow (Structure)\n**Validates entire workflow**, not just individual nodes\n\n**Checks**:\n1. **Node configurations** - Each node valid\n2. **Connections** - No broken references\n3. **Expressions** - Syntax and references valid\n4. **Flow** - Logical workflow structure\n\n**Example**:\n```javascript\nvalidate_workflow({\n  workflow: {\n    nodes: [...],\n    connections: {...}\n  },\n  options: {\n    validateNodes: true,\n    validateConnections: true,\n    validateExpressions: true,\n    profile: \"runtime\"\n  }\n})\n```\n\n### Common Workflow Errors\n\n#### 1. Broken Connections\n```json\n{\n  \"error\": \"Connection from 'Transform' to 'NonExistent' - target node not found\"\n}\n```\n\n**Fix**: Remove stale connection or create missing node\n\n#### 2. Circular Dependencies\n```json\n{\n  \"error\": \"Circular dependency detected: Node A → Node B → Node A\"\n}\n```\n\n**Fix**: Restructure workflow to remove loop\n\n#### 3. Multiple Start Nodes\n```json\n{\n  \"warning\": \"Multiple trigger nodes found - only one will execute\"\n}\n```\n\n**Fix**: Remove extra triggers or split into separate workflows\n\n#### 4. Disconnected Nodes\n```json\n{\n  \"warning\": \"Node 'Transform' is not connected to workflow flow\"\n}\n```\n\n**Fix**: Connect node or remove if unused\n\n---\n\n## Recovery Strategies\n\n### Strategy 1: Start Fresh\n**When**: Configuration is severely broken\n\n**Steps**:\n1. Note required fields from `get_node`\n2. Create minimal valid configuration\n3. Add features incrementally\n4. Validate after each addition\n\n### Strategy 2: Binary Search\n**When**: Workflow validates but executes incorrectly\n\n**Steps**:\n1. Remove half the nodes\n2. Validate and test\n3. If works: problem is in removed nodes\n4. If fails: problem is in remaining nodes\n5. Repeat until problem isolated\n\n### Strategy 3: Clean Stale Connections\n**When**: \"Node not found\" errors\n\n**Steps**:\n```javascript\nn8n_update_partial_workflow({\n  id: \"workflow-id\",\n  operations: [{\n    type: \"cleanStaleConnections\"\n  }]\n})\n```\n\n### Strategy 4: Use Auto-fix\n**When**: Operator structure errors\n\n**Steps**:\n```javascript\nn8n_autofix_workflow({\n  id: \"workflow-id\",\n  applyFixes: false  // Preview first\n})\n\n// Review fixes, then apply\nn8n_autofix_workflow({\n  id: \"workflow-id\",\n  applyFixes: true\n})\n```\n\n---\n\n## Best Practices\n\n### ✅ Do\n\n- Validate after every significant change\n- Read error messages completely\n- Fix errors iteratively (one at a time)\n- Use `runtime` profile for pre-deployment\n- Check `valid` field before assuming success\n- Trust auto-sanitization for operator issues\n- Use `get_node` when unclear about requirements\n- Document false positives you accept\n\n### ❌ Don't\n\n- Skip validation before activation\n- Try to fix all errors at once\n- Ignore error messages\n- Use `strict` profile during development (too noisy)\n- Assume validation passed (always check result)\n- Manually fix auto-sanitization issues\n- Deploy with unresolved errors\n- Ignore all warnings (some are important!)\n\n---\n\n## Detailed Guides\n\nFor comprehensive error catalogs and false positive examples:\n\n- **ERROR_CATALOG.md** - Complete list of error types with examples\n- **FALSE_POSITIVES.md** - When warnings are acceptable\n\n---\n\n## Summary\n\n**Key Points**:\n1. **Validation is iterative** (avg 2-3 cycles, 23s + 58s)\n2. **Errors must be fixed**, warnings are optional\n3. **Auto-sanitization** fixes operator structures automatically\n4. **Use runtime profile** for balanced validation\n5. **False positives exist** - learn to recognize them\n6. **Read error messages** - they contain fix guidance\n\n**Validation Process**:\n1. Validate → Read errors → Fix → Validate again\n2. Repeat until valid (usually 2-3 iterations)\n3. Review warnings and decide if acceptable\n4. Deploy with confidence\n\n**Related Skills**:\n- n8n MCP Tools Expert - Use validation tools correctly\n- n8n Expression Syntax - Fix expression errors\n- n8n Node Configuration - Understand required fields\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.","tags":["n8n","validation","expert","antigravity","awesome","skills","sickn33","agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding"],"capabilities":["skill","source-sickn33","skill-n8n-validation-expert","topic-agent-skills","topic-agentic-skills","topic-ai-agent-skills","topic-ai-agents","topic-ai-coding","topic-ai-workflows","topic-antigravity","topic-antigravity-skills","topic-claude-code","topic-claude-code-skills","topic-codex-cli","topic-codex-skills"],"categories":["antigravity-awesome-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/sickn33/antigravity-awesome-skills/n8n-validation-expert","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add sickn33/antigravity-awesome-skills","source_repo":"https://github.com/sickn33/antigravity-awesome-skills","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 34666 github stars · SKILL.md body (14,696 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-23T06:51:37.028Z","embedding":null,"createdAt":"2026-04-18T21:41:14.412Z","updatedAt":"2026-04-23T06:51:37.028Z","lastSeenAt":"2026-04-23T06:51:37.028Z","tsv":"'-3':81,297,1638,1696 '-80':176 '1':107,175,265,302,493,508,560,619,665,713,791,887,962,1166,1168,1170,1175,1251,1292,1380,1389,1421,1632,1683 '100':646,649 '2':80,178,268,296,325,516,545,567,626,671,718,832,905,914,993,1192,1257,1314,1396,1411,1426,1637,1642,1690,1695 '23':271,321 '23s':86,1640 '3':229,276,344,524,574,605,677,724,869,909,925,1025,1207,1262,1334,1401,1430,1452,1650,1698 '4':281,653,1063,1226,1268,1357,1405,1438,1475,1658,1705 '5':284,699,1446,1665 '58':288,340 '58s':90,1641 '6':291,1673 '7':259 '841':260 'accept':954,972,1005,1037,1071,1560,1628,1704 'achiev':250 'activ':118,189,1566 'ad':868 'add':224,517,698,843,873,918,1148,1402 'addit':1409 'address':1224 'aggreg':1075 'ai':434,439,458,1091,1102 'ai-friend':433,1090,1101 'ai-gener':438 'allow':132,410,462,555,565 'altern':246 'alway':1587 'api':218,929,1006,1034,1039,1047,1058,1142 'api/feature':204 'appli':1500 'applyfix':1493,1508 'appropri':527 'ask':1764 'assum':1540,1584 'auto':759,1478,1544,1593,1652 'auto-fix':1477 'auto-sanit':758,1543,1592,1651 'autofix':1487,1502 'autom':1024 'automat':765,824,860,1657 'averag':85 'avg':1636 'b':1325 'balanc':415,1663 'basic':387,412 'batch':1157 'best':195,212,475,1136,1510 'better':247 'binari':792,809,1412 'block':111,184 'boolean':817,827,854,863 'boundari':1772 'branch':906 'broken':888,1260,1293,1387 'call':1035 'cannot':885 'care':280 'case':422,432,958 'catalog':1611 'catch':416 'chang':1517 'channel':161,163,170,306,536,538,1120,1122,1129 'charact':177 'check':380,561,620,672,714,848,1176,1250,1536,1588 'choos':369 'circular':1315,1319 'clarif':1766 'clean':1453 'cleanstaleconnect':898,1473 'clear':1739 'common':490,767,959,1289 'compar':811 'complet':874,1110,1521,1617 'comprehens':1609 'con':393,419,460,484 'concern':478 'concret':58 'conditions.options':875 'confid':1708 'config':304,315,334,353,465,1099 'config.channel':543 'config.expression':753 'config.limit':648 'config.name':326 'config.operation':600 'config.text':345,696 'configur':266,441,523,970,1182,1253,1384,1400,1727 'connect':889,916,920,1258,1279,1294,1297,1309,1366,1371,1455 'consid':1155,1227 'console.log':1199,1204,1213,1216 'const':309,328,347 'contain':799,1678 'continueregularoutput':226,1150 'convert':627 'correct':630,728,751,1718 'corrupt':927,931 'could':237,242 'count':907 'creat':308,778,1311,1397 'criteria':1775 'critic':471,983 'current':597,645,693,745 'cycl':84,1639 'data':137,612,932,992 'databas':940 'dataset':1074 'decid':1219,1702 'delet':596 'depend':413,1316,1320 'deploy':403,470,1191,1535,1596,1706 'deprec':201 'describ':1743 'detail':1606 'detect':1321 'develop':1581 'development/testing':1077 'disconnect':1358 'discourag':363 'document':1556 'doesn':129,147,182,552,707,999 'earli':68 'edg':421 'edit':382 'effici':245 'els':1185 'endswith':804 'enhanc':238,1236 'entir':1244 'environ':1755 'environment-specif':1754 'equal':797,819,829 'error':13,25,36,89,104,108,154,275,278,283,318,337,418,491,531,562,582,624,634,661,683,732,964,968,1115,1187,1194,1198,1200,1291,1296,1318,1460,1483,1519,1523,1571,1575,1599,1610,1620,1643,1675,1686,1724 'error.fix':1206 'error.message':1203 'error.property':1202 'error_catalog.md':1616 'errorcount':1165 'errorhandl':215,1139 'everi':1515 'everyth':474 'exampl':155,209,299,529,580,632,681,730,1273,1615,1623 'execut':113,185,1347,1418 'exist':149,709,721,744,894,1668 'expect':75,621,641 'expert':4,5,16,17,1714,1760 'express':48,151,152,655,659,668,686,691,737,1263,1720,1723 'extern':1021 'extra':923,1350 'fail':1440 'failur':49,976,1003 'fals':447,488,841,942,960,1087,1105,1114,1494,1557,1613,1666 'false_positives.md':1624 'fastest':390 'featur':1403 'feedback':77 'fewer':1104 'field':123,386,407,501,515,520,615,1178,1392,1538,1730 'first':1195,1496 'fix':10,22,34,54,83,91,110,167,181,282,290,342,507,542,559,599,618,647,664,695,712,750,766,790,805,842,872,886,987,1019,1056,1080,1126,1189,1193,1205,1306,1328,1348,1370,1479,1498,1522,1569,1591,1646,1654,1679,1687,1722 'flaki':1020 'flow':1269,1369 'found':1305,1343,1459 'fresh':1382 'friend':435,1092,1103 'general':327,544 'generat':440 'get':510,569,1394,1550 'got':643 'greaterthan':801 'guid':6,18,1607 'guidanc':60,1680 'half':1423 'handl':965,969,990 'haserror':1163 'hello':346 'high':1060 'high-volum':1059 'http':740,747,755 'id':1467,1470,1489,1492,1504,1507 'idempot':1012 'if/switch':870 'ignor':1574,1600 'import':991,1605 'improv':235,1231 'incorrect':1419 'increment':1404 'individu':1248 'input':1769 'insight':94 'instead':140 'intern':1038 'interpret':8,20,32 'intervent':941 'invalid':46,126,143,150,546,584,654,685,690,700,734 'involv':43 'isempti':838,856,865 'isnotempti':839 'isol':1450 'issu':193,208,396,453,480,770,1548,1595 'iter':51,74,98,298,301,324,343,366,1524,1635,1697 'javascript':300,530,581,633,682,731,815,825,852,861,1094,1112,1179,1196,1210,1229,1274,1462,1485 'json':156,210,1295,1317,1338,1360 'json.data':749,757 'json.name':692,694,697 'key':93,1630 'known':1073 'larg':1084 'learn':1669 'less':455 'lessthan':802 'let':303 'level':106 'limit':222,639,1028,1032,1042,1053,1069,1146,1731 'list':1618 'logic':996,1011,1270 'loop':55,78,255,1333 'low':1044 'low-volum':1043 'lowercas':172,1131 'mani':485 'manual':939,1014,1590 'match':131,554,1740 'maximum':482 'may':191,394,461,937,1235 'mcp':1712 'mean':498,550,610,658,704 'messag':162,216,279,537,563,588,625,640,689,738,1121,1140,1154,1161,1520,1576,1676 'metadata':871,876 'minim':376,1398 'minor':452 'mismatch':135,607,637,908 'miss':44,120,158,319,338,395,423,494,519,533,674,857,919,963,1026,1117,1312,1777 'multipl':365,1160,1335,1340 'must':109,114,590,1188,1644 'n8n':2,11,14,23,39,667,777,780,901,1463,1486,1501,1711,1719,1725 'n8n-validation-expert':1 'name':164,171,320,539,716,729,1123,1130 'need':30,1222 'nice':232 'node':146,267,270,286,312,331,350,511,570,706,715,720,739,746,754,895,998,1096,1249,1252,1255,1278,1303,1313,1322,1324,1326,1337,1342,1359,1362,1372,1395,1425,1437,1445,1457,1551,1726 'node/field':679 'nodes-base.slack':314,333,352,1098 'nodetyp':313,332,351,1097 'noisi':456,1583 'non':893,982 'non-crit':981 'non-exist':892 'nonexist':1301 'normal':359 'notcontain':800 'note':1390 'notequ':798 'notif':984 'number':142,642,650 'obvious':978 'occurr':261 'often':70 'old':203 'one':102,592,835,1345,1525 'one-shot':101 'onerror':225,1149 'oper':307,587,589,604,768,787,793,796,810,818,828,834,837,847,855,864,899,1013,1158,1471,1481,1547,1655 'optim':241,1153 'option':133,231,556,573,1230,1280,1649 'output':64,915,1749 'paradox':926 'partial':782,903,1465 'pass':1586 'pattern':256,264 'perform':205,207,477 'permiss':392,1770 'philosophi':66 'point':1631 'posit':448,489,943,961,1088,1106,1558,1614,1667 'post':594,601 'potenti':206 'practic':196,213,476,1137,1511 'pre':402,1534 'pre-deploy':401,1533 'preview':1495 'problem':1433,1441,1449 'process':99,1682 'product':469,988,1023,1081 'profil':316,335,354,368,372,428,1093,1100,1287,1531,1579,1661 'properti':160,214,535,586,638,687,736,808,1119,1138 'pros':389,414,454,481 'provid':125,168,504,525,1127 'public':1057 'queri':1065,1076,1082 'question':464 'quick':379 'rate':221,1027,1031,1052,1145 'read':277,1173,1518,1674,1685 'real':417 'recogn':1671 'recommend':197,398,427 'recoveri':1377 'reduc':446,1086 'refer':144,680,701,726,735,890,1261,1266 'referenc':145,705 'reject':934 'relat':1709 'remain':1444 'remedi':59 'remov':806,831,922,1307,1332,1349,1374,1422,1436 'repeat':292,1447,1691 'request':756 'requet':741,748 'requir':45,121,122,159,166,200,385,406,495,500,514,534,541,938,1118,1125,1233,1391,1555,1729,1768 'resolv':116 'resourc':305 'respons':1111 'restructur':1329 'result':252,1108,1589 'result.errors.foreach':1197 'result.valid':1181 'result.warnings.foreach':1211 'result1':310 'result2':329 'result3':348 'retri':995,1001,1010 'retryonfail':228 'return':930 'review':1208,1497,1699,1761 'right':371 'rule':911,924 'run':775 'runtim':317,336,355,397,445,1288,1530,1660 'safeti':483,1771 'sanit':760,1545,1594,1653 'save':786 'scope':1742 'search':1413 'second':272,289,322,341 'secur':479 'see':513,572 'select':1067 'send':598 'separ':1355 'server':1050 'server-sid':1049 'servic':1022 'sever':105,1386 'shot':103 'side':1051 'signific':1516 'simpl':973 'singl':849 'singlevalu':807,820,830,844,858,866 'skill':670,1710,1734 'skill-n8n-validation-expert' 'skip':1563 'slack':217,1141 'small':1072 'solut':896,917,936 'source-sickn33' 'space':174,1133 'specif':1756 'spell':717 'split':1353 'stage':375 'stale':1308,1454 'start':1336,1381 'startswith':803 'state':928 'step':1388,1420,1461,1484 'stop':1762 'strategi':1378,1379,1410,1451,1474 'strict':466,1578 'string':139,644,652 'structur':388,769,1109,1242,1272,1482,1656 'substitut':1752 'success':1541,1774 'suggest':223,230,1147,1151,1217,1228 'suggestioncount':1169 'summari':1162,1629 'switch':881,910 'syntax':153,660,669,1264,1721 'system':761 'tabl':1085 'target':1302 'task':42,1738 'technic':951 'telemetri':258 'test':1429,1758 'testing/development':979 'text':339,688 'think':87,273,323 'time':1528 'toler':450 'tool':1713,1717 'topic-agent-skills' 'topic-agentic-skills' 'topic-ai-agent-skills' 'topic-ai-agents' 'topic-ai-coding' 'topic-ai-workflows' 'topic-antigravity' 'topic-antigravity-skills' 'topic-claude-code' 'topic-claude-code-skills' 'topic-codex-cli' 'topic-codex-skills' 'transform':1299,1363 'treat':1747 'tri':1567 'trigger':1015,1341,1351 'true':821,840,845,867,1164,1282,1284,1286,1509 'trust':1542 'two':794,812 'type':119,134,138,157,194,211,240,409,492,532,583,606,613,622,631,635,636,684,733,816,826,853,862,1116,1135,1152,1472,1621 'typic':73 'typo':676,752 'unari':833,846 'unbound':1064 'unclear':1553 'understand':1728 'unresolv':1598 'unus':1376 'updat':575,595,725,774,781,902,935,1464 'use':28,202,377,399,431,436,467,509,568,602,666,897,957,1089,1156,1476,1529,1549,1577,1659,1715,1732 'usual':79,295,1694 'v2.2':879 'v3.2':882 'valid':3,12,15,24,35,53,63,65,67,69,71,76,82,95,254,269,285,294,311,330,349,356,367,383,404,405,442,473,578,603,947,1095,1107,1113,1177,1184,1239,1240,1243,1256,1267,1275,1399,1406,1416,1427,1513,1537,1564,1585,1633,1664,1681,1684,1688,1693,1716,1757 'validate-fix':52 'validateconnect':1283 'validateexpress':1285 'validatenod':1281 'valu':47,127,128,408,411,528,547,551,566,579,585,628,795,813,836,850 'verifi':678,719 'volum':1045,1061 'want':57 'warn':179,486,948,966,997,1029,1066,1134,1209,1212,1214,1339,1361,1602,1626,1647,1700 'warning.message':1215 'warning.suggestion':1218 'warningcount':1167 'way':248 'without':1068 'work':1432 'workflow':40,62,112,186,239,459,472,723,773,779,783,785,904,974,980,989,1016,1046,1062,1237,1238,1241,1245,1271,1276,1277,1290,1330,1356,1368,1415,1466,1469,1488,1491,1503,1506 'workflow-id':1468,1490,1505 'wrong':136,611,822,952","prices":[{"id":"71aa336c-3fd4-4afd-a606-7d790b307452","listingId":"acefeec5-6753-4c4c-9cb6-603a190bf508","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"sickn33","category":"antigravity-awesome-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T21:41:14.412Z"}],"sources":[{"listingId":"acefeec5-6753-4c4c-9cb6-603a190bf508","source":"github","sourceId":"sickn33/antigravity-awesome-skills/n8n-validation-expert","sourceUrl":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/n8n-validation-expert","isPrimary":false,"firstSeenAt":"2026-04-18T21:41:14.412Z","lastSeenAt":"2026-04-23T06:51:37.028Z"}],"details":{"listingId":"acefeec5-6753-4c4c-9cb6-603a190bf508","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sickn33","slug":"n8n-validation-expert","github":{"repo":"sickn33/antigravity-awesome-skills","stars":34666,"topics":["agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows","antigravity","antigravity-skills","claude-code","claude-code-skills","codex-cli","codex-skills","cursor","cursor-skills","developer-tools","gemini-cli","gemini-skills","kiro","mcp","skill-library"],"license":"mit","html_url":"https://github.com/sickn33/antigravity-awesome-skills","pushed_at":"2026-04-23T06:41:03Z","description":"Installable GitHub library of 1,400+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and more. Includes installer CLI, bundles, workflows, and official/community skill collections.","skill_md_sha":"40049505648dcc74921934e94256d9f55882846a","skill_md_path":"skills/n8n-validation-expert/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/n8n-validation-expert"},"layout":"multi","source":"github","category":"antigravity-awesome-skills","frontmatter":{"name":"n8n-validation-expert","description":"Expert guide for interpreting and fixing n8n validation errors."},"skills_sh_url":"https://skills.sh/sickn33/antigravity-awesome-skills/n8n-validation-expert"},"updatedAt":"2026-04-23T06:51:37.028Z"}}