{"data":{"skill":{"slug":"89jobrien-n8n","name":"n8n","icon":"📦","repo":"https://github.com/89jobrien/steve/tree/main/steve/skills/n8n","status":"approved","author":"Joseph OBrien","authorVersion":null,"skillstoreRevision":null},"audit":{"id":"2a039c02-c572-412e-bc9a-17f3c1511495","skill_id":"b5caa365-65b5-479f-951d-87f04aedd132","version":5,"content_hash":"1b13fcb942311fb68676c0b73c7f8cee","risk_level":"safe","is_blocked":false,"safe_to_publish":true,"analysis_status":"ok","agent_auto_install_policy":"allowed","manual_install_policy":"allowed","summary":"The static alerts are explained by Markdown examples in SKILL.md, including fenced JSON and bash snippets, n8n expression syntax, placeholder URLs, and $N8N_API_KEY references. I found no evidence of embedded secrets, prompt injection, unauthorized exfiltration, or hidden code execution. The skill is instructional, but state-changing API examples should remain clearly labeled and require user-controlled credentials.","remediation":[{"issue":"Markdown examples trigger command, URL, and secret scanners.","severity":"low","suggestion":"Label examples as documentation only and keep placeholder hosts, workflow IDs, and credentials clearly synthetic."},{"issue":"REST API examples include state-changing workflow operations.","severity":"low","suggestion":"Add a review step before create, update, activate, or deactivate requests, including host, workflow ID, and credential scope checks."}],"risk_factor_evidence":[{"factor":"external_commands","evidence":[{"file":"SKILL.md","line_end":27,"line_start":23},{"file":"SKILL.md","line_end":35,"line_start":27},{"file":"SKILL.md","line_end":44,"line_start":35},{"file":"SKILL.md","line_end":50,"line_start":44},{"file":"SKILL.md","line_end":60,"line_start":50},{"file":"SKILL.md","line_end":66,"line_start":60},{"file":"SKILL.md","line_end":74,"line_start":66},{"file":"SKILL.md","line_end":82,"line_start":74},{"file":"SKILL.md","line_end":117,"line_start":82},{"file":"SKILL.md","line_end":119,"line_start":117},{"file":"SKILL.md","line_end":125,"line_start":119},{"file":"SKILL.md","line_end":145,"line_start":125},{"file":"SKILL.md","line_end":151,"line_start":145},{"file":"SKILL.md","line_end":179,"line_start":151},{"file":"SKILL.md","line_end":185,"line_start":179},{"file":"SKILL.md","line_end":197,"line_start":185},{"file":"SKILL.md","line_end":203,"line_start":197},{"file":"SKILL.md","line_end":206,"line_start":203},{"file":"SKILL.md","line_end":210,"line_start":206},{"file":"SKILL.md","line_end":213,"line_start":210},{"file":"SKILL.md","line_end":217,"line_start":213},{"file":"SKILL.md","line_end":222,"line_start":217},{"file":"SKILL.md","line_end":226,"line_start":222},{"file":"SKILL.md","line_end":231,"line_start":226},{"file":"SKILL.md","line_end":235,"line_start":231},{"file":"SKILL.md","line_end":241,"line_start":235},{"file":"SKILL.md","line_end":245,"line_start":241},{"file":"SKILL.md","line_end":248,"line_start":245},{"file":"SKILL.md","line_end":256,"line_start":248},{"file":"SKILL.md","line_end":257,"line_start":256},{"file":"SKILL.md","line_end":258,"line_start":257},{"file":"SKILL.md","line_end":259,"line_start":258},{"file":"SKILL.md","line_end":260,"line_start":259},{"file":"SKILL.md","line_end":261,"line_start":260},{"file":"SKILL.md","line_end":267,"line_start":261},{"file":"SKILL.md","line_end":268,"line_start":267},{"file":"SKILL.md","line_end":269,"line_start":268},{"file":"SKILL.md","line_end":270,"line_start":269},{"file":"SKILL.md","line_end":271,"line_start":270},{"file":"SKILL.md","line_end":272,"line_start":271},{"file":"SKILL.md","line_end":273,"line_start":272},{"file":"SKILL.md","line_end":274,"line_start":273},{"file":"SKILL.md","line_end":275,"line_start":274},{"file":"SKILL.md","line_end":281,"line_start":275},{"file":"SKILL.md","line_end":282,"line_start":281},{"file":"SKILL.md","line_end":287,"line_start":282},{"file":"SKILL.md","line_end":290,"line_start":287},{"file":"SKILL.md","line_end":258,"line_start":258},{"file":"SKILL.md","line_end":258,"line_start":258}]},{"factor":"network","evidence":[{"file":"SKILL.md","line_end":119,"line_start":119},{"file":"SKILL.md","line_end":134,"line_start":134},{"file":"SKILL.md","line_end":204,"line_start":204},{"file":"SKILL.md","line_end":211,"line_start":211},{"file":"SKILL.md","line_end":218,"line_start":218},{"file":"SKILL.md","line_end":227,"line_start":227},{"file":"SKILL.md","line_end":236,"line_start":236},{"file":"SKILL.md","line_end":239,"line_start":239},{"file":"SKILL.md","line_end":246,"line_start":246},{"file":"SKILL.md","line_end":282,"line_start":282}]},{"factor":"env_access","evidence":[{"file":"SKILL.md","line_end":26,"line_start":26},{"file":"SKILL.md","line_end":205,"line_start":205},{"file":"SKILL.md","line_end":212,"line_start":212},{"file":"SKILL.md","line_end":219,"line_start":219},{"file":"SKILL.md","line_end":228,"line_start":228},{"file":"SKILL.md","line_end":237,"line_start":237},{"file":"SKILL.md","line_end":240,"line_start":240},{"file":"SKILL.md","line_end":247,"line_start":247}]}],"critical_findings":[],"high_findings":[],"medium_findings":[],"low_findings":[],"dangerous_patterns":[],"files_scanned":3,"total_lines":366,"audit_model":"codex","audited_at":"2026-07-04T23:49:29.87+00:00","created_at":"2026-07-05T00:43:15.890078+00:00","static_findings":[{"id":"external_commands:SKILL.md:23:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":27,"severity":"medium","line_start":23},{"id":"external_commands:SKILL.md:27:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":35,"severity":"medium","line_start":27},{"id":"external_commands:SKILL.md:35:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```json","category":"external_commands","line_end":44,"severity":"medium","line_start":35},{"id":"external_commands:SKILL.md:44:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":50,"severity":"medium","line_start":44},{"id":"external_commands:SKILL.md:50:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```json","category":"external_commands","line_end":60,"severity":"medium","line_start":50},{"id":"external_commands:SKILL.md:60:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":66,"severity":"medium","line_start":60},{"id":"external_commands:SKILL.md:66:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```json","category":"external_commands","line_end":74,"severity":"medium","line_start":66},{"id":"external_commands:SKILL.md:74:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":82,"severity":"medium","line_start":74},{"id":"external_commands:SKILL.md:82:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```json","category":"external_commands","line_end":117,"severity":"medium","line_start":82},{"id":"external_commands:SKILL.md:117:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":119,"severity":"medium","line_start":117},{"id":"external_commands:SKILL.md:119:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Access at: `http://localhost:5678/webhook/my-endpoint`","category":"external_commands","line_end":125,"severity":"medium","line_start":119},{"id":"external_commands:SKILL.md:125:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```json","category":"external_commands","line_end":145,"severity":"medium","line_start":125},{"id":"external_commands:SKILL.md:145:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":151,"severity":"medium","line_start":145},{"id":"external_commands:SKILL.md:151:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```json","category":"external_commands","line_end":179,"severity":"medium","line_start":151},{"id":"external_commands:SKILL.md:179:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":185,"severity":"medium","line_start":179},{"id":"external_commands:SKILL.md:185:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```json","category":"external_commands","line_end":197,"severity":"medium","line_start":185},{"id":"external_commands:SKILL.md:197:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":203,"severity":"medium","line_start":197},{"id":"external_commands:SKILL.md:203:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":206,"severity":"medium","line_start":203},{"id":"external_commands:SKILL.md:206:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":210,"severity":"medium","line_start":206},{"id":"external_commands:SKILL.md:210:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":213,"severity":"medium","line_start":210},{"id":"external_commands:SKILL.md:213:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":217,"severity":"medium","line_start":213},{"id":"external_commands:SKILL.md:217:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":222,"severity":"medium","line_start":217},{"id":"external_commands:SKILL.md:222:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":226,"severity":"medium","line_start":222},{"id":"external_commands:SKILL.md:226:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":231,"severity":"medium","line_start":226},{"id":"external_commands:SKILL.md:231:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":235,"severity":"medium","line_start":231},{"id":"external_commands:SKILL.md:235:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":241,"severity":"medium","line_start":235},{"id":"external_commands:SKILL.md:241:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":245,"severity":"medium","line_start":241},{"id":"external_commands:SKILL.md:245:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":248,"severity":"medium","line_start":245},{"id":"external_commands:SKILL.md:248:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":256,"severity":"medium","line_start":248},{"id":"external_commands:SKILL.md:256:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `={{ $json.field }}` | Access current item field |","category":"external_commands","line_end":257,"severity":"medium","line_start":256},{"id":"external_commands:SKILL.md:257:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `={{ $json.body.param }}` | Access nested field |","category":"external_commands","line_end":258,"severity":"medium","line_start":257},{"id":"external_commands:SKILL.md:258:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `={{ $('Node Name').item.json.field }}` | Access output from specific node |","category":"external_commands","line_end":259,"severity":"medium","line_start":258},{"id":"external_commands:SKILL.md:259:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `={{ $input.first().json }}` | First input item |","category":"external_commands","line_end":260,"severity":"medium","line_start":259},{"id":"external_commands:SKILL.md:260:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `={{ $input.all() }}` | All input items |","category":"external_commands","line_end":261,"severity":"medium","line_start":260},{"id":"external_commands:SKILL.md:261:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `={{ JSON.stringify($json) }}` | Convert to JSON string |","category":"external_commands","line_end":267,"severity":"medium","line_start":261},{"id":"external_commands:SKILL.md:267:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Webhook | `n8n-nodes-base.webhook` | HTTP trigger |","category":"external_commands","line_end":268,"severity":"medium","line_start":267},{"id":"external_commands:SKILL.md:268:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| HTTP Request | `n8n-nodes-base.httpRequest` | API calls |","category":"external_commands","line_end":269,"severity":"medium","line_start":268},{"id":"external_commands:SKILL.md:269:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Respond to Webhook | `n8n-nodes-base.respondToWebhook` | Return HTTP response |","category":"external_commands","line_end":270,"severity":"medium","line_start":269},{"id":"external_commands:SKILL.md:270:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| IF | `n8n-nodes-base.if` | Conditional branching |","category":"external_commands","line_end":271,"severity":"medium","line_start":270},{"id":"external_commands:SKILL.md:271:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Switch | `n8n-nodes-base.switch` | Multi-way branching |","category":"external_commands","line_end":272,"severity":"medium","line_start":271},{"id":"external_commands:SKILL.md:272:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Set | `n8n-nodes-base.set` | Transform data |","category":"external_commands","line_end":273,"severity":"medium","line_start":272},{"id":"external_commands:SKILL.md:273:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Code | `n8n-nodes-base.code` | Custom JavaScript |","category":"external_commands","line_end":274,"severity":"medium","line_start":273},{"id":"external_commands:SKILL.md:274:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Split In Batches | `n8n-nodes-base.splitInBatches` | Loop processing |","category":"external_commands","line_end":275,"severity":"medium","line_start":274},{"id":"external_commands:SKILL.md:275:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Merge | `n8n-nodes-base.merge` | Combine branches |","category":"external_commands","line_end":281,"severity":"medium","line_start":275},{"id":"external_commands:SKILL.md:281:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"1. Enable MCP in workflow settings: `\"availableInMCP\": true`","category":"external_commands","line_end":282,"severity":"medium","line_start":281},{"id":"external_commands:SKILL.md:282:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"2. Access MCP endpoint: `http://localhost:5678/mcp-server/http`","category":"external_commands","line_end":287,"severity":"medium","line_start":282},{"id":"external_commands:SKILL.md:287:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"1. **Webhook Response**: Use `responseMode: \"responseNode\"` with Respond node for control","category":"external_commands","line_end":290,"severity":"medium","line_start":287},{"id":"external_commands:SKILL.md:258:shell-command-substitution","file":"SKILL.md","pattern":"Shell command substitution","snippet":"| `={{ $('Node Name').item.json.field }}` | Access output from specific node |","category":"external_commands","line_end":258,"severity":"medium","line_start":258},{"id":"external_commands:SKILL.md:258:template-literal-with-command-substitution","file":"SKILL.md","pattern":"Template literal with command substitution","snippet":"| `={{ $('Node Name').item.json.field }}` | Access output from specific node |","category":"external_commands","line_end":258,"severity":"medium","line_start":258},{"id":"network:SKILL.md:119:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"Access at: `http://localhost:5678/webhook/my-endpoint`","category":"network","line_end":119,"severity":"low","line_start":119},{"id":"network:SKILL.md:134:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"\"url\": \"https://api.example.com/endpoint\",","category":"network","line_end":134,"severity":"low","line_start":134},{"id":"network:SKILL.md:204:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"curl -s \"http://localhost:5678/api/v1/workflows\" \\","category":"network","line_end":204,"severity":"low","line_start":204},{"id":"network:SKILL.md:211:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"curl -s \"http://localhost:5678/api/v1/workflows/{id}\" \\","category":"network","line_end":211,"severity":"low","line_start":211},{"id":"network:SKILL.md:218:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"curl -s -X POST \"http://localhost:5678/api/v1/workflows\" \\","category":"network","line_end":218,"severity":"low","line_start":218},{"id":"network:SKILL.md:227:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"curl -s -X PUT \"http://localhost:5678/api/v1/workflows/{id}\" \\","category":"network","line_end":227,"severity":"low","line_start":227},{"id":"network:SKILL.md:236:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"curl -s -X POST \"http://localhost:5678/api/v1/workflows/{id}/activate\" \\","category":"network","line_end":236,"severity":"low","line_start":236},{"id":"network:SKILL.md:239:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"curl -s -X POST \"http://localhost:5678/api/v1/workflows/{id}/deactivate\" \\","category":"network","line_end":239,"severity":"low","line_start":239},{"id":"network:SKILL.md:246:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"curl -s \"http://localhost:5678/api/v1/executions?workflowId={id}&limit=10&includeData=true\" \\","category":"network","line_end":246,"severity":"low","line_start":246},{"id":"network:SKILL.md:282:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"2. Access MCP endpoint: `http://localhost:5678/mcp-server/http`","category":"network","line_end":282,"severity":"low","line_start":282},{"id":"env_access:SKILL.md:26:generic-api-secret-keys","file":"SKILL.md","pattern":"Generic API/secret keys","snippet":"N8N_API_KEY=your-api-key","category":"env_access","line_end":26,"severity":"high","line_start":26},{"id":"env_access:SKILL.md:205:generic-api-secret-keys","file":"SKILL.md","pattern":"Generic API/secret keys","snippet":"-H \"X-N8N-API-KEY: $N8N_API_KEY\"","category":"env_access","line_end":205,"severity":"high","line_start":205},{"id":"env_access:SKILL.md:212:generic-api-secret-keys","file":"SKILL.md","pattern":"Generic API/secret keys","snippet":"-H \"X-N8N-API-KEY: $N8N_API_KEY\"","category":"env_access","line_end":212,"severity":"high","line_start":212},{"id":"env_access:SKILL.md:219:generic-api-secret-keys","file":"SKILL.md","pattern":"Generic API/secret keys","snippet":"-H \"X-N8N-API-KEY: $N8N_API_KEY\" \\","category":"env_access","line_end":219,"severity":"high","line_start":219},{"id":"env_access:SKILL.md:228:generic-api-secret-keys","file":"SKILL.md","pattern":"Generic API/secret keys","snippet":"-H \"X-N8N-API-KEY: $N8N_API_KEY\" \\","category":"env_access","line_end":228,"severity":"high","line_start":228},{"id":"env_access:SKILL.md:237:generic-api-secret-keys","file":"SKILL.md","pattern":"Generic API/secret keys","snippet":"-H \"X-N8N-API-KEY: $N8N_API_KEY\"","category":"env_access","line_end":237,"severity":"high","line_start":237},{"id":"env_access:SKILL.md:240:generic-api-secret-keys","file":"SKILL.md","pattern":"Generic API/secret keys","snippet":"-H \"X-N8N-API-KEY: $N8N_API_KEY\"","category":"env_access","line_end":240,"severity":"high","line_start":240},{"id":"env_access:SKILL.md:247:generic-api-secret-keys","file":"SKILL.md","pattern":"Generic API/secret keys","snippet":"-H \"X-N8N-API-KEY: $N8N_API_KEY\"","category":"env_access","line_end":247,"severity":"high","line_start":247}],"finding_verdicts":[{"id":"external_commands:SKILL.md:23:ruby-shell-backtick-execution","reason":"The flagged text is a Markdown fence for documented curl examples, not executable code embedded in the skill. Execution still requires user action and credentials.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:27:ruby-shell-backtick-execution","reason":"The flagged text is a Markdown code fence delimiter or JSON example, not Ruby or shell backtick execution. No command invocation is present.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:35:ruby-shell-backtick-execution","reason":"The flagged text is a Markdown code fence delimiter or JSON example, not Ruby or shell backtick execution. No command invocation is present.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:44:ruby-shell-backtick-execution","reason":"The flagged text is a Markdown code fence delimiter or JSON example, not Ruby or shell backtick execution. No command invocation is present.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:50:ruby-shell-backtick-execution","reason":"The flagged text is a Markdown code fence delimiter or JSON example, not Ruby or shell backtick execution. No command invocation is present.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:60:ruby-shell-backtick-execution","reason":"The flagged text is a Markdown code fence delimiter or JSON example, not Ruby or shell backtick execution. No command invocation is present.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:66:ruby-shell-backtick-execution","reason":"The flagged text is a Markdown code fence delimiter or JSON example, not Ruby or shell backtick execution. No command invocation is present.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:74:ruby-shell-backtick-execution","reason":"The flagged text is a Markdown code fence delimiter or JSON example, not Ruby or shell backtick execution. No command invocation is present.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:82:ruby-shell-backtick-execution","reason":"The flagged text is a Markdown code fence delimiter or JSON example, not Ruby or shell backtick execution. No command invocation is present.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:117:ruby-shell-backtick-execution","reason":"The flagged text is a Markdown code fence delimiter or JSON example, not Ruby or shell backtick execution. No command invocation is present.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:119:ruby-shell-backtick-execution","reason":"The flagged text is inline Markdown documentation for n8n syntax or endpoints, not a shell execution construct. It does not create command execution.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:125:ruby-shell-backtick-execution","reason":"The flagged text is a Markdown code fence delimiter or JSON example, not Ruby or shell backtick execution. No command invocation is present.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:145:ruby-shell-backtick-execution","reason":"The flagged text is a Markdown code fence delimiter or JSON example, not Ruby or shell backtick execution. No command invocation is present.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:151:ruby-shell-backtick-execution","reason":"The flagged text is a Markdown code fence delimiter or JSON example, not Ruby or shell backtick execution. No command invocation is present.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:179:ruby-shell-backtick-execution","reason":"The flagged text is a Markdown code fence delimiter or JSON example, not Ruby or shell backtick execution. No command invocation is present.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:185:ruby-shell-backtick-execution","reason":"The flagged text is a Markdown code fence delimiter or JSON example, not Ruby or shell backtick execution. No command invocation is present.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:197:ruby-shell-backtick-execution","reason":"The flagged text is a Markdown code fence delimiter or JSON example, not Ruby or shell backtick execution. No command invocation is present.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:203:ruby-shell-backtick-execution","reason":"The flagged text is a Markdown fence for documented curl examples, not executable code embedded in the skill. Execution still requires user action and credentials.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:206:ruby-shell-backtick-execution","reason":"The flagged text is a Markdown code fence delimiter or JSON example, not Ruby or shell backtick execution. No command invocation is present.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:210:ruby-shell-backtick-execution","reason":"The flagged text is a Markdown fence for documented curl examples, not executable code embedded in the skill. Execution still requires user action and credentials.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:213:ruby-shell-backtick-execution","reason":"The flagged text is a Markdown code fence delimiter or JSON example, not Ruby or shell backtick execution. No command invocation is present.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:217:ruby-shell-backtick-execution","reason":"The flagged text is a Markdown fence for documented curl examples, not executable code embedded in the skill. Execution still requires user action and credentials.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:222:ruby-shell-backtick-execution","reason":"The flagged text is a Markdown code fence delimiter or JSON example, not Ruby or shell backtick execution. No command invocation is present.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:226:ruby-shell-backtick-execution","reason":"The flagged text is a Markdown fence for documented curl examples, not executable code embedded in the skill. Execution still requires user action and credentials.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:231:ruby-shell-backtick-execution","reason":"The flagged text is a Markdown code fence delimiter or JSON example, not Ruby or shell backtick execution. No command invocation is present.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:235:ruby-shell-backtick-execution","reason":"The flagged text is a Markdown fence for documented curl examples, not executable code embedded in the skill. Execution still requires user action and credentials.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:241:ruby-shell-backtick-execution","reason":"The flagged text is a Markdown code fence delimiter or JSON example, not Ruby or shell backtick execution. No command invocation is present.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:245:ruby-shell-backtick-execution","reason":"The flagged text is a Markdown fence for documented curl examples, not executable code embedded in the skill. Execution still requires user action and credentials.","verdict":"false_positive","confidence":0.9},{"id":"external_commands:SKILL.md:248:ruby-shell-backtick-execution","reason":"The flagged text is a Markdown code fence delimiter or JSON example, not Ruby or shell backtick execution. No command invocation is present.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:SKILL.md:256:ruby-shell-backtick-execution","reason":"The flagged text is inline Markdown documentation for n8n syntax or endpoints, not a shell execution construct. It does not create command execution.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:257:ruby-shell-backtick-execution","reason":"The flagged text is inline Markdown documentation for n8n syntax or endpoints, not a shell execution construct. It does not create command execution.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:258:ruby-shell-backtick-execution","reason":"The flagged text is inline Markdown documentation for n8n syntax or endpoints, not a shell execution construct. It does not create command execution.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:259:ruby-shell-backtick-execution","reason":"The flagged text is inline Markdown documentation for n8n syntax or endpoints, not a shell execution construct. It does not create command execution.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:260:ruby-shell-backtick-execution","reason":"The flagged text is inline Markdown documentation for n8n syntax or endpoints, not a shell execution construct. It does not create command execution.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:261:ruby-shell-backtick-execution","reason":"The flagged text is inline Markdown documentation for n8n syntax or endpoints, not a shell execution construct. It does not create command execution.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:267:ruby-shell-backtick-execution","reason":"The flagged text is inline Markdown documentation for n8n syntax or endpoints, not a shell execution construct. It does not create command execution.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:268:ruby-shell-backtick-execution","reason":"The flagged text is inline Markdown documentation for n8n syntax or endpoints, not a shell execution construct. It does not create command execution.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:269:ruby-shell-backtick-execution","reason":"The flagged text is inline Markdown documentation for n8n syntax or endpoints, not a shell execution construct. It does not create command execution.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:270:ruby-shell-backtick-execution","reason":"The flagged text is inline Markdown documentation for n8n syntax or endpoints, not a shell execution construct. It does not create command execution.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:271:ruby-shell-backtick-execution","reason":"The flagged text is inline Markdown documentation for n8n syntax or endpoints, not a shell execution construct. It does not create command execution.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:272:ruby-shell-backtick-execution","reason":"The flagged text is inline Markdown documentation for n8n syntax or endpoints, not a shell execution construct. It does not create command execution.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:273:ruby-shell-backtick-execution","reason":"The flagged text is inline Markdown documentation for n8n syntax or endpoints, not a shell execution construct. It does not create command execution.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:274:ruby-shell-backtick-execution","reason":"The flagged text is inline Markdown documentation for n8n syntax or endpoints, not a shell execution construct. It does not create command execution.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:275:ruby-shell-backtick-execution","reason":"The flagged text is inline Markdown documentation for n8n syntax or endpoints, not a shell execution construct. It does not create command execution.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:281:ruby-shell-backtick-execution","reason":"The flagged text is inline Markdown documentation for n8n syntax or endpoints, not a shell execution construct. It does not create command execution.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:282:ruby-shell-backtick-execution","reason":"The flagged text is inline Markdown documentation for n8n syntax or endpoints, not a shell execution construct. It does not create command execution.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:287:ruby-shell-backtick-execution","reason":"The flagged text is inline Markdown documentation for n8n syntax or endpoints, not a shell execution construct. It does not create command execution.","verdict":"false_positive","confidence":0.94},{"id":"external_commands:SKILL.md:258:shell-command-substitution","reason":"The flagged text is n8n expression syntax inside a Markdown table, not shell command substitution. It is not executed by a shell.","verdict":"false_positive","confidence":0.96},{"id":"external_commands:SKILL.md:258:template-literal-with-command-substitution","reason":"The flagged text is n8n expression syntax inside a Markdown table, not shell command substitution. It is not executed by a shell.","verdict":"false_positive","confidence":0.96},{"id":"network:SKILL.md:119:hardcoded-url","reason":"The URL is a localhost n8n endpoint or an example.com placeholder in documentation. The skill contains no hidden automatic network request or exfiltration endpoint.","verdict":"false_positive","confidence":0.91},{"id":"network:SKILL.md:134:hardcoded-url","reason":"The URL is a localhost n8n endpoint or an example.com placeholder in documentation. The skill contains no hidden automatic network request or exfiltration endpoint.","verdict":"false_positive","confidence":0.91},{"id":"network:SKILL.md:204:hardcoded-url","reason":"The URL is a localhost n8n endpoint or an example.com placeholder in documentation. The skill contains no hidden automatic network request or exfiltration endpoint.","verdict":"false_positive","confidence":0.91},{"id":"network:SKILL.md:211:hardcoded-url","reason":"The URL is a localhost n8n endpoint or an example.com placeholder in documentation. The skill contains no hidden automatic network request or exfiltration endpoint.","verdict":"false_positive","confidence":0.91},{"id":"network:SKILL.md:218:hardcoded-url","reason":"The URL is a localhost n8n endpoint or an example.com placeholder in documentation. The skill contains no hidden automatic network request or exfiltration endpoint.","verdict":"false_positive","confidence":0.91},{"id":"network:SKILL.md:227:hardcoded-url","reason":"The URL is a localhost n8n endpoint or an example.com placeholder in documentation. The skill contains no hidden automatic network request or exfiltration endpoint.","verdict":"false_positive","confidence":0.91},{"id":"network:SKILL.md:236:hardcoded-url","reason":"The URL is a localhost n8n endpoint or an example.com placeholder in documentation. The skill contains no hidden automatic network request or exfiltration endpoint.","verdict":"false_positive","confidence":0.91},{"id":"network:SKILL.md:239:hardcoded-url","reason":"The URL is a localhost n8n endpoint or an example.com placeholder in documentation. The skill contains no hidden automatic network request or exfiltration endpoint.","verdict":"false_positive","confidence":0.91},{"id":"network:SKILL.md:246:hardcoded-url","reason":"The URL is a localhost n8n endpoint or an example.com placeholder in documentation. The skill contains no hidden automatic network request or exfiltration endpoint.","verdict":"false_positive","confidence":0.91},{"id":"network:SKILL.md:282:hardcoded-url","reason":"The URL is a localhost n8n endpoint or an example.com placeholder in documentation. The skill contains no hidden automatic network request or exfiltration endpoint.","verdict":"false_positive","confidence":0.91},{"id":"env_access:SKILL.md:26:generic-api-secret-keys","reason":"The text is a placeholder environment variable example, not a real embedded secret. It documents how users provide their own n8n API key.","verdict":"false_positive","confidence":0.93},{"id":"env_access:SKILL.md:205:generic-api-secret-keys","reason":"The header references the user-controlled $N8N_API_KEY variable in a curl example, not a hardcoded credential. The example targets the documented n8n API.","verdict":"false_positive","confidence":0.89},{"id":"env_access:SKILL.md:212:generic-api-secret-keys","reason":"The header references the user-controlled $N8N_API_KEY variable in a curl example, not a hardcoded credential. The example targets the documented n8n API.","verdict":"false_positive","confidence":0.89},{"id":"env_access:SKILL.md:219:generic-api-secret-keys","reason":"The header references the user-controlled $N8N_API_KEY variable in a curl example, not a hardcoded credential. The example targets the documented n8n API.","verdict":"false_positive","confidence":0.89},{"id":"env_access:SKILL.md:228:generic-api-secret-keys","reason":"The header references the user-controlled $N8N_API_KEY variable in a curl example, not a hardcoded credential. The example targets the documented n8n API.","verdict":"false_positive","confidence":0.89},{"id":"env_access:SKILL.md:237:generic-api-secret-keys","reason":"The header references the user-controlled $N8N_API_KEY variable in a curl example, not a hardcoded credential. The example targets the documented n8n API.","verdict":"false_positive","confidence":0.89},{"id":"env_access:SKILL.md:240:generic-api-secret-keys","reason":"The header references the user-controlled $N8N_API_KEY variable in a curl example, not a hardcoded credential. The example targets the documented n8n API.","verdict":"false_positive","confidence":0.89},{"id":"env_access:SKILL.md:247:generic-api-secret-keys","reason":"The header references the user-controlled $N8N_API_KEY variable in a curl example, not a hardcoded credential. The example targets the documented n8n API.","verdict":"false_positive","confidence":0.89}],"semantic_findings":[],"subject_marketplace_commit_sha":null,"subject_content_hash":null,"subject_tree_hash":null,"subject_plugin_path":null,"audit_payload_hash":null,"confirmed_risk_level":null,"scanner_version":null,"policy_version":null,"subject":{"marketplaceCommitSha":null,"contentHash":null,"treeHash":null,"pluginPath":null,"auditPayloadHash":null},"scannerVersion":null,"policyVersion":null},"auditTranslation":null,"localization":{"requestedLocale":"en","contentLocale":"en","availableLocales":["en"],"fallbackToEnglish":false},"attestation":{"availability":"not_attestable","url":null,"status":null,"reason":"confirmed_risk_level does not match the canonical trust resolver"},"trust":{"publicState":"public","auditState":"complete","auditCurrentness":null,"confirmedRiskLevel":"safe","confirmedFindingCount":0,"capabilityReviewCount":0,"needsReviewCount":0,"falsePositiveCount":0,"agentAutoInstallPolicy":"allowed","manualInstallPolicy":"allowed","artifactSignatureState":"available","attestationState":"not_attestable","verificationState":"not_verified"},"isLatest":false}}