feat: Complete Skill #5 - n8n Node Configuration (ALL 5 SKILLS COMPLETE!)

Implements operation-aware node configuration with progressive discovery.
Completes the final skill in the 5-skill n8n meta-skill collection.

Files created:
- 4 evaluations testing dependencies, operations, conditional fields, tool selection
- SKILL.md (692 lines) - Configuration workflow, progressive discovery, patterns
- DEPENDENCIES.md (671 lines) - displayOptions mechanism, dependency patterns
- OPERATION_PATTERNS.md (783 lines) - 20+ nodes with common configurations
- README.md (380 lines) - Skill metadata with usage statistics

Key features:
- Operation-aware configuration (resource + operation = requirements)
- Property dependencies (displayOptions show/hide rules)
- Progressive discovery (essentials → dependencies → info)
- Configuration workflow (identify → discover → configure → validate → iterate)
- 4 common node patterns (resource/operation, HTTP, database, conditional)
- Tool selection guide (get_node_essentials 91.7% success rate)
- Dependency troubleshooting (field visibility, conditional requirements)
- 20+ node configuration examples with gotchas

Progressive discovery strategy:
1. get_node_essentials (91.7% success, 18s avg from search)
2. get_property_dependencies (when dependencies unclear)
3. get_node_info (only when necessary, full schema)

Property dependency patterns:
- Boolean toggle (sendBody → body)
- Resource/operation cascade (different ops → different fields)
- Type-specific config (string vs number conditions)
- Method-specific fields (GET vs POST)

Common node patterns covered:
- HTTP Request (GET/POST/PUT/DELETE with auth, query, body)
- Webhook (basic/auth/response, $json.body gotcha)
- Slack (post/update/create channel)
- Gmail (send/get with filters)
- Postgres (query/insert/update with parameters)
- Set (fixed values/mapping with types)
- Code (per-item/all-items, no expressions!)
- IF (string/number/boolean, unary vs binary)
- Switch (rules with fallback)
- OpenAI (chat completion with system prompt)
- Schedule (daily/interval/cron with timezone)

Key insights:
- 91.7% configurations succeed with essentials only
- Average 56 seconds between configuration edits (iterative)
- 9,835 essentials calls vs fewer full schema calls
- 18 seconds average from node search to essentials
- Different operations = different requirements (always check!)

Top 5 gotchas documented:
1. Webhook data under $json.body (not $json)
2. POST needs sendBody: true
3. Slack channel format (#name for public)
4. SQL parameterized queries (prevent injection)
5. Schedule timezone must be explicit (DST handling)

displayOptions mechanism:
- show: Field appears when conditions match
- hide: Field disappears when conditions match
- AND logic: All conditions must match
- OR logic: Any value matches
- Nested: Parent value controls child structure

Total: ~2,526 lines across 8 files

Based on analysis of 38,287 workflow updates and 9,835 essentials calls.

🎉 ALL 5 CORE SKILLS NOW COMPLETE! 🎉

Skills completed:
1.  n8n Expression Syntax (1,275 lines)
2.  n8n MCP Tools Expert (1,325 lines)
3.  n8n Workflow Patterns (3,932 lines)
4.  n8n Validation Expert (2,553 lines)
5.  n8n Node Configuration (2,526 lines)

Total: ~11,611 lines across 36 files + 22 evaluations
All skills data-driven from 447,557 real MCP tool usage events.

🤖 Conceived by Romuald Członkowski - https://www.aiadvisors.pl/en
This commit is contained in:
czlonkowski
2025-10-20 11:07:32 +02:00
parent 68770a2e14
commit 97e1d21793
8 changed files with 2906 additions and 0 deletions

View File

@@ -0,0 +1,13 @@
{
"id": "node-config-001",
"skills": ["n8n-node-configuration"],
"query": "I'm configuring an HTTP Request node with method=POST. What other fields become required or visible when I set this?",
"expected_behavior": [
"Explains property dependencies (displayOptions)",
"Identifies that sendBody becomes visible for POST",
"Explains that body becomes required when sendBody=true",
"Suggests using get_property_dependencies to see all dependencies",
"Provides guidance on checking conditional requirements",
"May reference DEPENDENCIES.md for detailed dependency rules"
]
}

View File

@@ -0,0 +1,13 @@
{
"id": "node-config-002",
"skills": ["n8n-node-configuration"],
"query": "How do I configure a Slack node to post a message? What fields are required for this specific operation?",
"expected_behavior": [
"Identifies need to set resource='message' and operation='post'",
"Explains operation-specific required fields (channel, text)",
"Suggests using get_node_essentials with operation context",
"Provides example configuration for this operation",
"May reference OPERATION_PATTERNS.md for Slack patterns",
"Explains that different operations have different requirements"
]
}

View File

@@ -0,0 +1,13 @@
{
"id": "node-config-003",
"skills": ["n8n-node-configuration"],
"query": "My IF node configuration is valid with operation='equals', but when I change to operation='isEmpty', validation fails. Why?",
"expected_behavior": [
"Explains that isEmpty is a unary operator (single value)",
"Identifies that value2 is not needed for unary operators",
"Explains singleValue property dependency",
"Mentions auto-sanitization will fix operator structure",
"Suggests using get_property_dependencies to understand operator rules",
"May reference DEPENDENCIES.md for operator-specific dependencies"
]
}

View File

@@ -0,0 +1,13 @@
{
"id": "node-config-004",
"skills": ["n8n-node-configuration"],
"query": "Should I use get_node_essentials or get_node_info when configuring a new node? What's the difference?",
"expected_behavior": [
"Recommends get_node_essentials for configuration (91.7% success rate)",
"Explains essentials provides required fields and options",
"Explains get_node_info provides full schema (use when essentials insufficient)",
"Suggests starting with essentials, escalate to info if needed",
"May provide telemetry insight (essentials used 9,835 times)",
"References progressive disclosure approach"
]
}