[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6R4R5GPWSMMPJ5PGDTS0GG9":3,"skill-same:01M6R4R5GPWSMMPJ5PGDTS0GG9":76},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":36,"linkOnly":37,"markdownContent":38,"markdownBody":39,"frontMatter":40,"refName":41,"commitSha":42,"skillDirectory":43,"forksCount":44,"repositoryHtmlUrl":45,"repositoryHomepageUrl":6,"ownerHtmlUrl":46,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":47,"install":48,"resources":61},"01M6R4R5GPWSMMPJ5PGDTS0GG9","n8n-node-configuration",null,"Operation-aware node configuration guidance. Use when configuring nodes, understanding property dependencies, determining required fields, choosing between get_node_essentials and get_node_info, or learning common configuration patterns by node type.","Mishit18\u002Fclaude-code-templates","Mishit18","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F244127857?v=4","01M6QXBYKWM76HSKYDNWSKKE41","Mishit Sharma","01M6QXBYRJ0CAVM51S1RTEKTZZ",1,"MIT","https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fworkflow-automation\u002Fn8n\u002Fn8n-node-configuration\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35],"n8n node configuration","node","configuration","n8n","when","fields","operation","type","get","dependencies","info","patterns","guidance","Nodes","use","common","learning","2026-11-10 10:12:30",false,"---\nname: n8n-node-configuration\ndescription: Operation-aware node configuration guidance. Use when configuring nodes, understanding property dependencies, determining required fields, choosing between get_node_essentials and get_node_info, or learning common configuration patterns by node type.\n---\n\n# n8n Node Configuration\n\nExpert guidance for operation-aware node configuration with property dependencies.\n\n---\n\n## Configuration Philosophy\n\n**Progressive disclosure**: Start minimal, add complexity as needed\n\nConfiguration best practices:\n- get_node_essentials is the most used discovery pattern\n- 56 seconds average between configuration edits\n- 91.7% success rate with essentials-based configuration\n\n**Key insight**: Most configurations need only essentials, not full schema!\n\n---\n\n## Core Concepts\n\n### 1. Operation-Aware Configuration\n\n**Not all fields are always required** - it depends on operation!\n\n**Example**: Slack node\n```javascript\n\u002F\u002F For operation='post'\n{\n  \"resource\": \"message\",\n  \"operation\": \"post\",\n  \"channel\": \"#general\",  \u002F\u002F Required for post\n  \"text\": \"Hello!\"        \u002F\u002F Required for post\n}\n\n\u002F\u002F For operation='update'\n{\n  \"resource\": \"message\",\n  \"operation\": \"update\",\n  \"messageId\": \"123\",     \u002F\u002F Required for update (different!)\n  \"text\": \"Updated!\"      \u002F\u002F Required for update\n  \u002F\u002F channel NOT required for update\n}\n```\n\n**Key**: Resource + operation determine which fields are required!\n\n### 2. Property Dependencies\n\n**Fields appear\u002Fdisappear based on other field values**\n\n**Example**: HTTP Request node\n```javascript\n\u002F\u002F When method='GET'\n{\n  \"method\": \"GET\",\n  \"url\": \"https:\u002F\u002Fapi.example.com\"\n  \u002F\u002F sendBody not shown (GET doesn't have body)\n}\n\n\u002F\u002F When method='POST'\n{\n  \"method\": \"POST\",\n  \"url\": \"https:\u002F\u002Fapi.example.com\",\n  \"sendBody\": true,       \u002F\u002F Now visible!\n  \"body\": {               \u002F\u002F Required when sendBody=true\n    \"contentType\": \"json\",\n    \"content\": {...}\n  }\n}\n```\n\n**Mechanism**: displayOptions control field visibility\n\n### 3. Progressive Discovery\n\n**Use the right tool for the right job**:\n\n1. **get_node_essentials** (91.7% success rate)\n   - Quick overview\n   - Required fields\n   - Common options\n   - **Use first** - covers 90% of needs\n\n2. **get_property_dependencies** (for complex nodes)\n   - Shows what fields depend on others\n   - Reveals conditional requirements\n   - Use when essentials isn't enough\n\n3. **get_node_info** (full schema)\n   - Complete documentation\n   - All possible fields\n   - Use when essentials + dependencies insufficient\n\n---\n\n## Configuration Workflow\n\n### Standard Process\n\n```\n1. Identify node type and operation\n   ↓\n2. Use get_node_essentials\n   ↓\n3. Configure required fields\n   ↓\n4. Validate configuration\n   ↓\n5. If dependencies unclear → get_property_dependencies\n   ↓\n6. Add optional fields as needed\n   ↓\n7. Validate again\n   ↓\n8. Deploy\n```\n\n### Example: Configuring HTTP Request\n\n**Step 1**: Identify what you need\n```javascript\n\u002F\u002F Goal: POST JSON to API\n```\n\n**Step 2**: Get essentials\n```javascript\nconst info = get_node_essentials({\n  nodeType: \"nodes-base.httpRequest\"\n});\n\n\u002F\u002F Returns: method, url, sendBody, body, authentication required\u002Foptional\n```\n\n**Step 3**: Minimal config\n```javascript\n{\n  \"method\": \"POST\",\n  \"url\": \"https:\u002F\u002Fapi.example.com\u002Fcreate\",\n  \"authentication\": \"none\"\n}\n```\n\n**Step 4**: Validate\n```javascript\nvalidate_node_operation({\n  nodeType: \"nodes-base.httpRequest\",\n  config,\n  profile: \"runtime\"\n});\n\u002F\u002F → Error: \"sendBody required for POST\"\n```\n\n**Step 5**: Add required field\n```javascript\n{\n  \"method\": \"POST\",\n  \"url\": \"https:\u002F\u002Fapi.example.com\u002Fcreate\",\n  \"authentication\": \"none\",\n  \"sendBody\": true\n}\n```\n\n**Step 6**: Validate again\n```javascript\nvalidate_node_operation({...});\n\u002F\u002F → Error: \"body required when sendBody=true\"\n```\n\n**Step 7**: Complete configuration\n```javascript\n{\n  \"method\": \"POST\",\n  \"url\": \"https:\u002F\u002Fapi.example.com\u002Fcreate\",\n  \"authentication\": \"none\",\n  \"sendBody\": true,\n  \"body\": {\n    \"contentType\": \"json\",\n    \"content\": {\n      \"name\": \"={{$json.name}}\",\n      \"email\": \"={{$json.email}}\"\n    }\n  }\n}\n```\n\n**Step 8**: Final validation\n```javascript\nvalidate_node_operation({...});\n\u002F\u002F → Valid! ✅\n```\n\n---\n\n## get_node_essentials vs get_node_info\n\n### Use get_node_essentials When:\n\n**✅ Starting configuration** (91.7% success rate)\n```javascript\nget_node_essentials({\n  nodeType: \"nodes-base.slack\"\n});\n```\n\n**Returns**:\n- Required fields\n- Common options\n- Basic examples\n- Operation list\n\n**Fast**: ~18 seconds average (from search → essentials)\n\n### Use get_node_info When:\n\n**✅ Essentials insufficient**\n```javascript\nget_node_info({\n  nodeType: \"nodes-base.slack\"\n});\n```\n\n**Returns**:\n- Full schema\n- All properties\n- Complete documentation\n- Advanced options\n\n**Slower**: More data to process\n\n### Decision Tree\n\n```\n┌─────────────────────────────────┐\n│ Starting new node config?       │\n├─────────────────────────────────┤\n│ YES → get_node_essentials       │\n└─────────────────────────────────┘\n         ↓\n┌─────────────────────────────────┐\n│ Essentials has what you need?   │\n├─────────────────────────────────┤\n│ YES → Configure with essentials │\n│ NO  → Continue                  │\n└─────────────────────────────────┘\n         ↓\n┌─────────────────────────────────┐\n│ Need dependency info?           │\n├─────────────────────────────────┤\n│ YES → get_property_dependencies │\n│ NO  → Continue                  │\n└─────────────────────────────────┘\n         ↓\n┌─────────────────────────────────┐\n│ Still need more details?        │\n├─────────────────────────────────┤\n│ YES → get_node_info             │\n└─────────────────────────────────┘\n```\n\n---\n\n## Property Dependencies Deep Dive\n\n### displayOptions Mechanism\n\n**Fields have visibility rules**:\n\n```javascript\n{\n  \"name\": \"body\",\n  \"displayOptions\": {\n    \"show\": {\n      \"sendBody\": [true],\n      \"method\": [\"POST\", \"PUT\", \"PATCH\"]\n    }\n  }\n}\n```\n\n**Translation**: \"body\" field shows when:\n- sendBody = true AND\n- method = POST, PUT, or PATCH\n\n### Common Dependency Patterns\n\n#### Pattern 1: Boolean Toggle\n\n**Example**: HTTP Request sendBody\n```javascript\n\u002F\u002F sendBody controls body visibility\n{\n  \"sendBody\": true   \u002F\u002F → body field appears\n}\n```\n\n#### Pattern 2: Operation Switch\n\n**Example**: Slack resource\u002Foperation\n```javascript\n\u002F\u002F Different operations → different fields\n{\n  \"resource\": \"message\",\n  \"operation\": \"post\"\n  \u002F\u002F → Shows: channel, text, attachments, etc.\n}\n\n{\n  \"resource\": \"message\",\n  \"operation\": \"update\"\n  \u002F\u002F → Shows: messageId, text (different fields!)\n}\n```\n\n#### Pattern 3: Type Selection\n\n**Example**: IF node conditions\n```javascript\n{\n  \"type\": \"string\",\n  \"operation\": \"contains\"\n  \u002F\u002F → Shows: value1, value2\n}\n\n{\n  \"type\": \"boolean\",\n  \"operation\": \"equals\"\n  \u002F\u002F → Shows: value1, value2, different operators\n}\n```\n\n### Using get_property_dependencies\n\n**Example**:\n```javascript\nconst deps = get_property_dependencies({\n  nodeType: \"nodes-base.httpRequest\"\n});\n\n\u002F\u002F Returns dependency tree\n{\n  \"dependencies\": {\n    \"body\": {\n      \"shows_when\": {\n        \"sendBody\": [true],\n        \"method\": [\"POST\", \"PUT\", \"PATCH\", \"DELETE\"]\n      }\n    },\n    \"queryParameters\": {\n      \"shows_when\": {\n        \"sendQuery\": [true]\n      }\n    }\n  }\n}\n```\n\n**Use this when**: Validation fails and you don't understand why field is missing\u002Frequired\n\n---\n\n## Common Node Patterns\n\n### Pattern 1: Resource\u002FOperation Nodes\n\n**Examples**: Slack, Google Sheets, Airtable\n\n**Structure**:\n```javascript\n{\n  \"resource\": \"\u003Centity>\",      \u002F\u002F What type of thing\n  \"operation\": \"\u003Caction>\",     \u002F\u002F What to do with it\n  \u002F\u002F ... operation-specific fields\n}\n```\n\n**How to configure**:\n1. Choose resource\n2. Choose operation\n3. Use get_node_essentials to see operation-specific requirements\n4. Configure required fields\n\n### Pattern 2: HTTP-Based Nodes\n\n**Examples**: HTTP Request, Webhook\n\n**Structure**:\n```javascript\n{\n  \"method\": \"\u003CHTTP_METHOD>\",\n  \"url\": \"\u003Cendpoint>\",\n  \"authentication\": \"\u003Ctype>\",\n  \u002F\u002F ... method-specific fields\n}\n```\n\n**Dependencies**:\n- POST\u002FPUT\u002FPATCH → sendBody available\n- sendBody=true → body required\n- authentication != \"none\" → credentials required\n\n### Pattern 3: Database Nodes\n\n**Examples**: Postgres, MySQL, MongoDB\n\n**Structure**:\n```javascript\n{\n  \"operation\": \"\u003Cquery|insert|update|delete>\",\n  \u002F\u002F ... operation-specific fields\n}\n```\n\n**Dependencies**:\n- operation=\"executeQuery\" → query required\n- operation=\"insert\" → table + values required\n- operation=\"update\" → table + values + where required\n\n### Pattern 4: Conditional Logic Nodes\n\n**Examples**: IF, Switch, Merge\n\n**Structure**:\n```javascript\n{\n  \"conditions\": {\n    \"\u003Ctype>\": [\n      {\n        \"operation\": \"\u003Coperator>\",\n        \"value1\": \"...\",\n        \"value2\": \"...\"  \u002F\u002F Only for binary operators\n      }\n    ]\n  }\n}\n```\n\n**Dependencies**:\n- Binary operators (equals, contains, etc.) → value1 + value2\n- Unary operators (isEmpty, isNotEmpty) → value1 only + singleValue: true\n\n---\n\n## Operation-Specific Configuration\n\n### Slack Node Examples\n\n#### Post Message\n```javascript\n{\n  \"resource\": \"message\",\n  \"operation\": \"post\",\n  \"channel\": \"#general\",      \u002F\u002F Required\n  \"text\": \"Hello!\",           \u002F\u002F Required\n  \"attachments\": [],          \u002F\u002F Optional\n  \"blocks\": []                \u002F\u002F Optional\n}\n```\n\n#### Update Message\n```javascript\n{\n  \"resource\": \"message\",\n  \"operation\": \"update\",\n  \"messageId\": \"1234567890\",  \u002F\u002F Required (different from post!)\n  \"text\": \"Updated!\",         \u002F\u002F Required\n  \"channel\": \"#general\"       \u002F\u002F Optional (can be inferred)\n}\n```\n\n#### Create Channel\n```javascript\n{\n  \"resource\": \"channel\",\n  \"operation\": \"create\",\n  \"name\": \"new-channel\",      \u002F\u002F Required\n  \"isPrivate\": false          \u002F\u002F Optional\n  \u002F\u002F Note: text NOT required for this operation\n}\n```\n\n### HTTP Request Node Examples\n\n#### GET Request\n```javascript\n{\n  \"method\": \"GET\",\n  \"url\": \"https:\u002F\u002Fapi.example.com\u002Fusers\",\n  \"authentication\": \"predefinedCredentialType\",\n  \"nodeCredentialType\": \"httpHeaderAuth\",\n  \"sendQuery\": true,                    \u002F\u002F Optional\n  \"queryParameters\": {                  \u002F\u002F Shows when sendQuery=true\n    \"parameters\": [\n      {\n        \"name\": \"limit\",\n        \"value\": \"100\"\n      }\n    ]\n  }\n}\n```\n\n#### POST with JSON\n```javascript\n{\n  \"method\": \"POST\",\n  \"url\": \"https:\u002F\u002Fapi.example.com\u002Fusers\",\n  \"authentication\": \"none\",\n  \"sendBody\": true,                     \u002F\u002F Required for POST\n  \"body\": {                             \u002F\u002F Required when sendBody=true\n    \"contentType\": \"json\",\n    \"content\": {\n      \"name\": \"John Doe\",\n      \"email\": \"john@example.com\"\n    }\n  }\n}\n```\n\n### IF Node Examples\n\n#### String Comparison (Binary)\n```javascript\n{\n  \"conditions\": {\n    \"string\": [\n      {\n        \"value1\": \"={{$json.status}}\",\n        \"operation\": \"equals\",\n        \"value2\": \"active\"              \u002F\u002F Binary: needs value2\n      }\n    ]\n  }\n}\n```\n\n#### Empty Check (Unary)\n```javascript\n{\n  \"conditions\": {\n    \"string\": [\n      {\n        \"value1\": \"={{$json.email}}\",\n        \"operation\": \"isEmpty\",\n        \u002F\u002F No value2 - unary operator\n        \"singleValue\": true             \u002F\u002F Auto-added by sanitization\n      }\n    ]\n  }\n}\n```\n\n---\n\n## Handling Conditional Requirements\n\n### Example: HTTP Request Body\n\n**Scenario**: body field required, but only sometimes\n\n**Rule**:\n```\nbody is required when:\n  - sendBody = true AND\n  - method IN (POST, PUT, PATCH, DELETE)\n```\n\n**How to discover**:\n```javascript\n\u002F\u002F Option 1: Read validation error\nvalidate_node_operation({...});\n\u002F\u002F Error: \"body required when sendBody=true\"\n\n\u002F\u002F Option 2: Check dependencies\nget_property_dependencies({\n  nodeType: \"nodes-base.httpRequest\"\n});\n\u002F\u002F Shows: body → shows_when: sendBody=[true], method=[POST,PUT,PATCH,DELETE]\n\n\u002F\u002F Option 3: Try minimal config and iterate\n\u002F\u002F Start without body, validation will tell you if needed\n```\n\n### Example: IF Node singleValue\n\n**Scenario**: singleValue property appears for unary operators\n\n**Rule**:\n```\nsingleValue should be true when:\n  - operation IN (isEmpty, isNotEmpty, true, false)\n```\n\n**Good news**: Auto-sanitization fixes this!\n\n**Manual check**:\n```javascript\nget_property_dependencies({\n  nodeType: \"nodes-base.if\"\n});\n\u002F\u002F Shows operator-specific dependencies\n```\n\n---\n\n## Configuration Anti-Patterns\n\n### ❌ Don't: Over-configure Upfront\n\n**Bad**:\n```javascript\n\u002F\u002F Adding every possible field\n{\n  \"method\": \"GET\",\n  \"url\": \"...\",\n  \"sendQuery\": false,\n  \"sendHeaders\": false,\n  \"sendBody\": false,\n  \"timeout\": 10000,\n  \"ignoreResponseCode\": false,\n  \u002F\u002F ... 20 more optional fields\n}\n```\n\n**Good**:\n```javascript\n\u002F\u002F Start minimal\n{\n  \"method\": \"GET\",\n  \"url\": \"...\",\n  \"authentication\": \"none\"\n}\n\u002F\u002F Add fields only when needed\n```\n\n### ❌ Don't: Skip Validation\n\n**Bad**:\n```javascript\n\u002F\u002F Configure and deploy without validating\nconst config = {...};\nn8n_update_partial_workflow({...});  \u002F\u002F YOLO\n```\n\n**Good**:\n```javascript\n\u002F\u002F Validate before deploying\nconst config = {...};\nconst result = validate_node_operation({...});\nif (result.valid) {\n  n8n_update_partial_workflow({...});\n}\n```\n\n### ❌ Don't: Ignore Operation Context\n\n**Bad**:\n```javascript\n\u002F\u002F Same config for all Slack operations\n{\n  \"resource\": \"message\",\n  \"operation\": \"post\",\n  \"channel\": \"#general\",\n  \"text\": \"...\"\n}\n\n\u002F\u002F Then switching operation without updating config\n{\n  \"resource\": \"message\",\n  \"operation\": \"update\",  \u002F\u002F Changed\n  \"channel\": \"#general\",  \u002F\u002F Wrong field for update!\n  \"text\": \"...\"\n}\n```\n\n**Good**:\n```javascript\n\u002F\u002F Check requirements when changing operation\nget_node_essentials({\n  nodeType: \"nodes-base.slack\"\n});\n\u002F\u002F See what update operation needs (messageId, not channel)\n```\n\n---\n\n## Best Practices\n\n### ✅ Do\n\n1. **Start with get_node_essentials**\n   - 91.7% success rate\n   - Faster than get_node_info\n   - Sufficient for most needs\n\n2. **Validate iteratively**\n   - Configure → Validate → Fix → Repeat\n   - Average 2-3 iterations is normal\n   - Read validation errors carefully\n\n3. **Use property dependencies when stuck**\n   - If field seems missing, check dependencies\n   - Understand what controls field visibility\n   - get_property_dependencies reveals rules\n\n4. **Respect operation context**\n   - Different operations = different requirements\n   - Always check essentials when changing operation\n   - Don't assume configs are transferable\n\n5. **Trust auto-sanitization**\n   - Operator structure fixed automatically\n   - Don't manually add\u002Fremove singleValue\n   - IF\u002FSwitch metadata added on save\n\n### ❌ Don't\n\n1. **Jump to get_node_info immediately**\n   - Try essentials first\n   - Only escalate if needed\n   - Full schema is overwhelming\n\n2. **Configure blindly**\n   - Always validate before deploying\n   - Understand why fields are required\n   - Check dependencies for conditional fields\n\n3. **Copy configs without understanding**\n   - Different operations need different fields\n   - Validate after copying\n   - Adjust for new context\n\n4. **Manually fix auto-sanitization issues**\n   - Let auto-sanitization handle operator structure\n   - Focus on business logic\n   - Save and let system fix structure\n\n---\n\n## Detailed References\n\nFor comprehensive guides on specific topics:\n\n- **[DEPENDENCIES.md](DEPENDENCIES.md)** - Deep dive into property dependencies and displayOptions\n- **[OPERATION_PATTERNS.md](OPERATION_PATTERNS.md)** - Common configuration patterns by node type\n\n---\n\n## Summary\n\n**Configuration Strategy**:\n1. Start with get_node_essentials (91.7% success)\n2. Configure required fields for operation\n3. Validate configuration\n4. Check dependencies if stuck\n5. Iterate until valid (avg 2-3 cycles)\n6. Deploy with confidence\n\n**Key Principles**:\n- **Operation-aware**: Different operations = different requirements\n- **Progressive disclosure**: Start minimal, add as needed\n- **Dependency-aware**: Understand field visibility rules\n- **Validation-driven**: Let validation guide configuration\n\n**Related Skills**:\n- **n8n MCP Tools Expert** - How to use discovery tools correctly\n- **n8n Validation Expert** - Interpret validation errors\n- **n8n Expression Syntax** - Configure expression fields\n- **n8n Workflow Patterns** - Apply patterns with proper configuration\n\n","# n8n Node Configuration\n\nExpert guidance for operation-aware node configuration with property dependencies.\n\n---\n\n## Configuration Philosophy\n\n**Progressive disclosure**: Start minimal, add complexity as needed\n\nConfiguration best practices:\n- get_node_essentials is the most used discovery pattern\n- 56 seconds average between configuration edits\n- 91.7% success rate with essentials-based configuration\n\n**Key insight**: Most configurations need only essentials, not full schema!\n\n---\n\n## Core Concepts\n\n### 1. Operation-Aware Configuration\n\n**Not all fields are always required** - it depends on operation!\n\n**Example**: Slack node\n```javascript\n\u002F\u002F For operation='post'\n{\n  \"resource\": \"message\",\n  \"operation\": \"post\",\n  \"channel\": \"#general\",  \u002F\u002F Required for post\n  \"text\": \"Hello!\"        \u002F\u002F Required for post\n}\n\n\u002F\u002F For operation='update'\n{\n  \"resource\": \"message\",\n  \"operation\": \"update\",\n  \"messageId\": \"123\",     \u002F\u002F Required for update (different!)\n  \"text\": \"Updated!\"      \u002F\u002F Required for update\n  \u002F\u002F channel NOT required for update\n}\n```\n\n**Key**: Resource + operation determine which fields are required!\n\n### 2. Property Dependencies\n\n**Fields appear\u002Fdisappear based on other field values**\n\n**Example**: HTTP Request node\n```javascript\n\u002F\u002F When method='GET'\n{\n  \"method\": \"GET\",\n  \"url\": \"https:\u002F\u002Fapi.example.com\"\n  \u002F\u002F sendBody not shown (GET doesn't have body)\n}\n\n\u002F\u002F When method='POST'\n{\n  \"method\": \"POST\",\n  \"url\": \"https:\u002F\u002Fapi.example.com\",\n  \"sendBody\": true,       \u002F\u002F Now visible!\n  \"body\": {               \u002F\u002F Required when sendBody=true\n    \"contentType\": \"json\",\n    \"content\": {...}\n  }\n}\n```\n\n**Mechanism**: displayOptions control field visibility\n\n### 3. Progressive Discovery\n\n**Use the right tool for the right job**:\n\n1. **get_node_essentials** (91.7% success rate)\n   - Quick overview\n   - Required fields\n   - Common options\n   - **Use first** - covers 90% of needs\n\n2. **get_property_dependencies** (for complex nodes)\n   - Shows what fields depend on others\n   - Reveals conditional requirements\n   - Use when essentials isn't enough\n\n3. **get_node_info** (full schema)\n   - Complete documentation\n   - All possible fields\n   - Use when essentials + dependencies insufficient\n\n---\n\n## Configuration Workflow\n\n### Standard Process\n\n```\n1. Identify node type and operation\n   ↓\n2. Use get_node_essentials\n   ↓\n3. Configure required fields\n   ↓\n4. Validate configuration\n   ↓\n5. If dependencies unclear → get_property_dependencies\n   ↓\n6. Add optional fields as needed\n   ↓\n7. Validate again\n   ↓\n8. Deploy\n```\n\n### Example: Configuring HTTP Request\n\n**Step 1**: Identify what you need\n```javascript\n\u002F\u002F Goal: POST JSON to API\n```\n\n**Step 2**: Get essentials\n```javascript\nconst info = get_node_essentials({\n  nodeType: \"nodes-base.httpRequest\"\n});\n\n\u002F\u002F Returns: method, url, sendBody, body, authentication required\u002Foptional\n```\n\n**Step 3**: Minimal config\n```javascript\n{\n  \"method\": \"POST\",\n  \"url\": \"https:\u002F\u002Fapi.example.com\u002Fcreate\",\n  \"authentication\": \"none\"\n}\n```\n\n**Step 4**: Validate\n```javascript\nvalidate_node_operation({\n  nodeType: \"nodes-base.httpRequest\",\n  config,\n  profile: \"runtime\"\n});\n\u002F\u002F → Error: \"sendBody required for POST\"\n```\n\n**Step 5**: Add required field\n```javascript\n{\n  \"method\": \"POST\",\n  \"url\": \"https:\u002F\u002Fapi.example.com\u002Fcreate\",\n  \"authentication\": \"none\",\n  \"sendBody\": true\n}\n```\n\n**Step 6**: Validate again\n```javascript\nvalidate_node_operation({...});\n\u002F\u002F → Error: \"body required when sendBody=true\"\n```\n\n**Step 7**: Complete configuration\n```javascript\n{\n  \"method\": \"POST\",\n  \"url\": \"https:\u002F\u002Fapi.example.com\u002Fcreate\",\n  \"authentication\": \"none\",\n  \"sendBody\": true,\n  \"body\": {\n    \"contentType\": \"json\",\n    \"content\": {\n      \"name\": \"={{$json.name}}\",\n      \"email\": \"={{$json.email}}\"\n    }\n  }\n}\n```\n\n**Step 8**: Final validation\n```javascript\nvalidate_node_operation({...});\n\u002F\u002F → Valid! ✅\n```\n\n---\n\n## get_node_essentials vs get_node_info\n\n### Use get_node_essentials When:\n\n**✅ Starting configuration** (91.7% success rate)\n```javascript\nget_node_essentials({\n  nodeType: \"nodes-base.slack\"\n});\n```\n\n**Returns**:\n- Required fields\n- Common options\n- Basic examples\n- Operation list\n\n**Fast**: ~18 seconds average (from search → essentials)\n\n### Use get_node_info When:\n\n**✅ Essentials insufficient**\n```javascript\nget_node_info({\n  nodeType: \"nodes-base.slack\"\n});\n```\n\n**Returns**:\n- Full schema\n- All properties\n- Complete documentation\n- Advanced options\n\n**Slower**: More data to process\n\n### Decision Tree\n\n```\n┌─────────────────────────────────┐\n│ Starting new node config?       │\n├─────────────────────────────────┤\n│ YES → get_node_essentials       │\n└─────────────────────────────────┘\n         ↓\n┌─────────────────────────────────┐\n│ Essentials has what you need?   │\n├─────────────────────────────────┤\n│ YES → Configure with essentials │\n│ NO  → Continue                  │\n└─────────────────────────────────┘\n         ↓\n┌─────────────────────────────────┐\n│ Need dependency info?           │\n├─────────────────────────────────┤\n│ YES → get_property_dependencies │\n│ NO  → Continue                  │\n└─────────────────────────────────┘\n         ↓\n┌─────────────────────────────────┐\n│ Still need more details?        │\n├─────────────────────────────────┤\n│ YES → get_node_info             │\n└─────────────────────────────────┘\n```\n\n---\n\n## Property Dependencies Deep Dive\n\n### displayOptions Mechanism\n\n**Fields have visibility rules**:\n\n```javascript\n{\n  \"name\": \"body\",\n  \"displayOptions\": {\n    \"show\": {\n      \"sendBody\": [true],\n      \"method\": [\"POST\", \"PUT\", \"PATCH\"]\n    }\n  }\n}\n```\n\n**Translation**: \"body\" field shows when:\n- sendBody = true AND\n- method = POST, PUT, or PATCH\n\n### Common Dependency Patterns\n\n#### Pattern 1: Boolean Toggle\n\n**Example**: HTTP Request sendBody\n```javascript\n\u002F\u002F sendBody controls body visibility\n{\n  \"sendBody\": true   \u002F\u002F → body field appears\n}\n```\n\n#### Pattern 2: Operation Switch\n\n**Example**: Slack resource\u002Foperation\n```javascript\n\u002F\u002F Different operations → different fields\n{\n  \"resource\": \"message\",\n  \"operation\": \"post\"\n  \u002F\u002F → Shows: channel, text, attachments, etc.\n}\n\n{\n  \"resource\": \"message\",\n  \"operation\": \"update\"\n  \u002F\u002F → Shows: messageId, text (different fields!)\n}\n```\n\n#### Pattern 3: Type Selection\n\n**Example**: IF node conditions\n```javascript\n{\n  \"type\": \"string\",\n  \"operation\": \"contains\"\n  \u002F\u002F → Shows: value1, value2\n}\n\n{\n  \"type\": \"boolean\",\n  \"operation\": \"equals\"\n  \u002F\u002F → Shows: value1, value2, different operators\n}\n```\n\n### Using get_property_dependencies\n\n**Example**:\n```javascript\nconst deps = get_property_dependencies({\n  nodeType: \"nodes-base.httpRequest\"\n});\n\n\u002F\u002F Returns dependency tree\n{\n  \"dependencies\": {\n    \"body\": {\n      \"shows_when\": {\n        \"sendBody\": [true],\n        \"method\": [\"POST\", \"PUT\", \"PATCH\", \"DELETE\"]\n      }\n    },\n    \"queryParameters\": {\n      \"shows_when\": {\n        \"sendQuery\": [true]\n      }\n    }\n  }\n}\n```\n\n**Use this when**: Validation fails and you don't understand why field is missing\u002Frequired\n\n---\n\n## Common Node Patterns\n\n### Pattern 1: Resource\u002FOperation Nodes\n\n**Examples**: Slack, Google Sheets, Airtable\n\n**Structure**:\n```javascript\n{\n  \"resource\": \"\u003Centity>\",      \u002F\u002F What type of thing\n  \"operation\": \"\u003Caction>\",     \u002F\u002F What to do with it\n  \u002F\u002F ... operation-specific fields\n}\n```\n\n**How to configure**:\n1. Choose resource\n2. Choose operation\n3. Use get_node_essentials to see operation-specific requirements\n4. Configure required fields\n\n### Pattern 2: HTTP-Based Nodes\n\n**Examples**: HTTP Request, Webhook\n\n**Structure**:\n```javascript\n{\n  \"method\": \"\u003CHTTP_METHOD>\",\n  \"url\": \"\u003Cendpoint>\",\n  \"authentication\": \"\u003Ctype>\",\n  \u002F\u002F ... method-specific fields\n}\n```\n\n**Dependencies**:\n- POST\u002FPUT\u002FPATCH → sendBody available\n- sendBody=true → body required\n- authentication != \"none\" → credentials required\n\n### Pattern 3: Database Nodes\n\n**Examples**: Postgres, MySQL, MongoDB\n\n**Structure**:\n```javascript\n{\n  \"operation\": \"\u003Cquery|insert|update|delete>\",\n  \u002F\u002F ... operation-specific fields\n}\n```\n\n**Dependencies**:\n- operation=\"executeQuery\" → query required\n- operation=\"insert\" → table + values required\n- operation=\"update\" → table + values + where required\n\n### Pattern 4: Conditional Logic Nodes\n\n**Examples**: IF, Switch, Merge\n\n**Structure**:\n```javascript\n{\n  \"conditions\": {\n    \"\u003Ctype>\": [\n      {\n        \"operation\": \"\u003Coperator>\",\n        \"value1\": \"...\",\n        \"value2\": \"...\"  \u002F\u002F Only for binary operators\n      }\n    ]\n  }\n}\n```\n\n**Dependencies**:\n- Binary operators (equals, contains, etc.) → value1 + value2\n- Unary operators (isEmpty, isNotEmpty) → value1 only + singleValue: true\n\n---\n\n## Operation-Specific Configuration\n\n### Slack Node Examples\n\n#### Post Message\n```javascript\n{\n  \"resource\": \"message\",\n  \"operation\": \"post\",\n  \"channel\": \"#general\",      \u002F\u002F Required\n  \"text\": \"Hello!\",           \u002F\u002F Required\n  \"attachments\": [],          \u002F\u002F Optional\n  \"blocks\": []                \u002F\u002F Optional\n}\n```\n\n#### Update Message\n```javascript\n{\n  \"resource\": \"message\",\n  \"operation\": \"update\",\n  \"messageId\": \"1234567890\",  \u002F\u002F Required (different from post!)\n  \"text\": \"Updated!\",         \u002F\u002F Required\n  \"channel\": \"#general\"       \u002F\u002F Optional (can be inferred)\n}\n```\n\n#### Create Channel\n```javascript\n{\n  \"resource\": \"channel\",\n  \"operation\": \"create\",\n  \"name\": \"new-channel\",      \u002F\u002F Required\n  \"isPrivate\": false          \u002F\u002F Optional\n  \u002F\u002F Note: text NOT required for this operation\n}\n```\n\n### HTTP Request Node Examples\n\n#### GET Request\n```javascript\n{\n  \"method\": \"GET\",\n  \"url\": \"https:\u002F\u002Fapi.example.com\u002Fusers\",\n  \"authentication\": \"predefinedCredentialType\",\n  \"nodeCredentialType\": \"httpHeaderAuth\",\n  \"sendQuery\": true,                    \u002F\u002F Optional\n  \"queryParameters\": {                  \u002F\u002F Shows when sendQuery=true\n    \"parameters\": [\n      {\n        \"name\": \"limit\",\n        \"value\": \"100\"\n      }\n    ]\n  }\n}\n```\n\n#### POST with JSON\n```javascript\n{\n  \"method\": \"POST\",\n  \"url\": \"https:\u002F\u002Fapi.example.com\u002Fusers\",\n  \"authentication\": \"none\",\n  \"sendBody\": true,                     \u002F\u002F Required for POST\n  \"body\": {                             \u002F\u002F Required when sendBody=true\n    \"contentType\": \"json\",\n    \"content\": {\n      \"name\": \"John Doe\",\n      \"email\": \"john@example.com\"\n    }\n  }\n}\n```\n\n### IF Node Examples\n\n#### String Comparison (Binary)\n```javascript\n{\n  \"conditions\": {\n    \"string\": [\n      {\n        \"value1\": \"={{$json.status}}\",\n        \"operation\": \"equals\",\n        \"value2\": \"active\"              \u002F\u002F Binary: needs value2\n      }\n    ]\n  }\n}\n```\n\n#### Empty Check (Unary)\n```javascript\n{\n  \"conditions\": {\n    \"string\": [\n      {\n        \"value1\": \"={{$json.email}}\",\n        \"operation\": \"isEmpty\",\n        \u002F\u002F No value2 - unary operator\n        \"singleValue\": true             \u002F\u002F Auto-added by sanitization\n      }\n    ]\n  }\n}\n```\n\n---\n\n## Handling Conditional Requirements\n\n### Example: HTTP Request Body\n\n**Scenario**: body field required, but only sometimes\n\n**Rule**:\n```\nbody is required when:\n  - sendBody = true AND\n  - method IN (POST, PUT, PATCH, DELETE)\n```\n\n**How to discover**:\n```javascript\n\u002F\u002F Option 1: Read validation error\nvalidate_node_operation({...});\n\u002F\u002F Error: \"body required when sendBody=true\"\n\n\u002F\u002F Option 2: Check dependencies\nget_property_dependencies({\n  nodeType: \"nodes-base.httpRequest\"\n});\n\u002F\u002F Shows: body → shows_when: sendBody=[true], method=[POST,PUT,PATCH,DELETE]\n\n\u002F\u002F Option 3: Try minimal config and iterate\n\u002F\u002F Start without body, validation will tell you if needed\n```\n\n### Example: IF Node singleValue\n\n**Scenario**: singleValue property appears for unary operators\n\n**Rule**:\n```\nsingleValue should be true when:\n  - operation IN (isEmpty, isNotEmpty, true, false)\n```\n\n**Good news**: Auto-sanitization fixes this!\n\n**Manual check**:\n```javascript\nget_property_dependencies({\n  nodeType: \"nodes-base.if\"\n});\n\u002F\u002F Shows operator-specific dependencies\n```\n\n---\n\n## Configuration Anti-Patterns\n\n### ❌ Don't: Over-configure Upfront\n\n**Bad**:\n```javascript\n\u002F\u002F Adding every possible field\n{\n  \"method\": \"GET\",\n  \"url\": \"...\",\n  \"sendQuery\": false,\n  \"sendHeaders\": false,\n  \"sendBody\": false,\n  \"timeout\": 10000,\n  \"ignoreResponseCode\": false,\n  \u002F\u002F ... 20 more optional fields\n}\n```\n\n**Good**:\n```javascript\n\u002F\u002F Start minimal\n{\n  \"method\": \"GET\",\n  \"url\": \"...\",\n  \"authentication\": \"none\"\n}\n\u002F\u002F Add fields only when needed\n```\n\n### ❌ Don't: Skip Validation\n\n**Bad**:\n```javascript\n\u002F\u002F Configure and deploy without validating\nconst config = {...};\nn8n_update_partial_workflow({...});  \u002F\u002F YOLO\n```\n\n**Good**:\n```javascript\n\u002F\u002F Validate before deploying\nconst config = {...};\nconst result = validate_node_operation({...});\nif (result.valid) {\n  n8n_update_partial_workflow({...});\n}\n```\n\n### ❌ Don't: Ignore Operation Context\n\n**Bad**:\n```javascript\n\u002F\u002F Same config for all Slack operations\n{\n  \"resource\": \"message\",\n  \"operation\": \"post\",\n  \"channel\": \"#general\",\n  \"text\": \"...\"\n}\n\n\u002F\u002F Then switching operation without updating config\n{\n  \"resource\": \"message\",\n  \"operation\": \"update\",  \u002F\u002F Changed\n  \"channel\": \"#general\",  \u002F\u002F Wrong field for update!\n  \"text\": \"...\"\n}\n```\n\n**Good**:\n```javascript\n\u002F\u002F Check requirements when changing operation\nget_node_essentials({\n  nodeType: \"nodes-base.slack\"\n});\n\u002F\u002F See what update operation needs (messageId, not channel)\n```\n\n---\n\n## Best Practices\n\n### ✅ Do\n\n1. **Start with get_node_essentials**\n   - 91.7% success rate\n   - Faster than get_node_info\n   - Sufficient for most needs\n\n2. **Validate iteratively**\n   - Configure → Validate → Fix → Repeat\n   - Average 2-3 iterations is normal\n   - Read validation errors carefully\n\n3. **Use property dependencies when stuck**\n   - If field seems missing, check dependencies\n   - Understand what controls field visibility\n   - get_property_dependencies reveals rules\n\n4. **Respect operation context**\n   - Different operations = different requirements\n   - Always check essentials when changing operation\n   - Don't assume configs are transferable\n\n5. **Trust auto-sanitization**\n   - Operator structure fixed automatically\n   - Don't manually add\u002Fremove singleValue\n   - IF\u002FSwitch metadata added on save\n\n### ❌ Don't\n\n1. **Jump to get_node_info immediately**\n   - Try essentials first\n   - Only escalate if needed\n   - Full schema is overwhelming\n\n2. **Configure blindly**\n   - Always validate before deploying\n   - Understand why fields are required\n   - Check dependencies for conditional fields\n\n3. **Copy configs without understanding**\n   - Different operations need different fields\n   - Validate after copying\n   - Adjust for new context\n\n4. **Manually fix auto-sanitization issues**\n   - Let auto-sanitization handle operator structure\n   - Focus on business logic\n   - Save and let system fix structure\n\n---\n\n## Detailed References\n\nFor comprehensive guides on specific topics:\n\n- **[DEPENDENCIES.md](DEPENDENCIES.md)** - Deep dive into property dependencies and displayOptions\n- **[OPERATION_PATTERNS.md](OPERATION_PATTERNS.md)** - Common configuration patterns by node type\n\n---\n\n## Summary\n\n**Configuration Strategy**:\n1. Start with get_node_essentials (91.7% success)\n2. Configure required fields for operation\n3. Validate configuration\n4. Check dependencies if stuck\n5. Iterate until valid (avg 2-3 cycles)\n6. Deploy with confidence\n\n**Key Principles**:\n- **Operation-aware**: Different operations = different requirements\n- **Progressive disclosure**: Start minimal, add as needed\n- **Dependency-aware**: Understand field visibility rules\n- **Validation-driven**: Let validation guide configuration\n\n**Related Skills**:\n- **n8n MCP Tools Expert** - How to use discovery tools correctly\n- **n8n Validation Expert** - Interpret validation errors\n- **n8n Expression Syntax** - Configure expression fields\n- **n8n Workflow Patterns** - Apply patterns with proper configuration\n\n",{"name":5,"description":7},"main","015422534a7457348a313b6381f0255d3364eb8c","cli-tool\u002Fcomponents\u002Fskills\u002Fworkflow-automation\u002Fn8n\u002Fn8n-node-configuration",0,"https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates","https:\u002F\u002Fgithub.com\u002FMishit18","2026-11-14 17:36:32",{"source":8,"skillName":5,"commands":49,"prompt":59,"zipAvailable":60},[50,53,56],{"tool":51,"command":52},"npx","npx skills add Mishit18\u002Fclaude-code-templates --skill n8n-node-configuration",{"tool":54,"command":55},"bunx","bunx skills add Mishit18\u002Fclaude-code-templates --skill n8n-node-configuration",{"tool":57,"command":58},"pnpm","pnpm dlx skills add Mishit18\u002Fclaude-code-templates --skill n8n-node-configuration","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fworkflow-automation\u002Fn8n\u002Fn8n-node-configuration\u002FSKILL.md",true,[62,68,72],{"path":63,"resourceType":64,"resourceTypeDesc":65,"sizeBytes":66,"sourceHtmlUrl":67},"DEPENDENCIES.md","REFERENCE","参考文档",14583,"https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fworkflow-automation\u002Fn8n\u002Fn8n-node-configuration\u002FDEPENDENCIES.md",{"path":69,"resourceType":64,"resourceTypeDesc":65,"sizeBytes":70,"sourceHtmlUrl":71},"OPERATION_PATTERNS.md",15359,"https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fworkflow-automation\u002Fn8n\u002Fn8n-node-configuration\u002FOPERATION_PATTERNS.md",{"path":73,"resourceType":64,"resourceTypeDesc":65,"sizeBytes":74,"sourceHtmlUrl":75},"README.md",9801,"https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fworkflow-automation\u002Fn8n\u002Fn8n-node-configuration\u002FREADME.md",[77,110,136,163,190,214],{"skillNo":78,"name":79,"nameZh":6,"description":80,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":81,"licenseFileUrl":82,"sourceHtmlUrl":83,"categories":84,"keywords":90,"publishedAt":36},"01M6R4ARN4W2VZRDERDTMN1KP0","web-artifacts-builder","Suite of tools for creating elaborate, multi-component claude.ai HTML artifacts using modern frontend web technologies (React, Tailwind CSS, shadcn\u002Fui). Use for complex artifacts requiring state management, routing, or shadcn\u002Fui components - not for simple single-file HTML\u002FJSX artifacts.","Apache-2.0","https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Futilities\u002Fweb-artifacts-builder\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Futilities\u002Fweb-artifacts-builder\u002FSKILL.md",[85],{"categoryNo":86,"categoryName":87,"taxonomyType":88,"taxonomyTypeDesc":89},"01JBSEEDCAT000000000000009","前端开发","SCENARIO","使用场景",[91,92,93,94,95,96,97,98,99,100,101,102,103,104,33,105,106,107,108,109],"web artifacts builder","web","artifacts","artifacts builder","builder","frontend","css","components","react","routing","state management","state","file","Tailwind","single-file","ui components","multi","for","single",{"skillNo":111,"name":112,"nameZh":6,"description":113,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":81,"licenseFileUrl":114,"sourceHtmlUrl":115,"categories":116,"keywords":121,"publishedAt":36},"01M6R45GXREM5DP8T08MAC788H","webapp-testing","Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.","https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fsecurity\u002Fwebapp-testing\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fsecurity\u002Fwebapp-testing\u002FSKILL.md",[117,120],{"categoryNo":118,"categoryName":119,"taxonomyType":88,"taxonomyTypeDesc":89},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":86,"categoryName":87,"taxonomyType":88,"taxonomyTypeDesc":89},[122,123,124,96,125,126,92,127,128,129,130,131,132,133,134,135,108],"testing","webapp testing","webapp","screenshots","playwright","debugging","toolkit","browser","ui","logs","applications","behavior","local","with",{"skillNo":137,"name":138,"nameZh":6,"description":139,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":140,"sourceHtmlUrl":141,"categories":142,"keywords":143,"publishedAt":36},"01M6R2GYJ470X8EB7R58V0B68K","think-tank","Run a Virtual Think Tank — a structured multi-persona debate — before planning or making architectural\u002Fdesign\u002Fstrategic decisions. Use this skill whenever the user is about to plan a system, make a technology choice, evaluate trade-offs, decide on an approach, or faces any decision where multiple perspectives would sharpen the outcome. Also trigger when the user says \"think tank\", \"debate this\", \"perspectives on\", \"trade-offs\", \"should I use X or Y\", \"help me decide\", \"before we plan\", or asks for pros\u002Fcons of competing approaches. This skill should run BEFORE any implementation planning begins — it produces a structured analysis that feeds into better plans.","https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fproductivity\u002Fthink-tank\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fproductivity\u002Fthink-tank\u002FSKILL.md",[],[144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,23],"think tank","think","design","run","feeds","analysis","persona","plan","sharpen","virtual","decision","choice","decide","perspectives","outcome","me","debate","make","trade-offs",{"skillNo":164,"name":165,"nameZh":6,"description":166,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":81,"licenseFileUrl":167,"sourceHtmlUrl":168,"categories":169,"keywords":173,"publishedAt":36},"01M6R2FSR55AVRFA9YZ8SC2GZG","skill-creator","Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.","https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fproductivity\u002Fskill-creator\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fproductivity\u002Fskill-creator\u002FSKILL.md",[170],{"categoryNo":171,"categoryName":172,"taxonomyType":88,"taxonomyTypeDesc":89},"01JBSEEDCAT000000000000023","Skill与智能体开发",[174,175,176,177,178,179,180,181,182,183,184,185,186,187,135,108,188,23,189],"skill creator","creator","workflows","create","update","capabilities","knowledge","tool","integrations","specialized","guide","new skill","existing skill","users","Existing","new",{"skillNo":191,"name":192,"nameZh":6,"description":193,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":194,"categories":195,"keywords":196,"publishedAt":36},"01M6R2FK42ZZ4HJTJVVK9WJBBP","ship-learn-next","Transform learning content (like YouTube transcripts, articles, tutorials) into actionable implementation plans using the Ship-Learn-Next framework. Use when user wants to turn advice, lessons, or educational content into concrete action steps, reps, or a learning quest.","https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fproductivity\u002Fship-learn-next\u002FSKILL.md",[],[197,198,199,200,201,35,202,203,33,204,205,206,207,208,209,210,211,212,213,23],"learn","ship learn next","ship","next","framework","read","write","advice","implementation","youtube","plans","quest","transform","actionable","action","lessons","youtube transcripts",{"skillNo":215,"name":216,"nameZh":6,"description":217,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":81,"licenseFileUrl":218,"sourceHtmlUrl":219,"categories":220,"keywords":227,"publishedAt":36},"01M6R2088G1RHDA5MDX16HASRB","slack-gif-creator","Knowledge and utilities for creating animated GIFs optimized for Slack. Provides constraints, validation tools, and animation concepts. Use when users request animated GIFs for Slack like \"make me a GIF of X doing Y for Slack.\"","https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fenterprise-communication\u002Fslack-gif-creator\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fenterprise-communication\u002Fslack-gif-creator\u002FSKILL.md",[221,224],{"categoryNo":222,"categoryName":223,"taxonomyType":88,"taxonomyTypeDesc":89},"01JBSEEDCAT000000000000005","邮件与沟通",{"categoryNo":225,"categoryName":226,"taxonomyType":88,"taxonomyTypeDesc":89},"01JBSEEDCAT000000000000016","图像与多媒体",[228,229,230,175,231,232,233,234,180,33,159,187,161,235,236,108,237,23],"slack gif creator","slack","gif","validation","Tools","constraints","Animation","Utilities","concepts","request"]